@charset "UTF-8";
:root {
  --mg-section: 20rem;
}
@media screen and (max-width: 1199px) {
  :root {
    --mg-section: 10rem;
  }
}
@media screen and (max-width: 1199px) and (max-width: 767px) {
  :root {
    --mg-section: 8rem;
  }
}

html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
  /* Prevent adjustments of font size after orientation changes in iOS */
  word-break: normal;
  -moz-tab-size: 4;
  tab-size: 4;
}

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

::before,
::after {
  text-decoration: inherit;
  /* Inherit text-decoration and vertical align to ::before and ::after pseudo elements */
  vertical-align: inherit;
}

hr {
  overflow: visible;
  /* Show the overflow in Edge and IE */
  height: 0;
  /* Add the correct box sizing in Firefox */
  color: inherit;
  /* Correct border color in Firefox. */
}

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

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

small {
  font-size: 80%;
  /* Set font-size to 80% in `small` elements */
}

[hidden] {
  display: none;
  /* Add the correct display in IE */
}

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

a {
  background-color: transparent;
  /* Remove the gray background on active links in IE 10 */
}

a:active,
a:hover {
  outline-width: 0;
  /* Remove the outline when hovering in all browsers */
}

code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  /* Specify the font family of code elements */
}

pre {
  font-size: 1em;
  /* Correct the odd `em` font sizing in all browsers */
}

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

/* https://gist.github.com/unruthless/413930 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

table {
  border-color: inherit;
  /* Correct border color in all Chrome, Edge, and Safari. */
  text-indent: 0;
  /* Remove text indentation in Chrome, Edge, and Safari */
}

iframe {
  border-style: none;
}

input {
  border-radius: 0;
}

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

[type=search] {
  -webkit-appearance: textfield;
  /* Correct the odd appearance in Chrome and Safari */
  outline-offset: -2px;
  /* Correct the outline style in Safari */
}

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

textarea {
  overflow: auto;
  /* Internet Explorer 11+ */
  resize: vertical;
  /* Specify textarea resizability */
}

button,
input,
optgroup,
select,
textarea {
  font: inherit;
  /* Specify font inheritance of form elements */
}

optgroup {
  font-weight: bold;
  /* Restore the font weight unset by the previous rule */
}

button {
  overflow: visible;
  /* Address `overflow` set to `hidden` in IE 8/9/10/11 */
}

button,
select {
  text-transform: none;
  /* Firefox 40+, Internet Explorer 11- */
}

/* Apply cursor pointer to button elements */
button,
[type=button],
[type=reset],
[type=submit],
[role=button] {
  cursor: pointer;
}

/* Remove inner padding and border in Firefox 4+ */
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/* Replace focus style removed in the border reset above */
button:-moz-focusring,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  outline: 1px dotted ButtonText;
}

button,
html [type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button;
  /* Correct the inability to style clickable types in iOS */
}

/* Remove the default button styling in all browsers */
button,
input,
select,
textarea {
  background-color: transparent;
  border-style: none;
}

a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus {
  outline-width: 0;
}

/* Style select like a standard input */
select {
  -moz-appearance: none;
  /* Firefox 36+ */
  -webkit-appearance: none;
  /* Chrome 41+ */
}

select::-ms-expand {
  display: none;
  /* Internet Explorer 11+ */
}

select::-ms-value {
  color: currentColor;
  /* Internet Explorer 11+ */
}

legend {
  border: 0;
  /* Correct `color` not being inherited in IE 8/9/10/11 */
  color: inherit;
  /* Correct the color inheritance from `fieldset` elements in IE */
  display: table;
  /* Correct the text wrapping in Edge and IE */
  max-width: 100%;
  /* Correct the text wrapping in Edge and IE */
  white-space: normal;
  /* Correct the text wrapping in Edge and IE */
  max-width: 100%;
  /* Correct the text wrapping in Edge 18- and IE */
}

::-webkit-file-upload-button {
  /* Correct the inability to style clickable types in iOS and Safari */
  -webkit-appearance: button;
  color: inherit;
  font: inherit;
  /* Change font properties to `inherit` in Chrome and Safari */
}

/* Replace pointer cursor in disabled elements */
[disabled] {
  cursor: default;
}

img {
  border-style: none;
  /* Remove border when inside `a` element in IE 8/9/10 */
}

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

/* Specify the progress cursor of updating elements */
[aria-busy=true] {
  cursor: progress;
}

/* Specify the pointer cursor of trigger elements */
[aria-controls] {
  cursor: pointer;
}

/* Specify the unstyled cursor of disabled, not-editable, or otherwise inoperable elements */
[aria-disabled=true] {
  cursor: default;
}

html {
  position: relative;
  background: none #fff;
  font-size: 62.5%; /* 1rem = 10px */
  scroll-behavior: smooth;
  scroll-padding-top: 2rem;
}

body {
  width: 100%;
  margin: 0;
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
}
@media screen and (max-width: 1199px) {
  body {
    font-size: 1.2rem;
  }
}

a {
  color: #595959;
  text-decoration: none;
  cursor: pointer;
}

h1, h2, h3, h4, h5 {
  font-weight: normal;
}

p {
  line-height: 1.7;
}
p:last-child {
  margin-bottom: 0;
}

li {
  list-style: none;
}

.wf-loading {
  visibility: hidden;
}
.wf-active {
  visibility: visible;
}

body.no-transition *,
body.no-transition *::before,
body.no-transition *::after {
  transition: 0s !important;
  transition-delay: 0s !important;
}

.l-header {
  position: absolute;
  z-index: 900;
  width: 100%;
  height: 12rem;
}
.l-header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: 100%;
  max-width: calc(1920px + 12%);
  margin: 0 auto;
  padding-left: 6%;
  padding-right: 6%;
}
.l-header.js-fixed {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  z-index: 900;
  height: 8rem;
  animation: navi-fixed 1s linear forwards;
}
@media screen and (max-width: 1199px) {
  .l-header {
    height: 9rem;
  }
}

@keyframes navi-fixed {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0);
  }
}
.l-main {
  width: 100%;
  overflow: hidden;
}
.l-main__inner {
  width: 100%;
  max-width: 1920px;
  height: 100%;
  margin: 0 auto;
  padding-left: 6%;
  padding-right: 6%;
}

.l-footer {
  width: 100%;
}

.c-breadcrumbs {
  height: auto;
}

ul.c-breadcrumbs__lists {
  display: flex;
  flex-wrap: wrap;
  gap: 0 1.5rem;
  height: 100%;
}
ul.c-breadcrumbs__lists li {
  position: relative;
  height: 100%;
  line-height: 3rem;
}
ul.c-breadcrumbs__lists li:not(:last-child)::after {
  content: "/";
  display: inline-block;
}
ul.c-breadcrumbs__lists li a {
  display: inline-block;
  padding-right: 1.5rem;
  line-height: 3rem;
}
ul.c-breadcrumbs__lists li a:hover {
  opacity: 0.8;
}
ul.c-breadcrumbs__lists li, ul.c-breadcrumbs__lists a {
  font-size: 1.4rem;
  color: #6A6A6A;
}

.c-title {
  position: relative;
  z-index: 1;
  font-size: 4.8rem;
  line-height: 1;
  text-align: center;
}
.c-title::before {
  display: block;
  position: absolute;
  bottom: 0;
  left: 50%;
  z-index: -1;
  transform: translateX(-50%);
  margin: auto;
  opacity: 0.3;
  color: #C3C3C3;
  font-family: "Marcellus", serif;
  font-size: 14.4rem;
  letter-spacing: 0.3em;
  line-height: 0.7;
  white-space: nowrap;
}
@media screen and (max-width: 1199px) {
  .c-title {
    font-size: 2.4rem;
  }
  .c-title::before {
    font-size: 5.8rem;
  }
}
.c-title.center {
  height: 14.4rem;
  line-height: 14.4rem;
}
.c-title.center::before {
  top: 0;
  line-height: 1;
}
@media screen and (max-width: 1199px) {
  .c-title.center {
    height: 5.8rem;
    line-height: 5.8rem;
  }
  .c-title.center::before {
    line-height: 5.8rem;
  }
}

button {
  border: none;
  border-radius: 0;
  background-color: transparent;
}

.c-button {
  display: block;
  width: 40rem;
  height: 7.5rem;
  margin: 5rem auto 0;
}
@media screen and (max-width: 1199px) {
  .c-button {
    width: 20rem;
    height: 4rem;
    margin: 3rem auto 0;
  }
}
.c-button a {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border: 1px solid #595959;
  background-color: #595959;
  transition: 0.5s;
}
.c-button a::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  right: 2rem;
  width: 2.4rem;
  height: 3.5rem;
  background: url(./images/img/icon-arrow.svg) no-repeat center;
  transition: 0.5s;
}
@media screen and (max-width: 1199px) {
  .c-button a::before {
    right: 1.5rem;
    width: 1.5rem;
    background-size: contain;
  }
}
.c-button a p, .c-button a input {
  position: relative;
  color: #fff;
  font-size: 2.4rem;
  font-weight: bold;
  letter-spacing: 0.3em;
}
@media screen and (max-width: 1199px) {
  .c-button a p, .c-button a input {
    font-size: 1.2rem;
  }
}
@media (any-hover: hover) {
  .c-button a:hover {
    background-color: #fff;
  }
  .c-button a:hover::before {
    filter: brightness(0) saturate(100%) invert(32%) sepia(0%) saturate(1155%) hue-rotate(141deg) brightness(95%) contrast(78%);
  }
  .c-button a:hover p {
    color: #595959;
  }
}

.c-button.reverse a {
  border: 1px solid #fff;
  background-color: #fff;
}
.c-button.reverse a::before {
  filter: brightness(0) saturate(100%) invert(32%) sepia(0%) saturate(1155%) hue-rotate(141deg) brightness(95%) contrast(78%);
}
.c-button.reverse a p, .c-button.reverse a input {
  color: #595959;
}
@media (any-hover: hover) {
  .c-button.reverse a:hover {
    border: 1px solid #595959;
    background-color: #595959;
  }
  .c-button.reverse a:hover::before {
    filter: none;
  }
  .c-button.reverse a:hover p, .c-button.reverse a:hover input {
    color: #fff;
  }
}

.c-staff {
  letter-spacing: 0.3em;
}
.c-staff h3 {
  display: inline-block;
  position: relative;
  padding-bottom: 1rem;
  color: #fff;
  font-size: 3.6rem;
}
.c-staff h3::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background-color: #2CA2CE;
}
.c-staff span {
  display: block;
  margin-top: 1rem;
  color: #fff;
  font-size: 1.8rem;
  white-space: nowrap;
}
.c-staff p {
  display: inline-block;
  font-size: 1.8rem;
  margin-top: 2rem;
  color: #fff;
  padding: 0 0.5rem;
  background-color: #2CA2CE;
  white-space: nowrap;
}
@media screen and (max-width: 1199px) {
  .c-staff h3 {
    font-size: 1.4rem;
  }
  .c-staff span {
    font-size: 1.2rem;
  }
  .c-staff p {
    font-size: 1.2rem;
  }
}

.slick-slider {
  display: block;
  position: relative;
  box-sizing: border-box;
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  touch-action: pan-y;
  -webkit-touch-callout: none;
  -khtml-user-select: none;
  -ms-touch-action: pan-y;
  -webkit-tap-highlight-color: transparent;
}

.slick-list {
  display: block;
  overflow: hidden;
  position: relative;
  margin: 0;
  padding: 0;
}

.slick-list:focus {
  outline: none;
}

.slick-list.dragging {
  cursor: pointer;
  cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
}

.slick-track {
  display: block;
  position: relative;
  top: 0;
  left: 0;
  margin-left: auto;
  margin-right: auto;
}

.slick-track:before,
.slick-track:after {
  content: "";
  display: table;
}

.slick-track:after {
  clear: both;
}

.slick-loading .slick-track {
  visibility: hidden;
}

.slick-slide {
  display: none;
  float: left;
  height: 100%;
  min-height: 1px;
}

[dir=rtl] .slick-slide {
  float: right;
}

.slick-slide.slick-loading img {
  display: none;
}

.slick-slide.dragging img {
  pointer-events: none;
}

.slick-initialized .slick-slide {
  display: block;
}

.slick-loading .slick-slide {
  visibility: hidden;
}

.slick-vertical .slick-slide {
  display: block;
  height: auto;
  border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
  display: none;
}

.slider {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  -webkit-clip-path: inset(0);
  clip-path: inset(0);
}
.slider a:hover {
  opacity: 1;
}

.slider {
  opacity: 0;
  transition: opacity 0.1s linear;
}

.slider.slick-initialized {
  opacity: 1;
}

.slick-dots {
  display: flex;
  gap: 0.5rem;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  z-index: 3;
  width: 10rem;
  height: 0.5rem;
}
.slick-dots li {
  display: inline-block;
  width: 33.3333333333%;
  height: 100%;
}
.slick-dots button {
  display: block;
  opacity: 0.3;
  width: 100%;
  height: 100%;
  background-color: #fff;
  outline: none;
  color: transparent;
  box-shadow: 0 1px 3px rgba(255, 255, 255, 0.2);
  transition: opacity 0.5s;
}
.slick-dots .slick-active button {
  opacity: 0.7;
}

.slick-arrow {
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  width: 1.5rem;
  height: 2rem;
  background-color: #fff;
  clip-path: polygon(0 50%, 100% 0, 100% 100%);
  -webkit-clip-path: polygon(0 50%, 100% 0, 100% 100%);
  font-size: 0;
}
.slick-arrow.slick-prev {
  left: 5%;
}
.slick-arrow.slick-next {
  right: 5%;
  transform: rotateY(180deg);
}

.p-header {
  background-color: #707070;
}
.p-header__logo {
  width: auto;
  height: 60%;
  aspect-ratio: 294/147;
}
.p-header__logo a, .p-header__logo img {
  display: block;
  width: 100%;
  height: 100%;
}
@media screen and (max-width: 1199px) {
  .p-header {
    background-color: #595959;
  }
}

.p-nav__lists {
  display: flex;
}
.p-nav__lists p {
  color: #fff;
  letter-spacing: 0.2em;
}

.p-header .p-nav {
  height: 100%;
}
.p-header .p-nav__lists {
  display: flex;
  gap: 0 3rem;
  height: 100%;
}
.p-header .p-nav__lists li {
  height: 100%;
}
.p-header .p-nav__lists li a {
  display: flex;
  align-items: center;
  position: relative;
  width: auto;
  height: 100%;
}
.p-header .p-nav__lists li a p {
  position: relative;
  color: #fff;
  padding-top: 1.5rem;
  letter-spacing: 0.2em;
}
.p-header .p-nav__lists li a p::before {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  font-size: 1rem;
  text-align: center;
}
.p-header .p-nav__lists li a p::after {
  content: "";
  position: absolute;
  bottom: -1rem;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 0;
  height: 2px;
  background-color: #fff;
  transition: width 0.5s;
}
@media (any-hover: hover) {
  .p-header .p-nav__lists li a:hover p::after {
    width: 2rem;
  }
}
.p-header .p-nav__lists li:last-child {
  display: none;
}
.p-header .p-nav__lists li:nth-child(1) p::before {
  content: "ホーム";
}
.p-header .p-nav__lists li:nth-child(2) p::before {
  content: "企業情報";
}
.p-header .p-nav__lists li:nth-child(3) p::before {
  content: "事業内容";
}
.p-header .p-nav__lists li:nth-child(4) p::before {
  content: "採用情報";
}
.p-header .p-nav__lists li:nth-child(5) p::before {
  content: "お問い合わせ";
}

.p-footer .p-nav {
  margin-right: 20rem;
}
.p-footer .p-nav__lists {
  flex-direction: column;
  gap: 1rem 0;
}
.p-footer .p-nav__lists a {
  transition: opacity 0.5s;
}
@media (any-hover: hover) {
  .p-footer .p-nav__lists a:hover {
    opacity: 0.5;
  }
}
@media screen and (max-width: 1199px) {
  .p-footer .p-nav {
    display: none;
  }
}

@media screen and (max-width: 1199px) {
  .p-header .p-nav {
    display: grid;
    place-items: center;
    position: absolute;
    top: 9rem;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 100%;
    background-color: #595959;
    transition: 1s;
    visibility: hidden;
    opacity: 0;
    height: 0;
  }
  .p-header .p-nav__lists {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2.5rem 0;
    height: auto;
  }
  .p-header .p-nav__lists li {
    height: auto;
  }
  .p-header .p-nav__lists li a {
    font-size: 1.6rem;
  }
  .p-header .p-nav__lists li a p::after {
    display: none;
  }
  .p-header .p-nav ul {
    opacity: 0;
    transition: 0.3s;
  }
  .p-header .p-nav.js-opened {
    visibility: visible;
    opacity: 1;
    height: calc(100vh - 9rem);
  }
  .p-header .p-nav.js-opened ul {
    opacity: 1;
    transition: 0.5s 0.3s;
  }
  .p-header.js-fixed .p-nav {
    top: 8rem;
  }
  .p-header.js-fixed .p-nav.js-opened {
    height: calc(100vh - 8rem);
  }
}
.p-menu {
  display: none;
}
@media screen and (max-width: 1199px) {
  .p-menu {
    display: block;
  }
}

.p-menu {
  display: grid;
  place-items: center;
  width: 6rem;
  height: 6rem;
  padding: 0 1rem;
}
.p-menu__inner {
  width: 100%;
  height: 50%;
}
.p-menu__inner--lines {
  position: relative;
  width: 100%;
  height: 100%;
}

.p-menu__inner--lines::before,
.p-menu__inner--lines::after,
.p-menu__inner--lines div::before {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: #fff;
  transition: opacity 0.5s, transform 0.5s;
}

.p-menu__inner--lines::before {
  top: 0;
}

.p-menu__inner--lines::after {
  bottom: 0;
  width: 50%;
}

.p-menu__inner--lines div::before {
  top: 0;
  bottom: 0;
  margin: auto;
}

.js-opened .p-menu__inner--lines::before {
  transform: rotate(45deg) translate(1.1rem, 0.9rem);
}
.js-opened .p-menu__inner--lines::after {
  width: 100%;
  transform: rotate(-45deg) translate(1.1rem, -0.9rem);
}
.js-opened .p-menu__inner--lines div::before {
  opacity: 0;
}

.p-mainvisual {
  position: relative;
  width: 100%;
  height: calc(100vh - 12rem);
  margin-top: 12rem;
  padding: 0 6% 6%;
}
@media screen and (max-width: 1199px) {
  .p-mainvisual {
    height: calc(100vh - 9rem);
    margin-top: 9rem;
  }
}
@media screen and (max-width: 1199px) and (max-width: 767px) {
  .p-mainvisual {
    padding: 0;
  }
}
.p-mainvisual::before {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  background: url(./images/img/mv-bg.png) center/cover;
  pointer-events: none;
}
@media print, screen and (max-width: 767px) {
  .p-mainvisual::before {
    background: url(./images/img/sp_mv-bg.png) center/cover;
  }
}
.p-mainvisual__inner {
  position: relative;
  width: 100%;
  height: 100%;
}
.p-mainvisual__inner h1 {
  position: absolute;
  bottom: 0;
  right: 0;
  line-height: 1.7;
  letter-spacing: 0.3em;
}
@media print, screen and (max-width: 767px) {
  .p-mainvisual__inner h1 {
    bottom: 5%;
  }
}
.p-mainvisual__inner h1 span {
  margin-right: 1rem;
  opacity: 0.3;
  color: #C3C3C3;
  font-family: "Marcellus", serif;
  font-size: 14.4rem;
  letter-spacing: 0.3em;
  opacity: 1;
  color: #fff;
  font-size: 3.6rem;
  letter-spacing: 0.3em;
}
.p-mainvisual__title {
  display: grid;
  place-items: center;
  width: 50%;
  height: 100%;
}
.p-mainvisual__title--inner {
  display: flex;
  flex-direction: column;
  gap: 4rem 0;
}
@media print, screen and (max-width: 767px) {
  .p-mainvisual__title--inner {
    gap: 1.5rem 0;
  }
}
.p-mainvisual__title p, .p-mainvisual__title p > span, .p-mainvisual__inner h1 {
  display: inline-block;
  width: max-content;
  padding: 0 2rem;
  background-color: #000;
  color: #fff;
}
.p-mainvisual__title p, .p-mainvisual__title p > span {
  font-size: 3.6rem;
}
.p-mainvisual__inner h1 {
  font-size: 2.4rem;
}
.p-mainvisual__title p > span {
  padding: 0;
}
@media print, screen and (max-width: 767px) {
  .p-mainvisual__title p, .p-mainvisual__title p > span {
    padding: 0 1.2rem;
    font-size: 2rem;
    line-height: 1.3;
  }
  .p-mainvisual__inner h1 {
    line-height: 1.3;
    font-size: 1.3rem;
  }
  .p-mainvisual__inner h1 span {
    font-size: 2rem;
  }
}

#top .p-mainvisual {
  background: url(./images/img/mv-top.jpg) no-repeat center/cover;
}
@media print, screen and (max-width: 767px) {
  #top .p-mainvisual {
    background: url(./images/img/sp_mv-top.jpg) no-repeat center/cover;
  }
}

#company .p-mainvisual {
  background: url(./images/img/mv-company.jpg) no-repeat center/cover;
}
@media print, screen and (max-width: 767px) {
  #company .p-mainvisual {
    background: url(./images/img/sp_mv-company.jpg) no-repeat center/cover;
  }
}

#services .p-mainvisual {
  background: url(./images/img/mv-services.jpg) no-repeat center/cover;
}
@media print, screen and (max-width: 767px) {
  #services .p-mainvisual {
    background: url(./images/img/sp_mv-services.jpg) no-repeat center/cover;
  }
}

#recruit .p-mainvisual {
  background: url(./images/img/mv-recruit.jpg) no-repeat center/cover;
}
@media print, screen and (max-width: 767px) {
  #recruit .p-mainvisual {
    background: url(./images/img/sp_mv-recruit.jpg) no-repeat center/cover;
  }
}

#top .p-mainvisual h1 {
  font-size: 3.6rem;
  letter-spacing: 0;
}
@media print, screen and (max-width: 767px) {
  #top .p-mainvisual h1 {
    font-size: 2rem;
  }
}

#company .p-mainvisual__title p, #company .p-mainvisual__title p > span, #company .p-mainvisual__inner h1 {
  background-color: #fff;
  color: #000;
}
@media print, screen and (max-width: 767px) {
  #company .p-mainvisual__title div > p:nth-child(1) {
    display: contents;
  }
}
#company .p-mainvisual__inner h1 span {
  color: #000;
}

.p-subpage {
  display: grid;
  place-items: center;
  position: relative;
  width: 100%;
  height: 36.5rem;
  margin-top: 12rem;
  background-color: #959494;
}
@media screen and (max-width: 1199px) {
  .p-subpage {
    height: 20rem;
    margin-top: 9rem;
  }
}
.p-subpage .c-title {
  padding: 4rem 0 2rem;
}
.p-subpage .c-title::before {
  content: "CONTACT";
  opacity: 0.2;
  color: #000;
}
@media screen and (max-width: 1199px) {
  .p-subpage .c-title {
    padding: 1rem 0 0.6rem;
  }
  .p-subpage .c-title::before {
    letter-spacing: 0.1em;
  }
}

.p-entry {
  display: grid;
  place-items: center;
  position: relative;
  width: 100%;
  height: 56.25vw;
  background: url(./images/img/banner-recruit-bg.jpg) no-repeat center/cover;
}
@media screen and (max-width: 1199px) {
  .p-entry {
    max-height: 72rem;
    height: auto;
    aspect-ratio: 32/45;
    padding: 0 8%;
    background-position: center top;
    background-size: 150%;
  }
  .p-entry::before {
    content: "";
    position: absolute;
    bottom: 0;
    z-index: 5;
    width: 100%;
    height: 63%;
    background-image: linear-gradient(0deg, rgb(0, 0, 0) 80%, rgba(0, 0, 0, 0));
  }
}
.p-entry__wrapper {
  display: grid;
  place-items: center;
  width: 40%;
  min-width: 80rem;
  height: 100%;
  background-image: linear-gradient(0deg, rgba(255, 255, 255, 0.9) 50%, rgba(255, 255, 255, 0));
}
@media screen and (max-width: 1199px) {
  .p-entry__wrapper {
    position: relative;
    z-index: 10;
    min-width: 100%;
    padding: 0 8%;
  }
}
.p-entry__inner .c-title::before {
  content: "ENTRY";
  opacity: 1;
}
.p-entry__inner > p {
  margin-top: 2rem;
  font-size: 2.4rem;
}
@media screen and (max-width: 1199px) {
  .p-entry__inner > p {
    font-size: 1.2rem;
    line-height: 1.2;
  }
}
.p-entry__inner--button {
  margin-top: 12rem;
}
@media screen and (max-width: 1199px) {
  .p-entry__inner--button {
    margin-top: 5rem;
  }
}
.p-entry__inner--button p {
  line-height: 1.3;
}
.p-entry__inner--button p::after {
  content: "お問い合わせページへ";
  display: block;
  font-size: 1.8rem;
}
@media screen and (max-width: 1199px) {
  .p-entry__inner--button p::after {
    font-size: 1rem;
  }
}

.p-cta {
  width: 100%;
  height: 43rem;
  margin-top: -1px;
  background: url(./images/img/banner-contact-bg.png) no-repeat center/cover;
}
@media screen and (max-width: 1199px) {
  .p-cta {
    background-position: left center !important;
  }
}
@media screen and (max-width: 1199px) and (max-width: 767px) {
  .p-cta {
    height: auto;
    aspect-ratio: 39/41;
    background: url(./images/img/sp_banner-contact-bg.png) no-repeat center/cover;
  }
}
.p-cta__wrapper {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  width: 50%;
  height: 100%;
}
@media screen and (max-width: 1199px) {
  .p-cta__wrapper {
    justify-content: center;
    width: 100%;
  }
}
@media screen and (max-width: 1199px) and (max-width: 767px) {
  .p-cta__wrapper {
    justify-content: center;
    width: 100%;
    height: auto;
    padding-top: 32%;
  }
}
.p-cta__inner .c-title::before {
  content: "CONTACT";
}
@media screen and (max-width: 1199px) {
  .p-cta__inner .c-title::before {
    letter-spacing: 0.1em;
  }
}
.p-cta__inner > p {
  margin: 1rem auto 0;
  font-size: 2.4rem;
}
@media screen and (max-width: 1199px) {
  .p-cta__inner > p {
    font-size: 1.2rem;
    line-height: 1.2;
  }
}
.p-cta__inner--button {
  margin-top: 3rem;
}

.p-footer {
  background-color: #595959;
}
.p-footer__wrapper {
  justify-content: space-between;
  align-items: stretch;
  width: 75%;
  height: max-content;
  margin: 0 auto;
  padding: 12rem 0;
}
@media screen and (max-width: 1199px) {
  .p-footer__wrapper {
    padding: 8.5rem 0;
  }
}
.p-footer__information {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
@media screen and (max-width: 1199px) {
  .p-footer__information {
    align-items: center;
    gap: 5rem;
  }
}
.p-footer__information img {
  width: 20rem;
  height: auto;
  aspect-ratio: 294/147;
}
@media screen and (max-width: 1199px) {
  .p-footer__information img {
    width: 15.5rem;
  }
}
.p-footer__information p {
  color: #fff;
  font-size: 1.8rem;
}
@media screen and (max-width: 1199px) {
  .p-footer__information p {
    font-size: 1.2rem;
  }
}
.p-footer__copyright {
  width: 100%;
  height: 6rem;
  background-color: #000;
}
.p-footer__copyright p {
  color: #fff;
  line-height: 6rem;
  text-align: center;
}

.p-advantage {
  width: 100%;
  height: 94rem;
  background: url(./images/img/img-advantage-bg.jpg) no-repeat center/cover;
}
@media screen and (max-width: 1199px) {
  .p-advantage {
    height: auto;
    background: url(./images/img/sp_img-advantage-bg.jpg) no-repeat center/cover;
  }
}
.p-advantage__wrapper {
  display: flex;
  align-items: center;
  width: 50%;
  height: 100%;
  margin-left: auto;
  background: linear-gradient(0deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.5));
}
@media screen and (max-width: 1199px) {
  .p-advantage__wrapper {
    display: flex;
    width: 100%;
    padding: 20rem 0;
  }
}
.p-advantage__inner {
  width: 80%;
  height: auto;
  margin: 0 auto;
}
@media screen and (max-width: 1199px) {
  .p-advantage__inner {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 5rem 0;
    height: 50%;
    margin: auto;
  }
}
.p-advantage__inner h2 {
  text-align: left;
}
.p-advantage__inner h2::before {
  content: "ADVANTAGE";
  opacity: 0.1;
  bottom: -1.5rem;
  left: -12%;
  color: #000;
  letter-spacing: 0.1em;
  transform: none;
}
@media screen and (max-width: 1199px) {
  .p-advantage__inner h2 {
    text-align: center;
  }
  .p-advantage__inner h2::before {
    bottom: -0.4rem;
    left: 50%;
    transform: translateX(-50%);
  }
}
.p-advantage__inner--text {
  margin-top: 5rem;
}
@media screen and (max-width: 1199px) {
  .p-advantage__inner--text {
    max-width: max-content;
    margin: 5rem auto 0;
  }
}
.p-advantage__inner--text p {
  margin-bottom: 2rem;
}

.p-message {
  width: 100%;
  height: auto;
}
@media screen and (max-width: 1199px) {
  .p-message {
    padding: 12rem 8%;
    background: url(./images/img/sp_bg-black.png) no-repeat center/cover;
  }
}
.p-message__wrapper {
  align-items: stretch;
}
.p-message__wrapper > img {
  width: 40%;
  height: auto;
  object-fit: cover;
}
@media screen and (max-width: 1199px) {
  .p-message__wrapper > img {
    order: 2;
    width: 100%;
    max-width: 62rem;
    margin: 5rem auto 0;
  }
}
.p-message__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 60%;
  height: auto;
  padding: 10rem 6%;
}
@media screen and (max-width: 1199px) {
  .p-message__content {
    display: contents;
  }
}
.p-message__content h2 {
  color: #fff;
  text-align: left;
}
.p-message__content h2::before {
  position: inherit;
  left: 0;
  margin-top: -4.8rem;
  transform: translateY(4.5rem);
}
@media screen and (max-width: 1199px) {
  .p-message__content h2::before {
    position: absolute;
  }
}
@media screen and (max-width: 1199px) {
  .p-message__content h2 {
    order: 1;
  }
}
@media screen and (max-width: 1199px) {
  .p-message__content > div {
    order: 3;
  }
}
.p-message__content h3 {
  margin-top: 5rem;
  color: #fff;
  font-size: 2.4rem;
}
@media screen and (max-width: 1199px) {
  .p-message__content h3 {
    font-size: 1.6rem;
  }
}
.p-message__content p {
  margin-top: 2rem;
  color: #fff;
}
.p-message__content p.signature {
  margin-top: 5rem;
  font-size: 3.6rem;
  text-align: right;
}
@media screen and (max-width: 1199px) {
  .p-message__content p.signature {
    font-size: 1.3rem;
  }
}

#company .p-message__content {
  background: url(./images/img/company-message-bg.png) no-repeat center/cover;
}
#company .p-message__content h2::before {
  content: "MESSAGE";
}
@media screen and (max-width: 1199px) {
  #company .p-message__content h2 {
    margin-left: -5%;
  }
  #company .p-message__content h2::before {
    left: 0;
    font-size: 5.8rem;
    line-height: 5.8rem;
    transform: none;
  }
}

#recruit .p-message__wrapper {
  flex-direction: row-reverse;
}
@media screen and (max-width: 1199px) {
  #recruit .p-message__wrapper {
    flex-direction: column;
  }
}
#recruit .p-message__content {
  background: url(./images/img/recruit-vision-bg.png) no-repeat center/cover;
}
#recruit .p-message__content > div {
  margin-top: 3rem;
}
#recruit .p-message__content h2::before {
  content: "VISION";
}
@media screen and (max-width: 1199px) {
  #recruit .p-message__content h2::before {
    left: 0;
    transform: none;
    font-size: 5.8rem;
  }
}
#recruit .p-message__content > p:nth-child(2) {
  margin-top: 5rem;
}

.top-introduction {
  width: 100%;
  height: 72rem;
  background: url(./images/img/top-second-bg.jpg) no-repeat center/cover;
}
@media print, screen and (max-width: 767px) {
  .top-introduction {
    height: auto;
    max-height: 70rem;
    aspect-ratio: 39/52;
    background: url(./images/img/sp_top-second-bg.jpg) no-repeat center bottom/cover;
  }
}
.top-introduction__wrapper {
  display: flex;
  align-items: center;
  width: 50%;
  height: 100%;
}
@media print, screen and (max-width: 767px) {
  .top-introduction__wrapper {
    display: block;
    width: 100%;
    height: auto;
    padding-top: 25%;
  }
}
.top-introduction__inner {
  width: 60%;
  min-width: 40rem;
  height: auto;
}
@media screen and (max-width: 1199px) {
  .top-introduction__inner {
    width: 75%;
    min-width: auto;
  }
}
.top-introduction__inner .c-title {
  height: auto;
  line-height: 1;
  text-align: left;
}
.top-introduction__inner p {
  margin-top: 5rem;
}

.top-company {
  width: 100%;
  height: 125rem;
  padding: 20rem 0;
  background: url(./images/img/top-company-bg.png) no-repeat center top/cover;
}
@media screen and (max-width: 1199px) {
  .top-company {
    height: auto;
    padding: 10rem 0;
  }
}
.top-company h2::before {
  content: "COMPANY";
  opacity: 0.2;
  color: #6A6A6A;
}
@media screen and (max-width: 1199px) {
  .top-company h2::before {
    letter-spacing: 0.27em;
  }
}
.top-company__wrapper {
  margin: 5rem auto 0;
}
@media screen and (max-width: 1199px) {
  .top-company__wrapper {
    width: 100%;
    gap: 3rem 0;
  }
}
.top-company__inner img {
  width: 100%;
  height: auto;
}
.top-company__inner p {
  position: relative;
  margin-top: 2rem;
  padding-bottom: 2rem;
  font-size: 3.6rem;
  text-align: center;
}
.top-company__inner p::after {
  display: block;
  font-size: 1.8rem;
  letter-spacing: 0.3em;
  text-align: center;
}
@media screen and (max-width: 1199px) {
  .top-company__inner p {
    font-size: 1.6rem;
  }
  .top-company__inner p::after {
    font-size: 1.2rem;
  }
}
.top-company__inner.about p::after {
  content: "ABOUT";
}
.top-company__inner.staff p::after {
  content: "STAFF";
}
.top-company .c-button {
  margin-top: 8rem;
}
@media screen and (max-width: 1199px) {
  .top-company .c-button {
    margin: 3rem auto 0;
  }
}

.top-services {
  width: 100%;
  height: auto;
  padding: 20rem 0;
  background-color: #E5E5E5;
}
@media screen and (max-width: 1199px) {
  .top-services {
    padding: 10rem 0;
  }
}
.top-services h2::before {
  content: "SERVICES";
  opacity: 0.2;
  color: #AAAAAA;
}
.top-services__wrapper {
  justify-content: space-between;
  gap: 0 5%;
  width: 100%;
  height: 64rem;
  margin-top: 8rem;
}
@media screen and (max-width: 1199px) {
  .top-services__wrapper {
    gap: 3rem 0;
    width: calc(100% - 1.5rem);
    height: auto;
    margin: 10rem 1.5rem auto 0;
  }
}
.top-services__wrapper li {
  position: relative;
  width: 30.6666666667%;
  height: 57rem;
}
@media screen and (max-width: 1199px) {
  .top-services__wrapper li {
    width: 65%;
    height: auto;
  }
}
.top-services__wrapper li::before {
  content: "";
  opacity: 0.3;
  position: absolute;
  top: -3rem;
  left: 3rem;
  width: 100%;
  height: auto;
  aspect-ratio: 51/45;
  mix-blend-mode: multiply;
}
@media screen and (max-width: 1199px) {
  .top-services__wrapper li::before {
    top: -1.5rem;
    left: 1.5rem;
  }
}
.top-services__wrapper li img {
  width: 100%;
  height: auto;
  aspect-ratio: 51/45;
  object-fit: cover;
  object-position: 20% center;
}
.top-services__wrapper li h3 {
  margin-top: 2rem;
  font-size: 3.6rem;
}
.top-services__wrapper li h3::after {
  display: block;
  margin-top: 0;
  font-size: 1.8rem;
  letter-spacing: 0.3em;
}
@media screen and (max-width: 1199px) {
  .top-services__wrapper li h3 {
    margin-top: 0.5rem;
    font-size: 1.6rem;
  }
  .top-services__wrapper li h3::after {
    font-size: 1.2rem;
  }
}
.top-services .c-button {
  margin-top: 8rem;
}
@media screen and (max-width: 1199px) {
  .top-services .c-button {
    margin-top: 5rem;
  }
}

[class*=services] .light::before {
  background: linear-gradient(135deg, rgb(141, 234, 242) 0%, rgb(116, 204, 89) 100%);
}
[class*=services] .light h3::after {
  content: "SALES";
}
[class*=services] .water {
  margin: auto;
}
[class*=services] .water::before {
  background: linear-gradient(135deg, rgb(242, 199, 141) 0%, rgb(205, 141, 208) 100%);
}
[class*=services] .water h3::after {
  content: "SALES";
}
[class*=services] .staff {
  margin-top: auto;
}
@media screen and (max-width: 1199px) {
  [class*=services] .staff {
    margin: 0 0 0 auto;
  }
}
[class*=services] .staff::before {
  background: linear-gradient(135deg, rgb(242, 234, 141) 0%, rgb(156, 141, 208) 100%);
}
[class*=services] .staff h3::after {
  content: "STAFFING AGENCY";
}

.p-philosophy {
  width: 100%;
  height: auto;
  padding: 10rem 0;
  background: linear-gradient(0deg, rgba(20, 37, 129, 0.5) 0%, rgb(20, 37, 129) 100%);
}
.p-philosophy__inner {
  width: 100%;
  height: auto;
  padding: 15rem 0 10rem;
  background-color: rgba(255, 255, 255, 0.1);
}
@media screen and (max-width: 1199px) {
  .p-philosophy__inner {
    padding: 8rem 0 10rem;
  }
}
.p-philosophy__inner h2 {
  color: #fff;
}
.p-philosophy__inner h2::before {
  content: "PHILOSOPHY";
  color: #161F81;
}
@media screen and (max-width: 1199px) {
  .p-philosophy__inner h2::before {
    padding-left: 0.2em;
    font-size: 5.8rem;
    letter-spacing: 0.1em;
  }
}
.p-philosophy__inner p {
  margin-top: 5rem;
  color: #fff;
  font-size: 2.7rem;
  text-align: center;
}
@media screen and (max-width: 1199px) {
  .p-philosophy__inner p {
    width: 80%;
    margin: 5rem auto 0;
    font-size: 1.6rem;
    line-height: 1.5;
  }
}

.p-profile {
  width: 100%;
  height: auto;
  padding: 15rem 0 10rem;
  background-color: #E8E8E8;
}
@media screen and (max-width: 1199px) {
  .p-profile {
    padding: 8rem 0 10rem;
  }
}
.p-profile .c-title {
  margin-left: 6%;
  text-align: left;
}
.p-profile .c-title::before {
  content: "COMPANY PROFILE";
  left: 0;
  transform: none;
  color: #6A6A6A;
  opacity: 0.2;
  letter-spacing: 0.25em;
}
@media screen and (max-width: 1199px) {
  .p-profile .c-title {
    height: 11.6;
    margin: 0;
    line-height: 11rem;
    text-align: center;
  }
  .p-profile .c-title::before {
    display: block;
    top: 0;
    right: 0;
    width: 36rem;
    margin: auto;
    height: 2em;
    font-size: 5.8rem;
    line-height: 0.9;
    letter-spacing: 0.2em;
    text-align: left;
    white-space: normal;
  }
}
.p-profile__wrapper {
  align-items: stretch;
  width: 100%;
  height: 100%;
  margin-top: 5rem;
  background-color: #9F9E9E;
}
@media screen and (max-width: 1199px) {
  .p-profile__wrapper {
    padding-bottom: 5rem;
  }
}
.p-profile__information {
  width: 45%;
  height: auto;
}
@media screen and (max-width: 1199px) {
  .p-profile__information {
    width: 100%;
    padding: 10rem 0 5rem;
  }
}
.p-profile__information--inner {
  display: grid;
  place-items: center;
  width: 70%;
  min-width: 55rem;
  height: 100%;
  margin-left: auto;
  padding: 0 3rem;
  background-color: #E5E5E5;
}
.p-profile__information--inner table th {
  width: 30%;
  padding-right: 2rem;
  font-weight: normal;
  text-align: left;
  vertical-align: top;
}
@media screen and (max-width: 1199px) {
  .p-profile__information--inner table th {
    width: max-content;
    padding-right: 1rem;
  }
}
.p-profile__information--inner table td {
  width: 70%;
}
@media screen and (max-width: 1199px) {
  .p-profile__information--inner table td {
    width: auto;
  }
}
.p-profile__information--inner table tr:not(:last-child) td {
  padding-bottom: 1rem;
}
@media screen and (max-width: 1199px) {
  .p-profile__information--inner table tr:not(:last-child) td {
    padding-bottom: 0.5rem;
  }
}
@media screen and (max-width: 1199px) {
  .p-profile__information--inner {
    width: 100%;
    min-width: 80%;
    padding: 5rem 0;
  }
  .p-profile__information--inner table {
    width: max-content;
    padding: 0 8%;
  }
}
.p-profile__name {
  display: flex;
  flex-direction: column;
  gap: 5rem 0;
  position: relative;
  width: 65%;
  height: 100%;
  padding: 3rem 10rem;
}
.p-profile__name::before, .p-profile__name::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  opacity: 0.2;
  width: 10rem;
  height: 2px;
  background-color: #fff;
}
@media screen and (max-width: 1199px) {
  .p-profile__name::before, .p-profile__name::after {
    width: 4.5rem;
  }
}
.p-profile__name::before {
  transform: rotate(45deg);
}
.p-profile__name::after {
  transform: rotate(-45deg);
}
@media screen and (max-width: 1199px) {
  .p-profile__name {
    width: 100%;
    padding: 0 8%;
  }
}
.p-profile__name--inner {
  width: 80%;
}
.p-profile__name--inner h3 {
  opacity: 0.2;
  opacity: 0.3;
  color: #C3C3C3;
  font-family: "Marcellus", serif;
  font-size: 14.4rem;
  letter-spacing: 0.3em;
  color: #fff;
  font-size: 8rem;
  line-height: 1;
}
@media screen and (max-width: 1199px) {
  .p-profile__name--inner h3 {
    font-size: 3.6rem;
  }
}
.p-profile__name--inner p {
  color: #fff;
  line-height: 1.5;
}
.p-profile__name--inner:nth-child(2) {
  margin-left: auto;
}
.p-profile__name--inner:nth-child(2) h3 {
  text-align: right;
}

.p-staff {
  width: 100%;
  height: auto;
  padding: 15rem 0;
  background: url(./images/img/company-staff-bg.png) no-repeat center top/cover;
}
.p-staff h2 {
  color: #fff;
}
.p-staff h2::before {
  content: "STAFF";
  letter-spacing: 0.25em;
}
.p-staff__wrapper {
  justify-content: center;
  gap: 0 5%;
  margin-top: 5rem;
}
@media screen and (max-width: 1199px) {
  .p-staff__wrapper.u-flexwrap {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: start;
    gap: 3rem 0;
    padding: 0 8%;
  }
}
.p-staff__inner {
  width: 17%;
  min-width: 33rem;
  height: auto;
}
@media screen and (max-width: 1199px) {
  .p-staff__inner {
    width: 50%;
    min-width: 50%;
  }
}
.p-staff__inner--img {
  position: relative;
}
@media screen and (max-width: 1199px) {
  .p-staff__inner--img {
    width: 75%;
    margin: 0 auto;
  }
}
.p-staff__inner--img > img {
  width: 100%;
  height: auto;
  object-fit: cover;
  object-position: center top;
}
.p-staff__inner--img span {
  position: absolute;
  bottom: 2rem;
  left: -15%;
}
@media screen and (max-width: 1199px) {
  .p-staff__inner--img span {
    bottom: 0;
    width: 100%;
  }
  .p-staff__inner--img span img {
    max-width: 100%;
  }
}
.p-staff__inner--text {
  margin-top: 2rem;
}
@media screen and (max-width: 1199px) {
  .p-staff__inner--text {
    width: 75%;
    margin: 2rem auto 0;
  }
}
.p-staff__inner:nth-child(3) span img {
  max-height: 7rem;
}
@media print, screen and (max-width: 767px) {
  .p-staff__inner:nth-child(3) span img {
    max-height: 5rem;
  }
}

.p-services {
  width: 100%;
  padding: 10rem 3%;
}
@media screen and (max-width: 1199px) {
  .p-services {
    padding: 8rem 5% 0;
  }
}
.p-services__wrapper {
  width: 100%;
  padding: 15rem 0;
  background-color: #F8F8F8;
}
@media screen and (max-width: 1199px) {
  .p-services__wrapper {
    padding: 8rem 0;
  }
}
.p-services__wrapper h2::before {
  content: "SERVICES";
}
@media screen and (max-width: 1199px) {
  .p-services__wrapper h2::before {
    font-size: 6rem;
    letter-spacing: 0.24em;
  }
}
.p-services__lists {
  display: flex;
  flex-direction: column;
  gap: 8rem 0;
  margin-top: 5rem;
}
.p-services__list {
  position: relative;
  width: 100%;
}
@media screen and (max-width: 1199px) {
  .p-services__list {
    display: flex;
    flex-direction: column;
  }
}
.p-services__list img {
  width: 52%;
  min-width: 55rem;
  height: auto;
  padding-bottom: 3rem;
}
@media screen and (max-width: 1199px) {
  .p-services__list img {
    width: 100%;
    min-width: auto;
    margin: 0 auto;
  }
}
.p-services__list--text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 3rem 0;
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 1;
  width: 55%;
  height: 70%;
  min-height: max-content;
  padding: 5rem;
}
@media screen and (max-width: 1199px) {
  .p-services__list--text {
    position: inherit;
    width: 100%;
    margin: -10rem -7% 0 auto;
    padding: 5rem 3rem;
  }
}
.p-services__list--text::before, .p-services__list--text::after {
  content: "";
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.p-services__list--text::before {
  opacity: 0.3;
  z-index: -1;
  mix-blend-mode: multiply;
}
.p-services__list--text::after {
  opacity: 0.8;
  z-index: -2;
  background-color: #fff;
}
.p-services__list--text h3 {
  position: relative;
  font-size: 3.6rem;
}
.p-services__list--text h3::after {
  display: block;
  font-size: 1.8rem;
  letter-spacing: 0.3em;
}
@media screen and (max-width: 1199px) {
  .p-services__list--text h3 {
    font-size: 1.6rem;
  }
  .p-services__list--text h3::after {
    font-size: 1.2rem;
  }
}

@media screen and (max-width: 1199px) {
  #services [class*=services] .water, #services [class*=services] .staff {
    margin: -10rem -7% 0 auto;
  }
}

.p-stage {
  width: 100%;
  height: auto;
  aspect-ratio: 1920/901;
  background: url(./images/img/service-stage-bg.jpg) no-repeat center/cover;
}
@media screen and (max-width: 1199px) {
  .p-stage {
    aspect-ratio: 1/1;
  }
}
.p-stage__inner {
  display: flex;
  align-items: center;
}
.p-stage__inner p {
  margin-left: auto;
  opacity: 0.3;
  color: #C3C3C3;
  font-family: "Marcellus", serif;
  font-size: 14.4rem;
  letter-spacing: 0.3em;
  opacity: 1;
  color: #fff;
  line-height: 1.2;
  text-align: right;
}
@media screen and (max-width: 1199px) {
  .p-stage__inner p {
    font-size: 5.8rem;
  }
}

.p-newworld {
  display: flex;
  align-items: center;
  position: relative;
  width: 100%;
  height: auto;
  aspect-ratio: 1920/1040;
  background: url(./images/img/recruit-second-bg.png) no-repeat center/cover;
}
.p-newworld__text {
  position: relative;
  width: 100%;
  height: 80%;
}
@media print, screen and (max-width: 767px) {
  .p-newworld__text {
    position: absolute;
    top: 9rem;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 100%;
    height: calc(100% - 18rem);
  }
}
.p-newworld p {
  position: absolute;
  opacity: 0.3;
  color: #C3C3C3;
  font-family: "Marcellus", serif;
  font-size: 14.4rem;
  letter-spacing: 0.3em;
  opacity: 1;
  color: #9D9C9C;
}
.p-newworld p:nth-child(1) {
  top: 0;
  right: 0;
  font-size: 7.5vw;
  white-space: nowrap;
}
@media print, screen and (max-width: 767px) {
  .p-newworld p:nth-child(1) {
    width: 40rem;
    font-size: 5.8rem;
    line-height: 1.2;
    text-align: right;
    white-space: normal;
  }
}
.p-newworld p:nth-child(2) {
  bottom: 0rem;
  left: 2rem;
  padding-bottom: 1rem;
  font-size: 6vw;
}
.p-newworld p:nth-child(2)::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 100%;
  height: 10px;
  background-color: #9D9C9C;
}
@media print, screen and (max-width: 767px) {
  .p-newworld p:nth-child(2) {
    font-size: 3.2rem;
    text-align: left;
    white-space: nowrap;
  }
  .p-newworld p:nth-child(2)::after {
    height: 4px;
  }
}
.p-newworld__inner {
  display: flex;
  justify-content: space-between;
  gap: 0 3%;
  position: absolute;
  inset: 0;
  width: 100%;
  height: max-content;
  margin: auto;
}
@media print, screen and (max-width: 767px) {
  .p-newworld__inner {
    flex-wrap: wrap;
    position: inherit;
    padding: 20rem 0;
  }
}
.p-newworld__inner img {
  width: 22.75%;
}
@media print, screen and (max-width: 767px) {
  .p-newworld__inner img {
    width: 44%;
  }
}
.p-newworld__inner img:nth-child(1) {
  margin-bottom: 8rem;
}
@media print, screen and (max-width: 767px) {
  .p-newworld__inner img:nth-child(1) {
    margin-bottom: 4rem;
  }
}
.p-newworld__inner img:nth-child(2) {
  margin: auto;
}
.p-newworld__inner img:nth-child(3) {
  margin: auto 0 0;
}
@media print, screen and (max-width: 767px) {
  .p-newworld__inner img:nth-child(3) {
    margin: 0 0 0 5%;
  }
}
.p-newworld__inner img:nth-child(4) {
  margin: auto 0 4rem;
}

.p-contents {
  width: 100%;
}
.p-contents .p-content {
  width: 100%;
  height: auto;
  padding: 12rem 0;
}
@media screen and (max-width: 1199px) {
  .p-contents .p-content {
    padding: 8rem 0;
  }
  .p-contents .p-content .l-main__inner {
    max-width: 72rem;
    margin: 0 auto;
  }
}
.p-contents .p-content img {
  width: 50%;
  object-fit: cover;
}
@media screen and (max-width: 1199px) {
  .p-contents .p-content img {
    order: 2;
    width: 100%;
    margin-top: 5rem;
  }
}
.p-contents .p-content__text {
  width: 50%;
  padding: 0 5rem;
}
.p-contents .p-content__text > div {
  margin-top: 3rem;
}
@media screen and (max-width: 1199px) {
  .p-contents .p-content__text {
    display: contents;
  }
  .p-contents .p-content__text > div {
    order: 3;
    width: 90%;
    margin: 3rem 0 0 auto;
  }
}
.p-contents .p-content__text h2 {
  display: inline-block;
  padding: 8rem 0 2rem;
}
.p-contents .p-content__text h2::before {
  bottom: 4rem;
  left: 0;
  opacity: 1;
  transform: none;
}
.p-contents .p-content__text h2::after {
  content: "";
  display: inline-block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 10px;
  background-color: #595959;
}
@media screen and (max-width: 1199px) {
  .p-contents .p-content__text h2 {
    width: max-content;
    padding: 7rem 0 1.5rem;
  }
  .p-contents .p-content__text h2::before {
    bottom: 6rem;
  }
  .p-contents .p-content__text h2::after {
    height: 4px;
  }
}
.p-contents .p-content__text .c-button {
  width: clamp(34rem, 70%, 40rem);
  margin: 5rem 0 0;
}
@media screen and (max-width: 1199px) {
  .p-contents .p-content__text .c-button {
    width: 20rem;
    margin: 5rem 0 0 auto;
  }
}

.p-content.business {
  background-color: #C1C1C1;
}
.p-content.business h2 {
  color: #595959;
}
.p-content.business h2::before {
  content: "BUSINESS";
  color: #9D9C9C;
}
@media screen and (max-width: 1199px) {
  .p-content.business h2::before {
    letter-spacing: 0.24em;
  }
}
.p-content.business div > p {
  color: #424242;
}
.p-content.about {
  background-color: #959494;
}
.p-content.about h2 {
  color: #595959;
}
.p-content.about h2::before {
  content: "ABOUT";
}
@media screen and (max-width: 1199px) {
  .p-content.about h2::before {
    letter-spacing: 0.24em;
  }
}
.p-content.about div > p {
  color: #424242;
}
.p-content.education {
  background-color: #474747;
  color: #fff;
}
.p-content.education h2::before {
  content: "EDUCATION";
  color: #606060;
  transform: translateX(-20%);
}
@media screen and (max-width: 1199px) {
  .p-content.education h2::before {
    letter-spacing: 0.05em;
    transform: none;
  }
}
.p-content.education h2::after {
  background-color: #fff;
}

.p-voices {
  width: 100%;
  height: auto;
  padding: 5rem 0;
  background-color: #959494;
}
.p-voices > ul {
  padding: 5rem 8%;
}
@media screen and (max-width: 1199px) {
  .p-voices > ul {
    max-width: 78rem;
    margin: 0 auto;
  }
}
.p-voices .p-voice {
  display: flex !important;
  justify-content: space-between;
  align-items: center;
}
@media screen and (max-width: 1199px) {
  .p-voices .p-voice {
    align-items: start;
    padding: 0 2rem;
  }
}
.p-voices .p-voice__text {
  width: 50%;
  padding: 5rem 5rem 0;
}
@media screen and (max-width: 1199px) {
  .p-voices .p-voice__text {
    display: contents;
  }
}
.p-voices .p-voice__text h2 {
  display: inline-block;
  margin-bottom: 2rem;
  color: #fff;
  text-align: left;
}
.p-voices .p-voice__text h2::before {
  content: "VOICE";
  left: 0;
  font-size: min(9vw, 13rem);
  text-align: left;
  transform: none;
}
.p-voices .p-voice__text h2::after {
  content: "";
  position: absolute;
  bottom: -2rem;
  left: 0;
  width: 100%;
  height: 10px;
  background-color: #fff;
}
@media screen and (max-width: 1199px) {
  .p-voices .p-voice__text h2 {
    order: 1;
    padding-top: 3rem;
  }
  .p-voices .p-voice__text h2::before {
    bottom: 1rem;
    font-size: 5.8rem;
  }
  .p-voices .p-voice__text h2::after {
    height: 4px;
  }
}
.p-voices .p-voice__text p {
  margin-top: 3rem;
  color: #fff;
}
@media screen and (max-width: 1199px) {
  .p-voices .p-voice__text p {
    order: 3;
  }
}
.p-voices .p-voice__text img {
  width: 100%;
  height: auto;
  margin-top: 5rem;
}
@media screen and (max-width: 1199px) {
  .p-voices .p-voice__text img {
    order: 4;
  }
}
.p-voices .p-voice__img {
  position: relative;
  width: 50%;
}
@media screen and (max-width: 1199px) {
  .p-voices .p-voice__img {
    order: 2;
    width: 100%;
    max-width: 48rem;
    margin: 5rem auto 0;
  }
}
.p-voices .p-voice__img img {
  width: 100%;
  height: auto;
}
.p-voices .p-voice__img--staff {
  position: absolute;
  bottom: 2rem;
  left: 2rem;
}
.p-voices .p-voice__img--staff h3, .p-voices .p-voice__img--staff span {
  color: #000;
}

.p-parents {
  position: relative;
  z-index: 1;
  width: 100%;
  height: auto;
  min-height: 108rem;
  aspect-ratio: 1920/1164;
  padding-top: 5rem;
  background: url(./images/img/recruit-parents-bg01.jpg) no-repeat center top/cover;
}
@media screen and (max-width: 1199px) {
  .p-parents {
    min-height: auto;
    aspect-ratio: 1/1;
    background-size: 150%;
    background-position: bottom;
  }
}
@media screen and (max-width: 1199px) and (max-width: 767px) {
  .p-parents {
    max-height: 74rem;
    min-height: 55rem;
    aspect-ratio: 1/1.2;
  }
}
.p-parents::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  z-index: -1;
  width: 100%;
  height: 50%;
  background: linear-gradient(0deg, rgba(12, 153, 195, 0) 0%, rgb(12, 153, 195) 100%);
}
@media screen and (max-width: 1199px) {
  .p-parents::before {
    background: linear-gradient(0deg, rgba(12, 153, 195, 0) 0%, rgb(12, 153, 195) 84%);
  }
}
@media screen and (max-width: 1199px) and (max-width: 767px) {
  .p-parents::before {
    height: 60%;
    max-height: 28rem;
    background: linear-gradient(0deg, rgba(12, 153, 195, 0) 0%, rgb(12, 153, 195) 30%);
  }
}
.p-parents h2 {
  color: #fff;
}
.p-parents h2::before {
  content: "TO PARENTS";
  color: #fff;
  line-height: 14rem !important;
  white-space: nowrap;
}
@media screen and (max-width: 1199px) {
  .p-parents h2::before {
    font-size: 5.8rem;
    line-height: 5.8rem !important;
    letter-spacing: 0.05em;
  }
}
.p-parents__lists {
  width: max-content;
  max-width: 100%;
  margin: 3rem auto 0;
  padding: 0 8%;
  color: #fff;
}
.p-parents__lists li {
  margin-bottom: 1rem;
}

.p-contact {
  width: 100%;
  padding: 12rem 0 24rem;
  background-color: #474747;
}
@media screen and (max-width: 1199px) {
  .p-contact {
    padding: 8rem 0;
  }
}
.p-contact__inner {
  width: 100%;
  max-width: 108rem;
  margin: 0 auto;
  padding-left: 6%;
  padding-right: 6%;
}
.p-contact__inner > p {
  color: #fff;
}
.p-contact .p-form {
  margin-top: 5rem;
}
@media screen and (max-width: 1199px) {
  .p-contact .p-form {
    margin: 2rem auto 5rem;
  }
}

.cf-area {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 0.5em 0;
  transition: all 0.3s;
}

.cf-area:last-child {
  border-bottom: none;
}

.cf-area dt {
  width: 400px;
  padding-right: 30px;
  text-align: right;
  line-height: 1.5em;
}

.cf-area dt p {
  color: #ffffff !important; /* 白色 */
}

.cf-area dd {
  flex: 1;
}

.cf-area input, .cf-area textarea, .cf-area textarea, .wpcf7-select {
  width: 100%;
  padding: 0.2em;
  border: none;
  background-color: #fff;
  font-size: 16px;
  resize: vertical;
  transition: all 0.3s;
}

.cf-area input:focus, .cf-area textarea:focus {
  outline: none;
  background: #dde2e9;
}

.cf-required {
  background: #b91e23;
  color: #fff;
  font-size: 0.8em;
  padding: 0 5px 2px;
  border-radius: 2px;
}

.cf-send input {
  display: block;
  background-color: #E5CB5A;
  width: 380px;
  height: 50px;
  margin: 30px auto 0;
  border: none;
  border-radius: 0px;
  color: #000000;
  box-shadow: 2px 5px 15px 0 rgba(0, 0, 0, 0.2);
  font-size: 1.3em;
  font-weight: regular;
  transition: all 0.3s;
  text-align: center;
  line-height: 20px;
}

.cf-send input:hover {
  filter: brightness(1.25);
}

.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
  background-color: #fce3e3;
  border: none;
  text-align: center;
}

.cf-area dt {
  width: 100%;
  margin-bottom: 5px;
  padding-right: 0;
  text-align: left;
  line-height: 1.5em;
}

@media (max-width: 768px) {
  .cf-send input {
    width: 100%; /* 画面幅に合わせる */
    margin: 30px 0 0; /* 左右のマージンを0に */
  }
}
.wpcf7-form-control-wrap:has(.wpcf7-select)::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  right: 1rem;
  width: 10px;
  height: 6px;
  background-color: #000;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  display: block;
  z-index: 1000;
  opacity: 1;
}
.wpcf7-form-control-wrap:has(.wpcf7-select) .wpcf7-select {
  position: relative;
  width: 30rem;
  padding: 0.2em 1rem;
}

.wpcf7-spinner {
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  right: 2rem;
}

.p-form button br {
  display: none;
}

.u-spOnly {
  display: none;
}

@media screen and (max-width: 1199px) {
  .u-spOnly {
    display: block;
  }
  .u-pcOnly {
    display: none;
  }
}
.u-invisible {
  visibility: hidden;
}

.u-flexwrap {
  display: flex;
}
@media screen and (max-width: 1199px) {
  .u-flexwrap {
    flex-direction: column;
  }
}
.u-flexwrap.reverse {
  flex-direction: row-reverse;
}
@media screen and (max-width: 1199px) {
  .u-flexwrap.reverse {
    flex-direction: column;
  }
}

.u-table {
  width: 100%;
  border-collapse: collapse;
}
.u-table th {
  width: 18rem;
  padding: 1.5rem 1rem;
  border-bottom: 1px solid #595959;
  text-align: left;
  vertical-align: baseline;
}
@media print, screen and (max-width: 767px) {
  .u-table th {
    width: auto;
    white-space: nowrap;
  }
}
.u-table td {
  padding: 1rem;
  border-bottom: 1px solid #6A6A6A;
}

.js-scroll {
  opacity: 0;
  transform: translate(0, 3rem);
  transition: opacity 1s, transform 1s;
}
.js-scroll.is-show {
  opacity: 1;
  transform: none !important;
}

.js-fadeUp {
  opacity: 0;
  transform: translate(0, 3rem);
  transition: opacity 1s, transform 1s;
  transform: translate(0, 5rem);
}

.js-fadeDown {
  opacity: 0;
  transform: translate(0, 3rem);
  transition: opacity 1s, transform 1s;
  transform: translate(0, -5rem);
}

.js-fadeLeft {
  opacity: 0;
  transform: translate(0, 3rem);
  transition: opacity 1s, transform 1s;
  transform: translate(5rem, 0);
}

.js-fadeRight {
  opacity: 0;
  transform: translate(0, 3rem);
  transition: opacity 1s, transform 1s;
  transform: translate(-5rem, 0);
}

.js-inOrder > * {
  opacity: 0;
  transform: translate(0, 3rem);
  transition: opacity 1s, transform 1s;
}
.js-inOrder > *:nth-child(1) {
  transition-delay: 300ms;
}
.js-inOrder > *:nth-child(2) {
  transition-delay: 600ms;
}
.js-inOrder > *:nth-child(3) {
  transition-delay: 900ms;
}
.js-inOrder > *:nth-child(4) {
  transition-delay: 1200ms;
}
.js-inOrder > *:nth-child(5) {
  transition-delay: 1500ms;
}
.js-inOrder > *:nth-child(6) {
  transition-delay: 1800ms;
}
.js-inOrder > *:nth-child(7) {
  transition-delay: 2100ms;
}
.js-inOrder.is-show > * {
  opacity: 1;
  transform: none !important;
}/*# sourceMappingURL=style.css.map */