@charset "UTF-8";
/* リキッドレイアウト対応 */
.u-desktop {
  display: none;
}
@media screen and (min-width: 768px) {
  .u-desktop {
    display: block;
  }
}

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

html, body {
  max-width: 100%;
  width: 100%;
  overflow-x: hidden;
  font-family: "Noto Sans JP", sans-serif;
  margin: 0;
  padding: 0;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  color: #333;
}
html.noscroll, body.noscroll {
  overflow: hidden;
}

html {
  scroll-behavior: smooth;
  scrollbar-gutter: stable;
}
@media (max-width: 375px) {
  html {
    font-size: 4.2666666667vw;
  }
}
html {
  font-size: 16px;
}

body {
  position: relative;
  color: #333333;
}

* {
  margin: 0;
  padding: 0;
  letter-spacing: 0.06em;
}

p {
  line-height: 1em;
  font-size: 1rem;
}

/* ホバー */
a,
button {
  cursor: pointer;
  color: inherit;
  transition: all 0.3s;
  opacity: 1;
  color: #333;
}

@media screen and (min-width: 768px) {
  a:hover, button:hover {
    opacity: 0.7;
    transition: all 0.3s;
  }
}
a {
  text-decoration: none;
}

/* pcの電話番号発信対応 */
@media screen and (min-width: 768px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
}

button {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: 0;
  border-radius: 0;
  color: inherit;
  cursor: pointer;
  font: inherit;
  margin: 0;
  outline: none;
  padding: 0;
  vertical-align: middle;
}

.pc_only {
  display: none;
}

.tbpc_only {
  display: none;
}

@media screen and (min-width: 768px) {
  .tbpc_only {
    display: block;
  }
}
@media screen and (min-width: 1024px) {
  .sp_only {
    display: none;
  }
  .pc_only {
    display: block;
  }
}
main {
  background-color: #fff;
  position: relative;
}

li {
  list-style-type: none;
}

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

/* Prevent font size inflation */
html {
  -moz-text-size-adjust: none;
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
}

/* Remove default margin in favour of better control in authored CSS */
body, h1, h2, h3, h4, p,
figure, blockquote, dl, dd {
  margin-block-end: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role=list],
ol[role=list] {
  list-style: none;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  line-height: 1.5;
}

/* Set shorter line heights on headings and interactive elements */
h1, h2, h3, h4,
button, input, label {
  line-height: 1.1;
}

/* Balance text wrapping on headings */
/*h1, h2,
h3, h4 {
  text-wrap: balance;
}*/
/* A elements that don't have a class get default styles */
a:not([class]) {
  text-decoration-skip-ink: auto;
  color: currentColor;
}

/* Make images easier to work with */
img,
picture {
  max-width: 100%;
  display: block;
}

/* Inherit fonts for inputs and buttons */
input, button,
textarea, select {
  font-family: inherit;
  font-size: inherit;
}

/* Make sure textareas without a rows attribute are not tiny */
textarea:not([rows]) {
  min-height: 10em;
}

/* Anything that has been anchored to should have extra scroll margin */
:target {
  scroll-margin-block: 5ex;
}

.l-inner {
  max-width: 37.5rem;
  width: 100%;
  padding-right: 20px;
  padding-left: 20px;
  margin-right: auto;
  margin-left: auto;
  position: relative;
}
@media screen and (min-width: 768px) {
  .l-inner {
    max-width: 1220px;
    padding-right: 30px;
    padding-left: 30px;
  }
}

/***************************************
  p-company: 会社情報ページ
****************************************/
/***************************************
  ページ内リンクナビゲーション
****************************************/
.p-company__nav-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: clamp(10px, 5.3333vw, 20px);
  max-width: 300px;
  margin-inline: auto;
}

@media screen and (min-width: 768px) {
  .p-company__nav-list {
    grid-template-columns: repeat(4, 1fr);
    max-width: 620px;
  }
}
.p-company__nav-link {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
  font-weight: 500;
  text-decoration: none;
  padding: clamp(5px, 2.6666vw, 10px);
  transition: opacity 0.3s;
  gap: clamp(10px, 2.99479vw, 23px);
}

@media screen and (min-width: 768px) {
  .p-company__nav-link:hover {
    opacity: 0.8;
    transition: opacity 0.3s;
  }
}
/***************************************
  企業理念カード
****************************************/
.p-company__card {
  margin-top: 40px;
  background-color: #fff;
  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25);
  padding: 40px 20px;
  max-width: 800px;
  margin-inline: auto;
}

@media screen and (min-width: 768px) {
  .p-company__card {
    margin-top: 60px;
    padding: 60px 40px;
  }
}
.p-company__card-inner {
  width: fit-content;
  margin-inline: auto;
}

.p-company__card-heading {
  margin-top: 20px;
}

@media screen and (min-width: 768px) {
  .p-company__card-heading {
    margin-top: 40px;
  }
}
.p-company__sub-heading {
  margin-top: 5px;
  line-height: 1.8;
  font-size: clamp(1rem, 4.8vw, 1.125rem);
  font-weight: 700;
  color: #00A53D;
  letter-spacing: normal;
  width: fit-content;
  margin-inline: auto;
}

@media screen and (min-width: 768px) {
  .p-company__sub-heading {
    font-size: clamp(1rem, 1.83673vw, 1.125rem);
  }
}
.p-company__card-text {
  margin-top: 24px;
  font-size: clamp(0.875rem, 3.733vw, 1rem);
  line-height: 1.8;
  letter-spacing: 0.04em;
  text-align: justify;
}

@media screen and (min-width: 768px) {
  .p-company__card-text {
    font-size: clamp(0.9375rem, 1.25vw, 1rem);
  }
}
.p-company__card-list {
  list-style: none;
  text-align: left;
}

.p-company__card-list li {
  font-size: clamp(0.875rem, 3.733vw, 1rem);
  line-height: 1.8;
  letter-spacing: 0.04em;
  position: relative;
  padding-left: 1.5em;
}
.p-company__card-list li::before {
  content: attr(data-num);
  position: absolute;
  left: 0;
  font-weight: 900;
  font-family: "Lato", sans-serif;
}

.p-company__card-list li + li {
  margin-top: clamp(0.25rem, 1.067vw, 0.5rem);
}

@media screen and (min-width: 768px) {
  .p-company__card-list li {
    font-size: clamp(0.9375rem, 1.25vw, 1rem);
  }
}
/***************************************
  代表挨拶セクション
****************************************/
.p-company__message {
  margin-top: clamp(40px, 10.667vw, 60px);
  margin-inline: auto;
  background-color: #f4fcf3;
  padding: 40px 10px;
}

@media screen and (min-width: 768px) {
  .p-company__message {
    padding: 40px clamp(20px, 3.278688vw, 40px);
  }
}
/***************************************
  会社概要セクション
****************************************/
.p-company__overview {
  margin-top: clamp(40px, 10.667vw, 60px);
  max-width: 800px;
  margin-inline: auto;
}

/***************************************
  会社概要テーブル
****************************************/
.p-company__table {
  margin-top: 20px;
}

@media screen and (min-width: 768px) {
  .p-company__table {
    margin-top: 40px;
  }
}
.p-company__table-row {
  display: flex;
  gap: 5px;
  border-bottom: 5px solid #fff;
}
.p-company__table-row:last-child {
  border-bottom: none;
}

.p-company__table dt,
.p-company__table dd {
  font-size: clamp(0.75rem, 3.7333333333vw, 0.875rem);
  font-weight: 400;
  line-height: 1.8;
  padding: 5px;
  min-width: 90px;
}

@media screen and (min-width: 768px) {
  .p-company__table dt,
  .p-company__table dd {
    font-size: 1rem;
    padding: 10px;
    min-width: 120px;
  }
}
.p-company__table dt {
  background-color: #e2fbde;
}

.p-company__table dd {
  background-color: #f4fcf3;
  width: 100%;
}

.p-company__table-indent {
  display: inline-block;
  padding-left: 1em;
}

@media screen and (min-width: 768px) {
  .p-company__table dt,
  .p-company__table dd {
    font-size: 1rem;
    padding: 10px;
    min-width: 120px;
  }
}
/***************************************
  沿革セクション
****************************************/
.p-company__history {
  margin-top: clamp(2.5rem, 10.667vw, 3.75rem);
}

/* ヘッダー: タイトルとナビゲーションを横並び */
.p-company__history-header {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 20px 0;
}

/* スライダーナビゲーションボタン */
.p-company__history-nav {
  display: flex;
  gap: 0.5rem;
  margin-right: 10px;
  position: relative;
  z-index: 10;
}

@media screen and (min-width: 1024px) {
  .p-company__history-nav {
    margin-right: 0;
  }
}
.p-company__history-prev,
.p-company__history-next {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 29.5px;
  height: 3.5px;
  cursor: pointer;
}

@media screen and (min-width: 1024px) {
  .p-company__history-prev,
  .p-company__history-next {
    justify-content: center;
    width: 44.25px;
    height: 5.25px;
  }
}
.p-company__history-prev:hover,
.p-company__history-next:hover {
  opacity: 0.7;
}

.p-company__history-prev.swiper-button-disabled,
.p-company__history-next.swiper-button-disabled {
  opacity: 0;
  cursor: default;
}

/* Swiperスライダーコンテナ */
.p-company__history-slider {
  overflow: hidden;
  position: relative;
  margin-top: 5px;
}
.p-company__history-slider::before {
  content: "";
  position: absolute;
  top: 20px;
  left: 0%;
  width: 100%;
  height: 1px;
  background-color: #00a53d;
  z-index: -1;
}

@media screen and (min-width: 1024px) {
  .p-company__history-slider {
    margin-left: calc((100vw - 800px) / 2);
  }
}
/* 沿革カード */
.p-company__history-card {
  height: auto;
  width: 100%;
  max-width: 375px;
  padding-inline: 20px;
}

/* 年の見出し */
.p-company__history-year {
  display: inline-block;
  font-family: "Lato", sans-serif;
  font-size: clamp(1rem, 4.8vw, 1.125rem);
  font-weight: 900;
  color: #fff;
  background-color: #009558;
  padding: 0 10px;
  line-height: 40px;
  position: relative;
  z-index: 5;
}

/***************************************
  タイムライン
****************************************/
.p-company__timeline {
  display: flex;
  flex-direction: column;
  margin-top: 10px;
  padding: 10px 0;
  background-color: #f4fcf3;
  height: 100%;
}

.p-company__timeline-item {
  display: flex;
}

.p-company__timeline-month {
  flex-shrink: 0;
  font-size: clamp(0.75rem, 3.7333333333vw, 0.875rem);
  font-weight: 900;
  color: #009558;
  min-width: 50px;
  padding: 10px;
}

.p-company__timeline-content {
  flex: 1;
  padding: 10px;
}

.p-company__timeline-content p {
  font-size: clamp(0.75rem, 3.7333333333vw, 0.875rem);
  line-height: 1.5;
  word-break: break-word; /* 長い単語を折り返す */
  overflow-wrap: break-word; /* 単語の途中で改行を許可 */
}

.p-contact__lead {
  margin: 20px 0;
}

@media screen and (min-width: 768px) {
  .p-contact__lead {
    margin: 60px 0 40px;
    text-align: center;
  }
}
.p-cta {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  max-width: 940px;
  width: 100%;
  margin-inline: auto;
  padding-inline: 20px;
  gap: 30px;
  padding-bottom: 130px;
}
.p-cta.--entry {
  margin-top: 50px;
  justify-content: center;
  padding: 0;
  max-width: 100%;
}

@media screen and (min-width: 768px) {
  .p-cta {
    padding-inline: 30px;
    flex-direction: row;
    gap: 30px;
    padding-bottom: 140px;
  }
  .p-cta.--entry {
    margin-top: 60px;
    padding: 0;
  }
}
.p-cta__button {
  line-height: 1;
  border-radius: 10px;
  box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0.25);
  padding: 50px 20px;
  min-height: 200px;
  max-width: 400px;
  width: 100%;
  font-weight: 900;
  font-family: "Lato", sans-serif;
  font-size: 2.5rem;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.p-cta__button span {
  font-weight: 400;
  font-size: 0.75rem;
  font-family: "Noto Sans JP", sans-serif;
}
.p-cta__button.--entry {
  background: center/cover no-repeat url(../images/cta_entry.png);
}
.p-cta__button.--contact {
  background: center/cover no-repeat url(../images/cta_contact.png);
}
.p-cta__button.--small.--contact {
  position: relative;
  z-index: 1;
  padding: 1.9375rem 3.125rem;
  min-height: 6.75rem;
  max-width: 22.25rem;
  font-size: clamp(1.25rem, 6.9333vw, 1.625rem);
}
.p-cta__button.--small.--contact::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 10px;
  z-index: -1;
}
.p-cta__button.--small.--entry {
  position: relative;
  z-index: 1;
  padding: 1.9375rem 3.125rem;
  min-height: 6.75rem;
  max-width: 22.25rem;
  font-size: clamp(1.25rem, 6.9333vw, 1.625rem);
  background: center/cover no-repeat url(../images/contact/button_bg.png);
}
.p-cta__button.--small.--entry::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.2);
  border-radius: 10px;
  z-index: -1;
}

.p-cta__button.--small.--contact:hover, .p-cta__button.--small.--entry:hover {
  box-shadow: 0px 2px 4px 0px rgba(0, 0, 0, 0);
}

@media screen and (min-width: 768px) {
  .p-cta__button.--small.--contact, .p-cta__button.--small.--entry {
    padding: clamp(1.25rem, 2.5409vw, 1.9375rem) clamp(1.875rem, 4.09836vw, 3.125rem);
    font-size: clamp(1.25rem, 2.13114vw, 1.625rem);
    max-width: calc((100% - clamp(1.25rem, 3.2786vw, 2.5rem) * 2) / 3);
    min-height: clamp(5rem, 8.8524vw, 6.75rem);
  }
}
/***************************************
ラジオボタン (チェックボックス)
****************************************/
.form-label .wpcf7-radio {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 10px;
}

.form-label .wpcf7-checkbox {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 10px;
}

input[type=radio],
input[type=checkbox] {
  opacity: 0;
  visibility: hidden;
  position: absolute;
}

.form-label .wpcf7-list-item {
  margin-left: 0;
}

span.wpcf7-list-item-label {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  cursor: pointer;
}

span.wpcf7-list-item-label::before {
  display: block;
  content: "";
  border-radius: 50%;
  border: 1px solid #C6C6C6;
  width: 17px;
  height: 17px;
  margin-right: 10px;
  background-color: #fff;
  box-shadow: 1px 2px 2px 0 rgba(0, 0, 0, 0.25) inset;
}

span.wpcf7-list-item-label::after {
  display: block;
  position: absolute;
  content: "";
  border-radius: 50%;
  width: 11px;
  height: 11px;
  background-color: #00A53D;
  left: 3px;
  top: calc(50% - 5.5px);
  display: none;
}

input[type=radio]:checked + span.wpcf7-list-item-label::after {
  display: block;
}

input[type=checkbox] + span.wpcf7-list-item-label::before {
  border-radius: 3px;
  border: 1px solid #C6C6C6;
  background: #FFF;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.25) inset;
  content: "";
  display: inline-block;
  height: 22px;
  margin-right: 10px;
  position: relative;
  top: -1px;
  vertical-align: middle;
  width: 22px;
}

input[type=checkbox] + span.wpcf7-list-item-label::after {
  background: url(../images/entry/check.svg) no-repeat center;
  background-size: contain;
  content: "";
  height: 24px;
  left: 1px;
  position: absolute;
  top: -2px;
  width: 22px;
  display: none;
}

input[type=checkbox]:checked + span.wpcf7-list-item-label::after {
  display: block;
}

/***************************************
チェックボックス ポリシー
****************************************/
.--policy span.wpcf7-list-item {
  margin: 0;
  position: relative;
}

.--policy .wpcf7-list-item-label {
  cursor: pointer;
  font-size: clamp(0.875rem, 4.267vw, 1rem);
}

.--policy input[type=checkbox] {
  opacity: 0;
  position: absolute;
}

.--policy .wpcf7-list-item-label::before {
  border-radius: 3px;
  border: 1px solid #C6C6C6;
  background: #FFF;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.25) inset;
  content: "";
  display: inline-block;
  height: 22px;
  margin-right: 10px;
  position: relative;
  top: -1px;
  vertical-align: middle;
  width: 22px;
}

.--policy input[type=checkbox]:checked + span.wpcf7-list-item-label::after {
  background: url(../images/entry/check.svg) no-repeat center;
  background-size: contain;
  content: "";
  height: 24px;
  left: 1px;
  position: absolute;
  top: -2px;
  width: 22px;
  display: block;
}

/***************************************
その他
****************************************/
.form {
  width: 100%;
}

.form__step {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 5px;
  margin-bottom: 20px;
  justify-content: center;
  max-width: 860px;
  width: 100%;
  margin-inline: auto;
}

@media screen and (min-width: 768px) {
  .form__step {
    gap: clamp(5px, 2.778vw, 40px);
    margin-bottom: 40px;
  }
}
.form__step-item {
  display: grid;
  grid-template-columns: 1fr;
  line-height: 2.223;
  background-color: #fff;
  border-radius: 10px;
  overflow: hidden;
}
.form__step-item span {
  text-align: center;
  color: #D4D4D4;
  font-size: clamp(0.75rem, 1.25vw, 1.125rem);
  font-style: normal;
  font-weight: 500;
}

@media screen and (min-width: 768px) {
  .form__step-item {
    grid-template-columns: 1fr 1fr;
  }
}
.form__step-item .form__step-en {
  font-size: clamp(0.75rem, 1.25vw, 1.125rem);
  background: #B5D5FF;
  color: #fff;
  display: block;
}

.form__step-item.--active span {
  color: #333;
}
.form__step-item.--active .form__step-en {
  background: #3A8EFC;
  color: #fff;
}

.confirm_area,
.thanks_area {
  display: none;
}

.form-label input, .form-label textarea, .form-label .wpcf7-form-control-wrap {
  max-width: 100%;
  width: 100%;
}

@media screen and (min-width: 768px) {
  .form-label input, .form-label textarea, .form-label .wpcf7-form-control-wrap {
    max-width: 640px;
    width: 79.4%;
  }
}
.form-label input, .form-label textarea {
  margin-top: 0;
  padding: 0.4375rem 0.59em;
  border-radius: 5px;
  border: 1px solid #C6C6C6;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.25) inset;
  background: #fff;
  font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
  font-style: normal;
  font-weight: 400;
  line-height: 1.5;
  max-width: 100%;
  width: 100%;
}

.form-label textarea#your-address {
  height: 5em;
}

.form-label textarea#your-message {
  height: 15.625em;
}

/*
.form-label input::placeholder,
.form-label textarea::placeholder {
    color: #B9B8B8;
}*/
.form-label {
  margin-bottom: 30px;
  text-align: start;
}

@media screen and (min-width: 768px) {
  .form-label {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    width: 100%;
    margin-inline: auto;
  }
  .form-label.--textarea {
    align-items: flex-start;
  }
  .form-label.--policy {
    align-items: flex-start;
  }
}
.form-item {
  font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
  font-style: normal;
  font-weight: 400;
  line-height: 1.5;
  width: 100%;
  max-width: 100%;
  margin-bottom: 5px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.form-item.--policy {
  flex-direction: column;
  gap: 8px;
}

@media screen and (min-width: 768px) {
  .form-item {
    max-width: 260px;
    margin-bottom: 0;
    margin-top: 0.4375rem;
    align-items: flex-start;
  }
  .form-item.--policy {
    max-width: 100%;
    width: auto;
    display: block;
  }
  .form-item.--no-required {
    padding-left: calc(2.875rem + 6px);
  }
}
.form-noted {
  font-size: clamp(0.75rem, 3.7333333333vw, 0.875rem);
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}

.form-required {
  border-radius: 50px;
  background: #00A53D;
  padding: 0 6px;
  line-height: 22px;
  color: #fff;
  font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
  font-style: normal;
  font-weight: 400;
  display: inline-block;
  vertical-align: bottom;
  margin-right: 6px;
  text-align: center;
  width: 2.875rem;
}

.form .form-label.--policy {
  font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.form .form-label.--policy a {
  color: #0037FF;
  text-decoration: none;
}

/***************************************
ボタン
****************************************/
.form-submit {
  margin-top: 20px;
  margin-inline: auto;
  display: flex;
  justify-content: center;
}

.contact-button {
  border-radius: 50px;
  background: linear-gradient(180deg, #00A53D 0%, rgba(98, 120, 106, 0.64) 50%, #00A53D 100%), #00A53D;
  background-size: 100% 200%;
  background-position: top;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.15), 0 2px 2px 0 rgba(0, 0, 0, 0.15);
  border: none;
  display: block;
  max-width: 100%;
  width: 300px;
  line-height: 40px;
  height: 40px;
  color: #fff;
  font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.01em;
  text-align: center;
  transition: background-position 0.3s ease;
  cursor: pointer;
}

.contact-button:hover {
  background-position: bottom;
  opacity: 1;
}

.contact-button.--remove {
  background: linear-gradient(180deg, #f4fcf3 0%, rgba(200, 230, 200, 0.8) 50%, #f4fcf3 100%), #f4fcf3;
  background-size: 100% 200%;
  background-position: top;
  color: #333;
}

.contact-button.--remove:hover {
  background-position: bottom;
}

/* disabled状態 */
.confirm_button:disabled {
  cursor: not-allowed; /* クリック不可感を出す */
}

/***************************************
確認画面
****************************************/
.confirm_area {
  width: 100%;
  margin-inline: auto;
  overflow-x: hidden;
}

.confirm_area .form-item {
  margin-top: 0;
}

.confirm_area .form-label {
  border-top: 1px solid #DFDFDF;
  padding: 10px 0;
  margin-bottom: 0;
  justify-content: flex-start;
}
.confirm_area .form-label.--policy {
  justify-content: center;
}

@media screen and (min-width: 768px) {
  .confirm_area .form-label {
    padding: 20px;
  }
}
.confirm_area .form-label.--policy {
  font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}

@media screen and (min-width: 768px) {
  .confirm_area .form-label.--policy {
    text-align: center;
  }
}
.confirm_area .form-label.--policy .policy-check {
  border-radius: 3px;
  border: 1px solid #C6C6C6;
  background: #FFF;
  box-shadow: 2px 2px 2px 0 rgba(0, 0, 0, 0.25) inset;
  width: 22px;
  height: 22px;
  margin-right: 10px;
  display: inline-block;
  vertical-align: bottom;
  position: relative;
}
.confirm_area .form-label.--policy .policy-check::after {
  background: url(../images/entry/check.svg) no-repeat center;
  background-size: contain;
  content: "";
  height: 24px;
  left: 1px;
  position: absolute;
  top: -2px;
  width: 22px;
}

.confirm_area .form-label.--policy .policy-check.--ng {
  width: 20px;
  height: 20px;
  margin-right: 10px;
  display: inline-block;
  vertical-align: bottom;
  border-radius: 3px;
  border: 1px solid #333;
}
.confirm_area .form-label.--policy .policy-check.--ng::after {
  background: none;
}

.button-wrap {
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 20px;
  width: 100%;
  margin-inline: auto;
}

@media screen and (min-width: 768px) {
  .button-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: auto;
  }
}
/***************************************
完了画面
****************************************/
.p-entry__thanks-page {
  min-height: calc(100vh - 82.8px - 700px);
}

@media screen and (min-width: 768px) {
  .p-entry__thanks-page {
    min-height: calc(100vh - 82.8px - 500px);
  }
}
.p-entry__thanks-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.p-entry__thanks p {
  font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
  font-style: normal;
  font-weight: 400;
  line-height: 1.4;
}

.p-entry__thanks-button {
  margin-top: 30px;
  text-align: center;
  display: flex;
  justify-content: center;
}

@media screen and (min-width: 768px) {
  .p-entry__thanks-button {
    margin-top: 60px;
  }
}
/***************************************
エントリー一覧ボタン
****************************************/
.p-entry {
  width: 100%;
  max-width: 100vw;
  margin: 40px 0 80px;
}

@media screen and (min-width: 768px) {
  .p-entry {
    margin: 80px 0 120px;
  }
}
.p-entry__inner {
  padding: 0 20px;
}

@media screen and (min-width: 768px) {
  .p-entry__inner {
    padding: 0 40px;
  }
}
.p-entry__buttons {
  display: grid;
  grid-template-columns: 1fr;
  justify-content: center;
  gap: 2.5rem;
  max-width: 22.25rem;
  width: 100%;
  margin-inline: auto;
}

@media screen and (min-width: 768px) {
  .p-entry__buttons {
    grid-template-columns: 1fr 1fr 1fr;
    gap: clamp(1.25rem, 3.2786vw, 2.5rem);
    max-width: 100%;
    margin-inline: auto;
  }
}
.p-entry__button {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.9375rem;
  min-height: 6.75rem;
  border-radius: 0.625rem;
  box-shadow: 0px 0.125rem 0.25rem 0px rgba(0, 0, 0, 0.25);
  text-decoration: none;
  overflow: hidden;
  transition: transform 0.4s ease, box-shadow 0.4s ease;
}
.p-entry__button:hover {
  box-shadow: 0px 0.125rem 0.25rem 0px rgba(0, 0, 0, 0);
}

@media screen and (min-width: 768px) {
  .p-entry__button {
    max-width: 22.25rem;
    min-height: clamp(5rem, 8.8524vw, 6.75rem);
    padding: clamp(1.25rem, 2.5409vw, 1.9375rem);
  }
}
.p-entry__button-bg {
  position: absolute;
  top: -40%;
  left: 0;
  width: 180%;
  height: 180%;
  object-fit: cover;
  z-index: 0;
  transition: transform 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.p-entry__button:hover .p-entry__button-bg {
  transform: translateY(-180px);
}

.p-entry__button-text {
  position: relative;
  z-index: 1;
  font-size: clamp(1rem, 5.3333vw, 1.25rem);
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1em;
  width: 100%;
}

@media screen and (min-width: 768px) {
  .p-entry__button-text {
    font-size: clamp(1rem, 1.6393vw, 1.25rem);
  }
}
.p-entry__button--green {
  background-color: #F4FCF3;
}

.p-entry__button--blue {
  background-color: #F3F6FC;
}

.p-entry__button--orange {
  background-color: #FCFAF3;
}

.p-footer {
  background: #0A442C;
  color: #fff;
  padding: 40px 0 80px;
}

@media screen and (min-width: 768px) {
  .p-footer {
    padding: 140px 0 118px;
  }
}
.p-footer__inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 40px;
  margin: 0 auto;
  align-items: center;
  max-width: 930px;
}

@media screen and (min-width: 768px) {
  .p-footer__inner {
    gap: 100px;
  }
}
.p-footer__nav-container {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 16px;
  margin-left: 40px;
}

@media screen and (min-width: 768px) {
  .p-footer__nav-container {
    gap: 50px;
    margin-left: 0;
  }
}
.p-footer__col.--logo {
  max-width: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.p-footer__col.--nav {
  display: flex;
  flex-direction: column;
  height: 100%;
  gap: 16px;
}

@media screen and (min-width: 768px) {
  .p-footer__col.--logo {
    max-width: 180px;
    justify-content: space-between;
  }
}
.p-footer__logo {
  padding: 12px 15px;
  border-radius: 10px;
  background-color: #fff;
}
.p-footer__logo img {
  width: 100%;
  height: auto;
  object-fit: contain;
}

.p-footer__logo-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  margin-bottom: 40px;
  max-width: 180px;
  width: 100%;
}

@media screen and (min-width: 768px) {
  .p-footer__logo-link {
    margin-bottom: 50px;
  }
}
.p-footer__corp {
  font-size: 1rem;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 7px;
}
.p-footer__corp span img {
  object-fit: contain;
  width: 11px;
  height: auto;
}

.p-footer__btns {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  width: 100%;
  margin-top: 8px;
}

@media screen and (min-width: 768px) {
  .p-footer__btns {
    gap: 16px;
  }
}
.p-footer__nav-list {
  padding: 0;
}
.p-footer__nav-list li {
  font-size: clamp(0.75rem, 3.7333333333vw, 0.875rem);
  margin-bottom: 18px;
  letter-spacing: 0.01em;
  color: #fff;
}
.p-footer__nav-list li:last-child {
  margin-bottom: 0;
}
.p-footer__nav-list li .p-footer__nav-title {
  font-weight: 900;
  font-size: clamp(1rem, 4.8vw, 1.125rem);
  font-family: "Lato", sans-serif;
  padding-right: 10px;
  letter-spacing: 0.01em;
}

.p-footer__subnav {
  margin: 8px 0 0 18px;
}
.p-footer__subnav:last-child {
  margin-bottom: 0;
}
.p-footer__subnav li {
  margin: 0;
  padding: 0 0 0 12px;
  font-size: clamp(0.75rem, 3.7333333333vw, 0.875rem);
  position: relative;
}
.p-footer__subnav li::after {
  content: "";
  position: absolute;
  top: calc(50% - 0.5px);
  left: 0;
  width: 8px;
  height: 1px;
  background-color: #fff;
}
.p-footer__subnav li a.--blank {
  display: flex;
  align-items: center;
  gap: 4px;
  color: #fff;
}

/* ヘッダー共通 */
.p-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 15px 56px 15px 10px;
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
}

@media (orientation: landscape) and (max-width: 980px) {
  .p-header {
    padding: 15px 70px 15px 24px;
  }
}
@media screen and (min-width: 768px) {
  .p-header {
    padding: 15px 70px 15px 24px;
  }
}
@media screen and (min-width: 1024px) {
  .p-header {
    padding: 15px 24px;
    background: rgba(255, 255, 255, 0.85);
  }
}
.p-header__logo {
  max-width: 120px;
  width: 100%;
}

@media (min-width: 1280px) {
  .p-header__logo {
    max-width: clamp(200px, 19.140625vw, 245px);
  }
}
.p-header__logo-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
}
.p-header__logo-title img {
  width: 100%;
  max-width: 120px;
  height: auto;
  object-fit: contain;
}
.p-header__logo-title span {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 0.75rem;
  color: #009558;
}

@media (min-width: 1280px) {
  .p-header__logo-title {
    flex-direction: row;
    align-items: flex-end;
    gap: 10px;
  }
  .p-header__logo-title img {
    max-width: clamp(120px, 11.640625vw, 149px);
  }
  .p-header__logo-title span {
    font-size: 0.875rem;
    padding-left: 10px;
    border-left: 1px solid #009558;
  }
}
.p-header__nav-list.--pc {
  display: none;
}

@media screen and (min-width: 1024px) {
  .p-header__nav-list.--pc {
    display: flex;
    align-items: center;
    gap: clamp(20px, 1.953125vw, 25px);
    margin: 0;
    padding: 0;
    list-style: none;
  }
}
@media screen and (min-width: 1440px) {
  .p-header__nav-list.--pc {
    gap: 30px;
  }
}
.p-header__nav-li {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-weight: 900;
  font-family: "Lato", sans-serif;
  letter-spacing: 0.01em;
  color: #444;
  font-size: clamp(0.75rem, 1.1112vw, 1rem);
}

.p-header__nav-li a {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-weight: 900;
  font-family: "Lato", sans-serif;
  letter-spacing: 0.01em;
  color: #444;
  font-size: clamp(0.75rem, 1.1112vw, 1rem);
}

.p-header__nav-li a:hover {
  color: #00A53D;
}

.p-header__nav-li a span {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: normal;
  font-size: 10px;
}

.p-header__nav-parent {
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  font-weight: 900;
  font-family: "Lato", sans-serif;
  letter-spacing: 0.01em;
  color: #444;
  font-size: clamp(0.75rem, 1.1112vw, 1rem);
  transition: all 0.3s;
}

.p-header__nav-parent:hover {
  color: #00A53D;
  transition: all 0.3s;
}

.p-header__nav-parent span {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: normal;
  font-size: 10px;
}

.p-header__button {
  display: flex;
  align-items: center;
  gap: 10px;
}

/***************************************
PC メガメニュー
****************************************/
.header__mega {
  left: -5px;
  top: 100%;
  opacity: 0;
  position: absolute;
  visibility: hidden;
  padding-top: 9.5px;
}

.header__mega-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  background-color: rgba(255, 255, 255, 0.95);
  filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.4));
  width: 120px;
  padding: 20px;
}
.header__mega-list::before {
  content: "";
  position: absolute;
  top: -9px;
  left: 25%;
  width: 9.5px;
  height: 9.5px;
  background-color: rgba(255, 255, 255, 0.95);
  clip-path: polygon(50% 30%, 0% 100%, 100% 100%);
  z-index: 5;
}

.header__mega-li {
  transition: all 0.3s;
}
.header__mega-li a {
  color: #333333;
  display: flex;
  align-items: center;
  flex-direction: row;
  gap: 4px;
  font-style: normal;
  font-weight: 400;
  line-height: 1.75;
  font-size: 0.75rem;
}
.header__mega-li a span svg path {
  fill: #333333;
}
.header__mega-li:hover {
  transition: all 0.3s;
}
.header__mega-li:hover a {
  color: #00A53D;
  opacity: 1;
}
.header__mega-li:hover a span svg path {
  fill: #00A53D;
}

.header__parent {
  position: relative;
}

/* メニューをhoverした時のスタイル */
.header__parent:hover .header__mega {
  opacity: 1;
  visibility: visible;
}

/***************************************
ハンバーガーメニュー
****************************************/
.p-header__burger-btn {
  display: block;
  height: 40px;
  position: relative;
  width: 40px;
  z-index: 9999;
  position: fixed;
  top: 20px;
  right: 10px;
  border-radius: 50%;
  background: #fff;
}

@media screen and (min-width: 768px) {
  .p-header__burger-btn {
    top: 20px;
    right: 20px;
  }
}
@media (orientation: landscape) and (max-width: 980px) {
  .p-header__burger-btn {
    top: 20px;
    right: 20px;
  }
}
@media screen and (min-width: 1024px) {
  .p-header__burger-btn {
    display: none;
  }
}
.p-header__bar {
  background: #009558;
  display: block;
  left: 50%;
  position: absolute;
  transform: translateX(-50%);
  width: 15px;
  height: 2px;
}

@media screen and (min-width: 1024px) {
  .p-header__bar {
    display: none;
  }
}
.p-header__bar.--top {
  top: 14px;
  transition: transform 0.3s;
}

.p-header__bar.--medium {
  top: calc(50% - 1px);
  transition: transform 0.3s;
}

.p-header__bar.--bottom {
  bottom: 14px;
  transition: transform 0.3s;
}

.p-header__burger-btn.close .--top {
  transform: translate(-50%, 7px) rotate(45deg);
  transition: transform 0.3s;
}

.p-header__burger-btn.close .--medium {
  opacity: 0;
}

.p-header__burger-btn.close .--bottom {
  transform: translate(-50%, -3px) rotate(-45deg);
  transition: transform 0.3s;
}

/***************************************
ドロワーメニュー　スマホ
****************************************/
.p-header__nav-list.--sp {
  display: none;
  flex-direction: column;
  position: fixed;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background: #F8FDF9;
  padding: 100px clamp(10px, 5.33vw, 20px) calc(30px + env(safe-area-inset-bottom));
  transition: opacity 0.3s;
  opacity: 0;
  z-index: 9998;
  overflow: scroll;
}
.p-header__nav-list.--sp.fade {
  display: flex;
  opacity: 1;
}

@media screen and (min-width: 1024px) {
  .p-header__nav-list.--sp {
    display: none;
  }
  .p-header__nav-list.--sp.fade {
    display: none;
  }
}
.p-header__menu {
  background-color: #fff;
  padding: 10px 14px 10px 10px;
  margin-bottom: 6px;
}
.p-header__menu:last-child {
  margin-bottom: 0;
}
.p-header__menu a {
  padding-bottom: 10px;
  font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
  font-weight: 700;
}
.p-header__menu a span {
  font-weight: 500;
  padding-left: 0.25em;
}
.p-header__menu.--arrow a {
  display: block;
  width: 100%;
  position: relative;
  margin: 0;
  padding: 0;
}
.p-header__menu.--arrow a::after {
  content: "";
  position: absolute;
  top: calc(50% - 6px);
  right: 0;
  width: 8px;
  height: 12px;
  background: center/contain no-repeat url(../images/sp-menu__arrow.svg);
}

.p-header__menu-title {
  font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
  font-weight: 700;
}
.p-header__menu-title span {
  font-weight: 500;
  padding-left: 0.25em;
}

.p-header__menu-details {
  margin: 0;
  position: relative;
}

.p-header__menu-parent {
  cursor: pointer;
  user-select: none;
  list-style: none;
  background: none;
  border: none;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.p-header__menu-plus {
  width: 19px;
  height: 19px;
  display: block;
  margin-left: auto;
  margin-right: 0;
  padding: 3px;
  position: relative;
}
.p-header__menu-plus span {
  width: 13px;
  height: 1px;
  background-color: #444;
  display: block;
  position: absolute;
  top: calc(50% - 0.5px);
}
.p-header__menu-plus span:last-child {
  transform: rotate(90deg);
}

.p-header__menu-children {
  padding: 10px 0 0 50px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.p-header__menu-children li a {
  font-weight: 500;
  font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
  padding: 0;
  display: block;
}
.p-header__menu-children li a span {
  padding-left: 4px;
}
.p-header__menu-children li a span svg path {
  fill: #333333;
}

.p-header__links {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 32px;
  margin-bottom: 22px;
}
.p-header__links a {
  text-decoration: underline;
  font-size: 10px;
  color: #444;
  font-weight: 500;
}

.p-header__link-blank {
  display: flex;
  align-items: center;
  gap: 7px;
}
.p-header__link-blank span {
  display: flex;
  align-items: center;
}
.p-header__link-blank span svg {
  object-fit: contain;
  width: 11px;
  height: auto;
}

.p-header__cta {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

.p-interview__archive {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  width: fit-content;
  max-width: 15rem;
  margin-inline: auto;
}

@media screen and (min-width: 768px) {
  .p-interview__archive {
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(20px, 2.7777vw, 40px);
    row-gap: clamp(40px, 3.472222vw, 50px);
    max-width: none;
  }
}
.p-interview__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

@media screen and (min-width: 768px) {
  .p-interview__head {
    flex-direction: row;
    justify-content: center;
    gap: 60px;
  }
  .p-interview__message {
    width: calc(100% - 320px - 60px);
  }
}
.p-interview__text {
  font-size: clamp(1.4375rem, 3.125vw, 2rem);
  font-weight: 700;
  line-height: 1.4;
}

.p-interview__main {
  position: relative;
  width: 100%;
  max-width: 290px;
  margin-top: 10px;
}

@media screen and (min-width: 768px) {
  .p-interview__main {
    max-width: 320px;
    margin-top: 0;
  }
}
.p-interview__img-container {
  position: relative;
  width: fit-content;
  margin-inline: auto;
}
.p-interview__img-container::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  display: block;
  max-width: 186px;
  width: 186px;
  max-height: 200px;
  height: 200px;
  background: #fff;
  box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.200000003);
  transform: rotate(10.95deg);
  border-radius: 20px;
}

@media screen and (min-width: 768px) {
  .p-interview__img-container {
    max-width: 320px;
    margin-inline: 0;
  }
  .p-interview__img-container::after {
    max-width: 250px;
    width: 250px;
    max-height: 260px;
    height: 260px;
  }
}
.p-interview__img {
  border-radius: 20px;
  overflow: hidden;
  background-color: #fff;
  box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.200000003);
  max-width: 186px;
  width: 100%;
  max-height: 200px;
  height: 100%;
  position: relative;
  z-index: 3;
}
.p-interview__img img {
  height: auto;
  width: 100%;
  aspect-ratio: 186/200;
  object-fit: cover;
}

@media screen and (min-width: 768px) {
  .p-interview__img {
    max-width: 250px;
    max-height: 260px;
  }
}
.p-interview__tag {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 20px 22px;
  background-color: #fff;
  border-radius: 20px;
  box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.1000000015);
  position: relative;
  z-index: 5;
  margin: -42px 0 0 auto;
  width: fit-content;
}

.p-interview__tag-head {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  width: 100%;
}

.p-interview__name {
  font-size: clamp(1.5rem, 3.125vw, 2.5rem);
  font-family: "Lato", sans-serif;
  font-weight: 700;
  line-height: 1.8;
}

.p-interview__year {
  font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
  font-weight: 500;
  line-height: 1.8;
}

.p-interview__class-container {
  display: flex;
  flex-wrap: wrap;
  gap: 2px;
  align-items: center;
}

.p-interview__class {
  padding: 0px 10px;
  background-color: #cdffc7;
  border-radius: 5px;
  font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
  font-weight: 400;
  line-height: 1.8;
}

.p-interview__section * {
  font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
  font-weight: 400;
  line-height: 2;
  text-align: justify;
}
.p-interview__section h2 {
  line-height: 1.4;
  color: #005934;
  font-size: clamp(1.3125rem, 2.734375vw, 2rem);
  font-weight: 700;
  padding: 10px 0;
  margin-top: 40px;
  text-align: start;
}
.p-interview__section h3 {
  line-height: 1.4;
  font-size: clamp(1.25rem, 2.60417vw, 1.75rem);
  font-weight: 700;
  padding: 10px 0;
  margin-top: 40px;
  text-align: start;
  color: #005934;
}
.p-interview__section h4 {
  line-height: 1.4;
  font-size: clamp(1rem, 2.08333vw, 1.25rem);
  font-weight: 700;
  padding: 10px 0;
  margin-top: 40px;
  text-align: start;
  color: #005934;
}
.p-interview__section h5 {
  line-height: 1.4;
  font-size: clamp(1rem, 1.82292vw, 1.25rem);
  font-weight: 500;
  padding: 10px 0;
  margin-top: 40px;
  text-align: start;
  color: #005934;
}
.p-interview__section p {
  padding: 10px 0;
  line-height: 2;
}
.p-interview__section a {
  text-decoration: underline;
  color: #009558;
  transition: all 0.3s;
}
.p-interview__section a:hover {
  opacity: 0.7;
  transition: all 0.3s;
}
.p-interview__section ul {
  list-style-position: inside;
  padding: 10px 0;
}
.p-interview__section ul li {
  list-style-type: disc;
  list-style-position: inside;
}
.p-interview__section ol {
  list-style-position: inside;
  padding: 10px 0;
}
.p-interview__section ol li {
  list-style-type: decimal;
  list-style-position: inside;
}

.p-mv {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  position: relative;
  min-height: 30vh;
}
.p-mv::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.9);
  z-index: 1;
}
.p-mv.--entry::after {
  background-color: #f4fcf3;
}
.p-mv.--entry.--blue::after {
  background-color: #F3F6FC;
}
.p-mv.--entry.--orange::after {
  background-color: #FCFAF3;
}

@media screen and (min-width: 768px) {
  .p-mv {
    min-height: 500px;
  }
  .p-mv.--entry {
    min-height: 400px;
  }
}
.p-mv__img {
  overflow: hidden;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.p-mv__img.--entry {
  z-index: 2;
}

.p-mv__img img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.p-mv__container {
  position: relative;
  z-index: 2;
  padding-top: 5.4875rem;
  padding-bottom: 1.5em;
  width: 89.5%;
}

.p-mv__title {
  font-size: clamp(1.25rem, 6.934vw, 1.625rem);
  font-weight: 900;
  line-height: 1;
  opacity: 0;
  transform: translateY(40px);
}
.p-mv__title.--entry {
  display: block;
  text-align: center;
  font-size: clamp(1.125rem, 5.33333vw, 1.5rem);
}
.p-mv__title::first-letter {
  color: #009558;
}

@media screen and (min-width: 768px) {
  .p-mv__title {
    font-size: clamp(1.625rem, 6.89655vw, 5rem);
  }
  .p-mv__title.--entry {
    font-size: clamp(1.5rem, 6.89655vw, 4rem);
  }
}
.p-mv__title__ja {
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1;
  margin-top: 6px;
}

@media screen and (min-width: 768px) {
  .p-mv__title__ja {
    font-size: 1rem;
  }
  .p-mv__title__ja.--enrty {
    margin-top: 16px;
  }
}
.p-mv__breadcrumbs {
  margin-top: 17px;
  opacity: 0;
  transform: translateY(40px);
}

@media screen and (min-width: 768px) {
  .p-mv__breadcrumbs {
    margin-top: 40px;
  }
}
.p-page__contents * {
  font-size: clamp(0.875rem, 1.82291vw, 1rem);
  font-weight: 400;
  line-height: 1.6;
  text-align: justify;
}
.p-page__contents h2, .p-page__contents h3, .p-page__contents h4, .p-page__contents h5 {
  color: #008D34;
  font-size: clamp(0.875rem, 1.82291vw, 1rem);
  font-weight: 500;
}
.p-page__contents p {
  padding: 0 0 20px;
  line-height: 1.6;
}
.p-page__contents a {
  text-decoration: underline;
  color: #009558;
  transition: all 0.3s;
}
.p-page__contents a:hover {
  opacity: 0.7;
  transition: all 0.3s;
}
.p-page__contents ul {
  list-style-position: inside;
  padding: 0 0 20px;
}
.p-page__contents ul li {
  list-style-type: disc;
  list-style-position: inside;
}
.p-page__contents ol {
  list-style-position: inside;
  padding: 0 0 20px;
}
.p-page__contents ol li {
  list-style-type: decimal;
  list-style-position: inside;
}

@media screen and (min-width: 768px) {
  .p-page__contents p {
    padding: 0 0 40px;
  }
  .p-page__contents ul {
    padding: 0 0 40px;
  }
  .p-page__contents ol {
    padding: 0 0 40px;
  }
}
.p-recruit__head {
  background-color: #f4fcf3;
  padding: 40px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
}

@media screen and (min-width: 768px) {
  .p-recruit__head {
    flex-direction: row;
    justify-content: center;
    padding: clamp(40px, 5vw, 60px) clamp(20px, 3.3333333vw, 40px);
    gap: clamp(20px, 3.3333333vw, 40px);
  }
}
.p-recruit__img {
  width: 100%;
  border-radius: 10px;
  overflow: hidden;
}
.p-recruit__img img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

@media screen and (min-width: 768px) {
  .p-recruit__img {
    max-width: 480px;
  }
}
.p-recruit__textarea {
  width: 100%;
}

.p-recruit__head-about {
  padding: 10px;
  margin-top: 10px;
  display: flex;
  flex-wrap: wrap;
  column-gap: 20px;
  row-gap: 10px;
  align-items: center;
}
.p-recruit__head-about span {
  font-size: clamp(1.125rem, 2.708333vw, 1.3rem);
}

.p-recruit__head-list {
  padding: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.p-recruit__head-list dt, .p-recruit__head-list dd {
  font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
}

.p-recruit__tags {
  margin-top: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.p-recruit__tags li a {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 4px 10px;
  background-color: #F1A72F;
  border-radius: 50px;
  font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
  color: #fff;
}

.p-recruit__buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin-top: 40px;
}

@media screen and (min-width: 768px) {
  .p-recruit__buttons {
    margin-top: 60px;
  }
}
.p-recruit__buttons__row {
  display: flex;
  gap: clamp(5px, 2.666vw, 10px);
  margin-top: 60px;
  max-width: 500px;
  margin-inline: auto;
}

.p-recruit__contents {
  margin-top: 40px;
}

@media screen and (min-width: 768px) {
  .p-recruit__contents {
    margin-top: 60px;
  }
}
.p-recruit__card {
  width: 100%;
}
.p-recruit__card.--first {
  margin-top: 20px;
}

@media screen and (min-width: 768px) {
  .p-recruit__card.--first {
    margin-top: 40px;
  }
}
.p-recruit__card-title {
  background-color: #00A53D;
  padding: 5px;
  text-align: center;
  font-size: clamp(1.125rem, 5.333vw, 1.5rem);
  color: #fff;
  font-weight: 500;
  line-height: 1.8;
}

@media screen and (min-width: 768px) {
  .p-recruit__card-title {
    font-size: clamp(1.125rem, 2.60417vw, 1.5rem);
  }
}
.p-recruit__card-title.--orange {
  background-color: #F1A72F;
}

.p-recruit__card-text {
  padding: 20px 10px;
  background-color: #f4fcf3;
}
.p-recruit__card-text * {
  font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
  line-height: 1.6;
}
.p-recruit__card-text p {
  padding: 5px;
}
.p-recruit__card-text a {
  text-decoration: underline;
  color: #009558;
  transition: all 0.3s;
}
.p-recruit__card-text a:hover {
  opacity: 0.7;
  transition: all 0.3s;
}
.p-recruit__card-text ul {
  list-style-position: inside;
  padding: 10px 0;
}
.p-recruit__card-text ul li {
  list-style-position: inside;
  list-style-type: disc;
}
.p-recruit__card-text ol {
  list-style-position: inside;
  padding: 5px 0;
}
.p-recruit__card-text ol li {
  list-style-position: inside;
  list-style-type: decimal;
}

.p-recruit__card-text.--orange {
  background-color: #fff8ec;
}

.p-schedule {
  margin-top: 60px;
}
.p-schedule:first-child {
  margin-top: 0;
}
.p-schedule .p-schedule__title {
  margin-top: 0;
}

.p-schedule__textarea {
  margin-top: 10px;
}
.p-schedule__textarea.--center {
  text-align: center;
}
.p-schedule__textarea.--note {
  margin-top: 40px;
}

@media screen and (min-width: 768px) {
  .p-schedule__textarea {
    margin-top: 20px;
    max-width: 600px;
    width: 100%;
    margin-inline: auto;
  }
}
.p-schedule__list {
  margin-top: 20px;
}

.p-section {
  width: 100%;
  max-width: 100vw;
  margin: 40px 0 80px;
}
.p-section.--green {
  background: #f4fcf3;
  margin: 0;
  padding: 40px 0 120px;
}
.p-section.--blue {
  background: #F3F6FC;
  margin: 0;
  padding: 40px 0 120px;
}
.p-section.--orange {
  background: #FCFAF3;
  margin: 0;
  padding: 40px 0 120px;
}
.p-section.--green.--contact {
  padding: 20px;
}

@media screen and (min-width: 768px) {
  .p-section {
    margin: 80px 0 120px;
  }
  .p-section.--green, .p-section.--blue, .p-section.--orange {
    margin: 0;
    padding: 80px 0 120px;
  }
  .p-section.--green.--contact {
    padding: 60px 40px;
    max-width: 980px;
    margin: 0 auto;
  }
}
.p-section__container {
  padding: 40px 20px;
}
.p-section__container.--first {
  padding: 0 20px;
}

@media screen and (min-width: 768px) {
  .p-section__container {
    padding: 60px 40px;
  }
  .p-section__container.--first {
    padding: 0 40px;
  }
}
.p-section__container.--green {
  background-color: #f4fcf3;
}

@media screen and (min-width: 768px) {
  .p-section__container.--pc-wide {
    position: relative;
    padding: 40px 30px 40px 0;
  }
  .p-section__container.--pc-wide::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    transform: translateX(-50%);
    width: 50vw;
    height: 100%;
    background-color: #f4fcf3;
    z-index: 0;
  }
  .p-section__container.--pc-wide.--reverse {
    padding: 40px 0 40px 30px;
  }
  .p-section__container.--pc-wide.--reverse::after {
    top: 0;
    left: auto;
    right: 0;
    transform: translateX(50%);
  }
}
.p-site {
  padding-top: 4rem;
}

.p-site__title-wrapper {
  text-align: center;
}

/***************************************
メインビュー（MV）
****************************************/
.p-top-mv {
  position: relative;
  z-index: 3;
  width: 100%;
  height: 100vh;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  overflow: hidden;
  /*background: center / cover no-repeat url(../images/mv_sp.jpg);*/
  padding: 70px 20px 46px clamp(20px, 10.666666vw, 40px);
  max-height: 600px;
  /*margin-bottom: 30px;*/
}

@media screen and (min-width: 768px) {
  .p-top-mv {
    max-height: 800px;
    /*background: center / cover no-repeat url(../images/mv.jpg);*/
    padding: 80px 30px 52px clamp(60px, 7.6388vw, 110px);
    /*margin-bottom: 60px;*/
  }
}
.p-top-mv__img {
  width: 100%;
  height: 100%;
  position: absolute;
  background: #fff;
  overflow: hidden;
  z-index: 0;
  top: 0;
  left: 0;
}
.p-top-mv__img video {
  overflow: clip;
  display: block;
  object-fit: cover;
  object-position: center;
  width: 100%;
  height: 100%;
}

.p-top-mv__img.--pc {
  display: none;
}

@media screen and (min-width: 768px) {
  .p-top-mv__img.--pc {
    display: block;
  }
  .p-top-mv__img.--sp {
    display: none;
  }
}
.p-top-mv__text {
  font-size: clamp(1.25rem, 6.93333333vw, 1.625rem);
  font-weight: 700;
  line-height: 1.92;
  color: #fff;
  text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.4);
  position: relative;
  z-index: 5;
}

@media screen and (min-width: 768px) {
  .p-top-mv__text {
    font-size: clamp(2.5rem, 4.166666vw, 3.75rem);
  }
}
/***************************************
SV ひとりひとりの“特性”を、未来の力に。
****************************************/
.p-top-sv {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.p-top-sv__bg {
  position: absolute;
  left: -28.923%;
  top: -21.09375%;
  max-width: clamp(350px, 108.5333vw, 407px);
  width: 100%;
  max-height: clamp(350px, 108.5333vw, 407px);
  height: 100%;
  background: #E8FBEE;
  border-radius: 50%;
  z-index: 0;
  filter: blur(40px);
  opacity: 1;
  transition: opacity 1.5s;
}

@media screen and (min-width: 768px) {
  .p-top-sv__bg {
    left: -4.3966%;
    top: 20px;
    max-width: clamp(407px, 37.4138vw, 434px);
    max-height: clamp(407px, 37.4138vw, 434px);
  }
}
.p-top-sv__content {
  position: relative;
  z-index: 1;
  max-width: 940px;
  padding: 40px 0 80px 0;
}

@media screen and (min-width: 768px) {
  .p-top-sv__content {
    padding: 80px 0 140px 3.1915%;
  }
}
.p-top-sv__title {
  font-size: clamp(1.25rem, 6.9333333vw, 1.625rem);
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 30px;
}

@media screen and (min-width: 768px) {
  .p-top-sv__title {
    font-size: clamp(0.875rem, 4.2666666vw, 2.5rem);
    margin-bottom: 40px;
  }
}
.p-top-sv__lead {
  font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
  line-height: 2;
  margin-bottom: 30px;
  width: 100%;
  margin-left: auto;
  margin-right: 0;
}

@media screen and (min-width: 768px) {
  .p-top-sv__lead {
    font-size: clamp(1rem, 1.551724vw, 1.125rem);
    margin-bottom: 16px;
    max-width: 660px;
  }
}
.p-top-sv__btn {
  display: flex;
  justify-content: flex-end;
}

/***************************************
About Us 会社を知る
Our Workplace 働く環境を知る
****************************************/
.p-top-about {
  padding: 0 0 80px;
  position: relative;
}

.p-top-about.--reverse {
  overflow-x: clip;
}

.p-top-about.--green {
  padding: 30px 0 130px;
}

.p-top-about.--green::after {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  display: block;
  width: 72.8%;
  height: calc(100% - 80px);
  background-color: #F4F9F6;
  z-index: 0;
}

@media screen and (min-width: 768px) {
  .p-top-about.--green {
    padding: 0 0 140px 1.25rem;
  }
  .p-top-about.--green::after {
    display: none;
  }
  .p-top-about.--reverse {
    padding: 0 1.25rem 140px 0;
  }
}
@media screen and (min-width: 1024px) {
  .p-top-about {
    padding: 0 0 140px 0.625rem;
  }
  .p-top-about.--reverse {
    padding: 0 0.625rem 140px 0;
  }
}
.p-top-about__inner {
  display: flex;
  max-width: 993px;
  margin: 0 auto;
  flex-direction: column;
  align-items: stretch;
  gap: 1.25rem;
  position: relative;
  z-index: 3;
}

@media screen and (min-width: 768px) {
  .p-top-about__inner {
    flex-direction: row;
    align-items: flex-end;
    gap: clamp(1.25rem, 5.35714vw, 3.75rem);
    flex-wrap: wrap;
    margin: 0;
  }
  .p-top-about__inner.--reverse {
    flex-direction: row-reverse;
    gap: clamp(1.25rem, 4.31034vw, 3.125rem);
    margin-left: auto;
    margin-right: 0;
  }
}
.p-top-about__img.--sp {
  max-width: 100%;
  margin-bottom: 30px;
}

.p-top-about__img.--pc {
  display: none;
}

@media screen and (min-width: 768px) {
  .p-top-about__img.--sp {
    display: none;
    margin-bottom: 0;
  }
  .p-top-about__img.--pc {
    display: block;
    /*max-width: 353px;
    width: 37.04092%;*/
    max-width: 450px;
    width: 45.34%;
  }
}
.p-top-about__img img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  object-fit: contain;
}

.p-top-about__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

@media screen and (min-width: 768px) {
  .p-top-about__body {
    /*width: 52.4659%;*/
    width: 48.4%;
  }
  .p-top-about__body.--reverse {
    width: calc(54.66% - clamp(1.25rem, 4.31034vw, 3.125rem));
  }
}
.p-top-about__title,
.p-top-about__lead {
  margin-bottom: 30px;
}

@media screen and (min-width: 768px) {
  .p-top-about__title,
  .p-top-about__lead {
    margin-bottom: 40px;
  }
}
.p-top-about__btns {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  max-width: 390px;
  width: 100%;
  margin-inline: auto;
}

@media screen and (min-width: 768px) {
  .p-top-about__btns {
    justify-content: flex-start;
    margin-inline: 0;
    max-width: 100%;
  }
}
@media screen and (min-width: 1024px) {
  .p-top-about__btns {
    gap: 30px;
  }
}
/***************************************
数字で見る当社 Work Style
****************************************/
.p-top-numbers {
  background: #004D2D;
  padding: 30px 0;
  margin-bottom: 80px;
  position: relative;
  z-index: 2;
}

@media screen and (min-width: 768px) {
  .p-top-numbers {
    background: transparent;
    padding: 0;
    margin-bottom: 140px;
  }
  .p-top-numbers__inner {
    background: #004D2D;
    padding: 70px 20px;
  }
}
.p-top-numbers__title {
  margin-bottom: 20px;
}

@media screen and (min-width: 768px) {
  .p-top-numbers__title {
    margin-bottom: 75px;
  }
}
.p-top-numbers__contents {
  width: 100%;
  max-width: 450px;
  margin-inline: auto;
}

@media screen and (min-width: 768px) {
  .p-top-numbers__contents {
    display: flex;
    justify-content: center;
    gap: 10px;
    max-width: 900px;
  }
}
.p-top-numbers__grid {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-column-gap: 7px;
  grid-row-gap: 7px;
}
.p-top-numbers__grid .--01 {
  grid-area: 1/1/2/2;
}
.p-top-numbers__grid .--02 {
  grid-area: 1/2/2/3;
}
.p-top-numbers__grid .--06 {
  grid-area: 2/1/3/3;
}
.p-top-numbers__grid .--04 {
  grid-area: 4/1/5/2;
}
.p-top-numbers__grid .--05 {
  grid-area: 4/2/5/3;
}
.p-top-numbers__grid .--03 {
  grid-area: 3/1/4/3;
}

@media screen and (min-width: 768px) {
  .p-top-numbers__grid {
    width: calc(50.8% - 16px);
    grid-template-rows: repeat(3, 1fr);
    grid-row-gap: 10px;
    grid-column-gap: 10px;
  }
  .p-top-numbers__grid .--01 {
    grid-area: 1/1/2/2;
  }
  .p-top-numbers__grid .--02 {
    grid-area: 1/2/2/3;
  }
  .p-top-numbers__grid .--03 {
    grid-area: 2/1/3/3;
  }
  .p-top-numbers__grid .--04 {
    grid-area: 3/1/4/2;
  }
  .p-top-numbers__grid .--05 {
    grid-area: 3/2/4/3;
  }
}
.p-top-numbers__item {
  background: #fff;
  color: #004D2D;
  border-radius: 2px;
  padding: clamp(16px, 2.34375vw, 24px) clamp(10px, 1.5625vw, 16px);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  min-height: 110px;
}

.p-top-numbers__label {
  font-size: clamp(0.75rem, 1.7777vw, 1rem);
  font-weight: 700;
}

.p-top-numbers__label.--ratio {
  text-align: start;
  width: 100%;
  margin-top: -20px;
}

.p-top-numbers__value {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  font-size: clamp(0.75rem, 1.7777vw, 1rem);
  font-weight: 700;
  line-height: 1;
  margin-top: 5px;
}

.p-top-numbers__value.--gender {
  margin-top: 0;
}

.p-top-numbers__num {
  font-size: clamp(3rem, 7.1111vw, 4rem);
  letter-spacing: 0.01em;
  font-family: "Oswald", sans-serif;
}

.p-top-numbers__note {
  font-size: 0.625rem;
  font-weight: 500;
  line-height: 1;
  margin-top: 3px;
}

.p-top-numbers__gender-box {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(10px, 3.3333333vw, 30px);
}

.p-top-numbers__gender {
  display: flex;
  gap: 5px;
  margin-top: 5px;
  width: 100%;
}
.p-top-numbers__gender .p-top-numbers__value {
  margin-top: 0;
}

@media screen and (min-width: 768px) {
  .p-top-numbers__gender {
    width: auto;
    align-items: flex-end;
    gap: clamp(3px, 1.020408vw, 10px);
  }
}
.p-top-numbers__gender-icon {
  display: flex;
  align-items: center;
  gap: 2px;
  width: 48%;
}
.p-top-numbers__gender-icon img {
  width: 100%;
  height: auto;
  object-fit: contain;
}
.p-top-numbers__gender-icon .p-top-numbers__label {
  display: flex;
  flex-direction: column;
  gap: 1em;
  justify-content: center;
}

@media screen and (min-width: 768px) {
  .p-top-numbers__gender-icon {
    width: clamp(20px, 3.7777vw, 34px);
    flex-direction: column;
    align-items: center;
  }
  .p-top-numbers__gender-icon .p-top-numbers__label {
    flex-direction: row;
    gap: 0;
  }
}
.p-top-numbers__age-ratio-container {
  width: 100%;
}

@property --mask-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}
.p-top-numbers__age-ratio-img {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  width: 100%;
}

.p-top-numbers__age-ratio-img img {
  object-fit: contain;
  width: 60%;
  height: auto;
  --mask-angle: 0deg;
  -webkit-mask-image: conic-gradient(#000 0deg, #000 var(--mask-angle), transparent var(--mask-angle), transparent 360deg);
  mask-image: conic-gradient(#000 0deg, #000 var(--mask-angle), transparent var(--mask-angle), transparent 360deg);
  opacity: 0;
}

.is-graph-animate img {
  animation: reveal 0.5s ease-in forwards;
}

@media (min-width: 490px) {
  .p-top-numbers__age-ratio-img img {
    width: 63%;
  }
}
@media screen and (min-width: 768px) {
  .p-top-numbers__age-ratio-img img {
    max-width: 300px;
    width: 73%;
  }
}
@media (min-width: 980px) {
  .p-top-numbers__age-ratio-img img {
    width: 67.873%;
  }
}
@keyframes reveal {
  0% {
    --mask-angle: 0deg; /* 角度は0 */
    opacity: 0;
  }
  100% {
    --mask-angle: 360deg; /* 角度を360まで増やす */
    opacity: 1;
  }
}
.p-top-numbers__age-ratio {
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  background: #fff;
  color: #004D2D;
  border-radius: 2px;
  width: 100%;
  padding: clamp(32px, 16vw, 72px) clamp(10px, 3.55555vw, 16px) clamp(16px, 5.333vw, 24px);
  text-align: center;
}

.p-top-numbers__age-ratio.--pc {
  display: none;
}

@media screen and (min-width: 768px) {
  .p-top-numbers__age-ratio.--06 {
    display: none;
  }
  .p-top-numbers__age-ratio.--pc {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 18px;
    width: 49.1776%;
    padding: clamp(16px, 2.6666vw, 24px) clamp(10px, 1.77777vw, 16px);
  }
}
/*円グラフ*/
.js-fadein {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s cubic-bezier(0.4, 0, 0.2, 1), transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
}

.js-fadein.is-visible {
  opacity: 1;
  transform: none;
}

.p-top-numbers__age-ratio-labels {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.age-label {
  position: absolute;
  color: #004D2D;
  font-weight: 700;
  text-align: start;
  font-size: clamp(0.75rem, 4.08163vw, 1.25rem);
  line-height: 1;
}

@media (min-width: 490px) {
  .age-label {
    font-size: 1.25rem;
  }
}
@media screen and (min-width: 768px) {
  .age-label {
    font-size: clamp(1rem, 2.66666vw, 1.5rem);
  }
}
.age-20s {
  right: 8%;
  bottom: 33%;
}

.age-30s {
  left: 48%;
  bottom: 15%;
}

.age-40s {
  left: 10%;
  bottom: 35%;
}

.age-50s {
  left: 15%;
  bottom: 60%;
}

.age-60s {
  left: 40%;
  bottom: 76%;
}

@media (min-width: 490px) {
  .age-20s {
    right: 8%;
    bottom: 33%;
  }
  .age-30s {
    left: 46%;
    bottom: 15%;
  }
  .age-40s {
    left: 7%;
    bottom: 35%;
  }
  .age-50s {
    left: 15%;
    bottom: 63%;
  }
  .age-60s {
    left: 38%;
    bottom: 78%;
  }
}
@media screen and (min-width: 768px) {
  .age-20s {
    right: 5%;
    bottom: 22%;
  }
  .age-30s {
    left: 12%;
    bottom: 5%;
  }
  .age-40s {
    left: 2%;
    bottom: 35%;
  }
  .age-50s {
    left: 19%;
    bottom: 54%;
  }
  .age-60s {
    left: 50%;
    bottom: 63%;
  }
}
@media (min-width: 930px) {
  .age-20s {
    right: 7%;
    bottom: 24%;
  }
  .age-30s {
    left: 12%;
    bottom: 5%;
  }
  .age-40s {
    left: 3%;
    bottom: 30%;
  }
  .age-50s {
    left: 19%;
    bottom: 56%;
  }
  .age-60s {
    left: 50%;
    bottom: 65%;
  }
}
@media (min-width: 980px) {
  .age-20s {
    right: 5%;
    bottom: 22%;
  }
  .age-30s {
    left: 12%;
    bottom: 5%;
  }
  .age-40s {
    left: 8%;
    bottom: 30%;
  }
  .age-50s {
    left: 19%;
    bottom: 50%;
  }
  .age-60s {
    left: 50%;
    bottom: 65%;
  }
}
/*
.p-top-numbers__line {
	position: absolute;
	background-color: $dark-green;
	width: 21.47px;
	height: 1px;
	transform: rotate(27.76deg);
	bottom: 8px;
	right: -20px;
}*/
.p-top-numbers__age-ratio-labels .p-top-numbers__num {
  font-size: clamp(1rem, 8.16326vw, 2.5rem);
  font-weight: 600;
  line-height: 1;
}

@media (min-width: 490px) {
  .p-top-numbers__age-ratio-labels .p-top-numbers__num {
    font-size: 2.5rem;
  }
}
@media screen and (min-width: 768px) {
  .p-top-numbers__age-ratio-labels .p-top-numbers__num {
    font-size: clamp(1.5rem, 5.3333vw, 3rem);
  }
}
.p-top-numbers__age-ratio-labels .p-top-numbers__member {
  font-size: 10px;
  line-height: 1;
  display: block;
  text-align: center;
}

/***************************************
Interview 人を知る
****************************************/
.p-top-interview {
  position: relative;
  margin-bottom: 80px;
}

@media screen and (min-width: 768px) {
  .p-top-interview {
    margin-bottom: 140px;
  }
}
.p-top-interview__bg {
  display: none;
}

@media screen and (min-width: 768px) {
  .p-top-interview__bg {
    display: block;
    position: absolute;
    right: -6.45833%;
    top: -66.3158%;
    max-width: clamp(407px, 37.4138vw, 434px);
    max-height: clamp(407px, 37.4138vw, 434px);
    width: 100%;
    height: 100%;
    background: #E8FBEE;
    border-radius: 50%;
    z-index: 0;
    filter: blur(40px);
    opacity: 1;
    transition: opacity 1.5s;
    z-index: 0;
  }
}
.p-top-interview__inner {
  margin-inline: auto;
  position: relative;
  width: 100%;
  margin-right: auto;
  margin-left: auto;
}

@media screen and (min-width: 768px) {
  .p-top-interview__inner {
    max-width: 1440px;
    padding-right: 76px;
    padding-left: 76px;
  }
}
@media screen and (min-width: 1024px) {
  .p-top-interview__inner {
    max-width: 1440px;
    padding-right: clamp(120px, 9.722222vw, 140px);
    padding-left: clamp(120px, 9.722222vw, 140px);
  }
}
.p-top-interview__title {
  margin-left: 20px;
  margin-bottom: 30px;
}

@media screen and (min-width: 768px) {
  .p-top-interview__title {
    margin-left: -56px;
    margin-bottom: 40px;
  }
}
@media screen and (min-width: 1024px) {
  .p-top-interview__title {
    margin-left: calc(0px - clamp(56px, 5.27777vw, 76px));
  }
}
.js-mvSlider {
  max-width: 1440px;
}

/* 前へ次への矢印カスタマイズ */
.p-top-interview__inner .swiper-button-prev,
.p-top-interview__inner .swiper-button-next {
  transition: all 0.3s;
  height: 36px;
  width: 36px;
  bottom: -56px;
  top: auto;
  right: 71px;
  left: auto;
}
.p-top-interview__inner .swiper-button-prev .swiper-navigation-icon,
.p-top-interview__inner .swiper-button-next .swiper-navigation-icon {
  display: none;
}

.p-top-interview__inner .swiper-button-next {
  right: 20px;
}

.p-top-interview__inner .swiper-button-prev::after,
.p-top-interview__inner .swiper-button-next::after {
  transition: all 0.3s;
  bottom: 0;
  top: 0;
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  content: "";
  height: 36px;
  margin: auto;
  width: 36px;
  background: center/contain no-repeat url(../images/slide-arrow.svg);
}

.p-top-interview__inner .swiper-button-next::after {
  transform: rotate(180deg);
}

@media screen and (min-width: 768px) {
  .p-top-interview__inner .swiper-button-prev:hover,
  .p-top-interview__inner .swiper-button-next:hover {
    transition: all 0.3s;
    opacity: 0.7;
  }
  .p-top-interview__inner .swiper-button-prev:hover .p-top-interview__inner .swiper-button-prev::after,
  .p-top-interview__inner .swiper-button-next:hover .p-top-interview__inner .swiper-button-next::after {
    transition: all 0.3s;
    opacity: 0.7;
  }
  .p-top-interview__inner .swiper-button-prev {
    left: 20px;
    right: auto;
    bottom: auto;
    top: calc(50% + 36px);
  }
  .p-top-interview__inner .swiper-button-next {
    right: 20px;
    left: auto;
    bottom: auto;
    top: calc(50% + 36px);
  }
}
@media screen and (min-width: 1024px) {
  .p-top-interview__inner .swiper-button-prev {
    left: 64px;
  }
  .p-top-interview__inner .swiper-button-next {
    right: 64px;
  }
}
.p-top-interview__btn {
  display: flex;
  justify-content: center;
  margin-top: 100px;
}

@media screen and (min-width: 768px) {
  .p-top-interview__btn {
    margin-top: 40px;
  }
}
/***************************************
Message
****************************************/
.p-top-message {
  padding: 30px 0;
  background-color: #f4f9f6;
}

@media screen and (min-width: 768px) {
  .p-top-message {
    padding: 100px 0;
  }
}
.p-top-message__inner {
  display: flex;
  flex-direction: column;
}

@media screen and (min-width: 768px) {
  .p-top-message__inner {
    gap: 80px;
    padding: 40px clamp(40px, 8.1967213vw, 100px);
    background-color: #fff;
  }
}
/***************************************
Recruit 採用情報
****************************************/
.p-top-recruit {
  padding: 80px 0 80px;
}

@media screen and (min-width: 768px) {
  .p-top-recruit {
    padding: 0 0 140px;
  }
}
@media screen and (min-width: 768px) {
  .p-top-recruit__title {
    padding-top: 100px;
  }
}
.js-content {
  display: none;
}
.js-content.--active {
  display: block;
}

.p-top-recruit .l-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 1rem;
}

.p-top-recruit__tabs {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-bottom: 40px;
  margin-top: 30px;
  flex-wrap: wrap;
  max-width: 368px;
  margin-inline: auto;
}

@media screen and (min-width: 768px) {
  .p-top-recruit__tabs {
    max-width: 100%;
    margin-top: 70px;
    margin-bottom: 70px;
    gap: 14px;
  }
}
.p-top-recruit__tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 2px;
  line-height: 40px;
  max-width: 180px;
  width: calc(50% - 4px);
  font-size: clamp(0.75rem, 4.2666666667vw, 1rem);
  border-radius: 10px;
  background: #009558;
  color: #fff;
  cursor: pointer;
  font-weight: 700;
  text-align: center;
}

@media screen and (min-width: 768px) {
  .p-top-recruit__tab {
    width: calc((100% - 42px) / 4);
    font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
  }
}
.p-top-recruit__tab.--active {
  background: #004D2D;
  color: #fff;
}

.p-top-recruit__grid {
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
  gap: 40px;
  width: fit-content;
  margin-inline: auto;
}

@media screen and (min-width: 768px) {
  .p-top-recruit__grid {
    grid-template-columns: 1fr 1fr;
    gap: clamp(20px, 2.7777vw, 40px);
    row-gap: clamp(40px, 3.472222vw, 50px);
  }
}
@media screen and (min-width: 1024px) {
  .p-top-recruit__grid {
    grid-template-columns: 1fr 1fr 1fr;
  }
}
/***************************************
PC時横並び、SP時縦並び
****************************************/
.p-workspace__container {
  margin-top: 40px;
}
.p-workspace__container.--first {
  margin-top: 0;
}

@media screen and (min-width: 768px) {
  .p-workspace__container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    justify-content: center;
    gap: clamp(20px, 1.953vw, 40px);
    margin-top: 80px;
  }
  .p-workspace__container.--reverse {
    flex-direction: row-reverse;
  }
  .p-workspace__container.--first {
    margin-top: 0;
  }
}
.p-workspace__pc-textarea {
  position: relative;
  z-index: 3;
}

.p-workspace__text {
  margin-top: 13px;
}

@media screen and (min-width: 768px) {
  .p-workspace__text {
    margin-top: 20px;
  }
}
.p-workspace__pc-img {
  display: none;
  position: relative;
  z-index: 3;
}

.p-workspace__img {
  margin-top: 20px;
  border-radius: 10px;
  overflow: hidden;
}
.p-workspace__img img {
  width: 100%;
  height: auto;
  aspect-ratio: 110/63;
  object-fit: cover;
}

@media screen and (min-width: 768px) {
  .p-workspace__pc-img {
    display: block;
  }
  .p-workspace__pc-img.--reverse {
    order: 2;
  }
  .p-workspace__img {
    margin-top: 28px;
  }
  .p-workspace__img.--sp {
    display: none;
  }
}
.p-workspace__list {
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

@media screen and (min-width: 768px) {
  .p-workspace__list {
    margin-top: 28px;
    gap: 16px;
  }
}
.p-workspace__list-item {
  font-size: clamp(0.75rem, 3.7333333333vw, 0.875rem);
  line-height: 1.4;
  padding-left: 1.25em;
  position: relative;
}
.p-workspace__list-item::before {
  content: "◇";
  position: absolute;
  left: 0;
  top: 0;
  color: #333333;
}

@media screen and (min-width: 768px) {
  .p-workspace__list-item {
    font-size: clamp(0.75rem, 1.5625vw, 1rem);
  }
}
/***************************************
放課後等デイサービスとは…
****************************************/
.p-workspace__about {
  padding: 10px;
  background-color: #fff;
  box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.25);
  margin-top: 30px;
}

.p-workspace__about-title {
  position: relative;
  font-size: clamp(0.75rem, 3.7333333333vw, 0.875rem);
  font-weight: 400;
  line-height: 1.8;
  padding-left: 26px;
}
.p-workspace__about-title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  color: #333333;
  display: block;
  width: 24px;
  height: 22px;
  background: center/contain no-repeat url(../images/bookmark-icon.svg);
}

@media screen and (min-width: 768px) {
  .p-workspace__about-title {
    font-size: clamp(0.75rem, 1.5625vw, 1rem);
  }
}
.p-workspace__about-text {
  font-size: clamp(0.75rem, 3.7333333333vw, 0.875rem);
  line-height: 1.8;
}

@media screen and (min-width: 768px) {
  .p-workspace__about-text {
    font-size: clamp(0.75rem, 1.5625vw, 1rem);
  }
}
/***************************************
ワークスペースページ リンクボタン群
- 1日の働き方（アウトラインボタン）
- 募集要項を見る / トップに戻る（塗りつぶしボタン）
****************************************/
.p-workspace__links {
  margin-top: 40px;
  margin-inline: auto;
}

@media screen and (min-width: 768px) {
  .p-workspace__links {
    margin-top: 80px;
    max-width: 600px;
    width: 100%;
  }
}
.p-workspace__links-row {
  display: flex;
  gap: clamp(5px, 2.666vw, 10px);
  margin-top: 20px;
}
.p-workspace__links-row.--entry, .p-workspace__links-row.--contact {
  margin-top: 32px;
  padding-bottom: 120px;
}

@media screen and (min-width: 768px) {
  .p-workspace__links-row.--entry {
    margin-top: 40px;
    padding-bottom: 0;
  }
  .p-workspace__links-row.--contact {
    margin-top: 40px;
  }
}
/***************************************
404
****************************************/
.page-404 {
  min-height: calc(100vh - 5.4875rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.page-404 * {
  font-weight: normal;
  font-stretch: normal;
  font-style: normal;
  line-height: 1.78;
}
.page-404 h1 {
  font-size: clamp(1.25rem, 2.449vw, 1.5rem);
}
.page-404 p, .page-404 a {
  font-size: clamp(0.875rem, 1.633vw, 1rem);
}
.page-404 a {
  color: #009558;
  text-decoration: underline;
  transition: all 0.3s;
}
.page-404 a:hover {
  transition: all 0.3s;
  opacity: 0.7;
}

.c-breadcrumbs ul {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

.c-breadcrumbs ul li {
  font-size: clamp(0.75rem, 3.7333333333vw, 0.875rem);
  font-weight: 400;
  line-height: 1.8;
  color: #000;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.c-breadcrumbs ul li:not(:first-child)::before {
  content: "/";
  margin: 0 1em;
  color: #009558;
}
.c-breadcrumbs ul li:last-child {
  color: #757373;
}

.c-breadcrumbs ul li span {
  margin-right: 0.25em;
}

.c-breadcrumbs__category-link {
  margin-right: 5px;
}
.c-breadcrumbs__category-link::after {
  content: ",";
}
.c-breadcrumbs__category-link:last-child::after {
  content: "";
}
.c-breadcrumbs__category-link:last-child {
  margin-right: 0;
}

.c-button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  background: #009558;
  color: #fff;
  border-radius: 50px;
  padding: 0.57142em 0.85em;
  min-height: 40px;
  min-width: clamp(130px, 40vw, 150px);
  font-size: clamp(0.75rem, 3.7333333333vw, 0.875rem);
  text-decoration: none;
  cursor: pointer;
  overflow: hidden;
}

.c-button.--card {
  min-width: clamp(100px, 15.625vw, 120px);
  width: 100%;
}

.c-button.--border {
  min-width: 100%;
  background: #fff;
  border: 2px solid #009558;
  color: #333;
  font-weight: 700;
  padding: 0.2em 0.85em;
}
.c-button.--border span svg, .c-button.--border path {
  fill: #333;
}

.c-button.--icon {
  min-width: 0;
  width: 100%;
  background: #009558;
  color: #fff;
  font-weight: 700;
  padding: 0.57142em 0.4em;
}
.c-button.--icon span svg, .c-button.--icon path {
  fill: #fff;
}

@media screen and (min-width: 768px) {
  .c-button {
    min-width: clamp(160px, 16.129vw, 200px);
    padding: 1em 0.85em;
  }
  .c-button.--card {
    padding: 0.57142em 0.85em;
    min-width: clamp(100px, 15.625vw, 120px);
  }
  .c-button.--border {
    border: 2px solid #009558;
    padding: 0.4em 0.85em;
  }
  .c-button.--border:hover {
    background: #009558;
    border: 2px solid #009558;
    color: #fff;
  }
  .c-button.--border:hover span svg, .c-button.--border:hover path {
    fill: #fff;
  }
  .c-button.--icon {
    padding: 0.57142em 0.85em;
    border: 2px solid #009558;
  }
  .c-button.--icon:hover {
    background: #fff;
    border: 2px solid #009558;
    color: #009558;
  }
  .c-button.--icon:hover span svg, .c-button.--icon:hover path {
    fill: #009558;
  }
}
@media screen and (min-width: 1024px) {
  .c-button.--card {
    min-width: clamp(100px, 9.6774193vw, 120px);
  }
}
.c-button.--light {
  background: #00A53D;
}

.c-button.--icon.--light {
  background: #00A53D;
}

@media screen and (min-width: 768px) {
  .c-button.--icon.--light {
    border: 2px solid #00A53D;
  }
  .c-button.--icon.--light:hover {
    background: #fff;
    border: 2px solid #00A53D;
    color: #00A53D;
  }
  .c-button.--icon.--light:hover span svg, .c-button.--icon.--light:hover path {
    fill: #00A53D;
  }
}
.c-button.--light-gradient {
  background-image: radial-gradient(#00D335, #00AD23);
}

.c-button.--gradient {
  background-image: radial-gradient(#00be3f, #009558);
}

.c-button.--light-gradient,
.c-button.--gradient {
  position: relative;
  max-width: 150px;
  width: 100%;
  font-size: 0.875rem;
  padding-inline: 14px;
}
.c-button.--light-gradient::after,
.c-button.--gradient::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: calc(100% - 4px);
  height: calc(100% - 4px);
  border-radius: 50px;
  border: 1px solid #fff;
}
.c-button.--light-gradient.--sp,
.c-button.--gradient.--sp {
  font-size: 0.75rem;
  max-width: 130px;
}
.c-button.--light-gradient.--header,
.c-button.--gradient.--header {
  font-size: 0.75rem;
}

@media (min-width: 375px) {
  .c-button.--light-gradient.--sp,
  .c-button.--gradient.--sp {
    font-size: 0.875rem;
    max-width: 150px;
  }
}
@media screen and (min-width: 768px) {
  .c-button.--light-gradient,
  .c-button.--gradient {
    padding: 0.57142em 0.85em;
  }
  .c-button.--light-gradient.--header,
  .c-button.--gradient.--header {
    padding: 0.57142em 1.7em;
  }
}
@media screen and (min-width: 1024px) {
  .c-button.--light-gradient,
  .c-button.--gradient {
    max-width: 180px;
    min-height: 50px;
    padding-inline: 20px;
    font-size: 1rem;
  }
  .c-button.--light-gradient.--sp,
  .c-button.--gradient.--sp {
    display: none;
  }
  .c-button.--light-gradient.--header,
  .c-button.--gradient.--header {
    max-width: 180px;
    min-width: clamp(145px, 14.16vw, 180px);
    padding-inline: 20px;
    font-size: clamp(0.75rem, 1.1112vw, 1rem);
  }
}
.c-button__text {
  margin-right: 0.8em;
  font-weight: 400;
}
.c-button__text.--border {
  gap: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-inline: auto;
}
.c-button__text.--icon {
  gap: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-inline: auto;
}
.c-button__text.--icon svg.--book {
  width: clamp(16px, 5.6vw, 21px);
  height: auto;
}
.c-button__text.--icon svg.--home {
  width: clamp(14px, 4.533vw, 17px);
  height: auto;
}

.c-button__icon {
  display: flex;
  align-items: center;
}

.c-button__icon svg {
  width: 1.2em;
  height: 0.564em;
  display: block;
  transition: transform 0.2s;
}

.c-button.--light-gradient .c-button__icon svg,
.c-button.--gradient .c-button__icon svg {
  width: 15.56px;
  height: auto;
}

.c-button:hover {
  opacity: 0.7;
}

.c-button:hover .c-button__icon svg {
  transition: transform 0.2s;
  animation: arw-move-x 0.5s cubic-bezier(0.22, 0.61, 0.36, 1);
  opacity: 1;
}

@keyframes arw-move-x {
  0% {
    opacity: 1;
    transform: translateX(0);
  }
  50% {
    opacity: 0;
    transform: translateX(110%);
  }
  50.1% {
    opacity: 0;
    transform: translateX(-55%);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
.c-interview-card {
  width: 100%;
  max-width: 350px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

@media screen and (min-width: 768px) {
  .c-interview-card {
    max-width: 240px;
  }
}
.c-interview-card__img {
  width: 100%;
  border-radius: 10px;
  overflow: hidden;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.c-interview-card__img img {
  height: auto;
  width: 100%;
  object-fit: cover;
  transition: all 0.3s;
  aspect-ratio: 240/260;
}

.c-interview-card:hover .c-interview-card__img img {
  transform: scale(1.1);
  transition: all 0.3s;
}

.c-interview-card__message {
  position: absolute;
  bottom: 0px;
  left: 0;
  display: flex;
  align-items: end;
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 50%, rgba(0, 0, 0, 0.4799999893) 100%);
  font-size: clamp(0.75rem, 3.7333333333vw, 0.875rem);
  font-weight: 500;
  line-height: 1.8;
  color: #fff;
  padding-inline: 12px;
  padding-bottom: 4px;
}

@media screen and (min-width: 768px) {
  .c-interview-card__message {
    font-size: clamp(0.75rem, 1.09375vw, 0.875rem);
  }
}
.c-interview-card__text {
  padding-left: 10px;
  width: 100%;
}

.c-interview-card__container .c-interview-card__text {
  padding-left: 0;
  width: auto;
  min-width: 79px;
}

.c-interview-card__name {
  font-size: clamp(1rem, 4.8vw, 1.125rem);
  font-weight: 400;
  line-height: 1.8;
}

.c-interview-card__year {
  font-size: clamp(0.75rem, 3.7333333333vw, 0.875rem);
  font-weight: 400;
  line-height: 1.8;
}

.c-interview-card__container {
  display: flex;
  gap: 4px;
  justify-content: space-between;
  padding-inline: 10px;
  width: 100%;
}

.c-interview-card__class-container {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 8px;
}

.c-interview-card__class {
  padding: 0px 5px;
  background-color: #cdffc7;
  border-radius: 5px;
  font-size: clamp(0.75rem, 3.7333333333vw, 0.875rem);
  font-weight: 400;
  line-height: 1.8;
}

.c-main-text {
  font-size: clamp(0.875rem, 4.2666666667vw, 1rem);
  font-weight: 400;
  line-height: 1.8;
}
.c-main-text.--small {
  font-size: clamp(0.75rem, 3.7333333333vw, 0.875rem);
}

@media screen and (min-width: 768px) {
  .c-main-text.--pc-small {
    font-size: clamp(0.75rem, 1.5625vw, 1rem);
  }
}
.c-main-title {
  font-size: clamp(1.25rem, 9.6vw, 2.25rem);
  font-family: "Lato", sans-serif;
  font-weight: 900;
  letter-spacing: 0.01em;
  line-height: 1;
}
.c-main-title::first-letter {
  color: #009558;
}

@media screen and (min-width: 768px) {
  .c-main-title {
    font-size: clamp(1.625rem, 6.89655vw, 5rem);
  }
}
.c-main-title__ja {
  font-size: 0.75rem;
  font-weight: 400;
  line-height: 1;
  margin-top: 6px;
  letter-spacing: 0.06em;
}

@media screen and (min-width: 768px) {
  .c-main-title__ja {
    font-size: 1rem;
  }
}
.c-main-title.--white {
  color: #fff;
}
.c-main-title.--white::first-letter {
  color: #009558;
}

@media screen and (min-width: 768px) {
  .c-main-title.--pc-center {
    text-align: center;
  }
}
/***************************************
セクションタイトル　ボーダー有り
****************************************/
.c-main-title.--border {
  font-size: clamp(1.375rem, 5.333vw, 1.75rem);
  font-weight: 700;
  line-height: 1.4;
  padding-bottom: 16px;
  border-bottom: 1px solid #333333;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.13em;
}
.c-main-title.--border::first-letter {
  color: inherit;
}

@media screen and (min-width: 768px) {
  .c-main-title.--border {
    font-size: clamp(1.375rem, 2.8645vw, 1.75rem);
  }
}
.c-main-title.--border.--small {
  font-size: clamp(1.125rem, 5.333vw, 1.5rem);
}

@media screen and (min-width: 768px) {
  .c-main-title.--border.--small {
    font-size: clamp(1.25rem, 2.8645vw, 1.5rem);
  }
}
/***************************************
セクションタイトル　サブ
****************************************/
.c-main-title.--sub {
  font-size: clamp(1rem, 4.267vw, 1.25rem);
  font-weight: 500;
  line-height: 1.4;
  margin-top: 20px;
  font-family: "Noto Sans JP", sans-serif;
  letter-spacing: 0.13em;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
}
.c-main-title.--sub::first-letter {
  color: inherit;
}
.c-main-title.--sub.--schedule {
  margin-top: 0;
}

@media screen and (min-width: 768px) {
  .c-main-title.--sub {
    margin-top: 40px;
    font-size: clamp(1rem, 2.0833vw, 1.25rem);
  }
}
/***************************************
センター寄席 spのみ
****************************************/
.c-main-title.--center {
  text-align: center;
}

@media screen and (min-width: 768px) {
  .c-main-title.--center {
    text-align: start;
  }
}
/***************************************
セクションタイトル　カードタイトル
****************************************/
.c-main-title.--card {
  font-size: clamp(1.375rem, 5.333vw, 1.75rem);
  font-weight: 700;
  line-height: 1.4;
  font-family: "Noto Sans JP", sans-serif;
  text-align: center;
  letter-spacing: 0.13em;
}
.c-main-title.--card::first-letter {
  color: inherit;
}
.c-main-title.--card.--en {
  font-family: "Lato", sans-serif;
  color: #009558;
  font-weight: 900;
}

@media screen and (min-width: 768px) {
  .c-main-title.--card {
    font-size: clamp(1.375rem, 2.8645vw, 1.75rem);
  }
}
.c-message-column {
  display: flex;
  flex-direction: column;
  gap: 30px;
  align-items: center;
  margin-top: 40px;
}
.c-message-column:last-child {
  margin-top: 70px;
}
.c-message-column.--first:last-child {
  margin-top: 30px;
}

@media screen and (min-width: 768px) {
  .c-message-column {
    flex-direction: row;
    gap: clamp(40px, 5.12295vw, 62.5px);
    margin-top: 0;
  }
  .c-message-column:last-child {
    margin-top: 0;
  }
  .c-message-column.--first:last-child {
    margin-top: 30px;
    align-items: flex-start;
  }
}
.c-message-column__img {
  max-width: 240px;
  width: 100%;
  max-height: 260px;
  aspect-ratio: 240/260;
  height: 100%;
  border-radius: 10px;
  overflow: hidden;
  flex: 0 0 auto;
  margin-bottom: 0.75rem;
}
.c-message-column__img.--shadow {
  box-shadow: 4px 4px 4px 0px rgba(0, 86, 29, 0.25);
}
.c-message-column__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media screen and (min-width: 768px) {
  .c-message-column__img {
    max-width: 265px;
    width: 27.6042%;
    max-height: 265px;
    aspect-ratio: 1/1;
    height: auto;
    margin-bottom: 0;
  }
}
.c-message-column__lead {
  margin-bottom: 30px;
  line-height: 1;
  text-align: center;
  font-weight: 700;
}

@media screen and (min-width: 768px) {
  .c-message-column__lead {
    text-align: left;
  }
}
.c-message-column__textarea {
  margin-bottom: 30px;
}

.c-message-column__name {
  text-align: right;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}
.c-message-column__name img {
  object-fit: contain;
  height: auto;
  width: 100%;
  max-width: 176px;
}

.c-pagetop {
  position: fixed;
  bottom: calc(42px + env(safe-area-inset-bottom));
  right: 20px;
  z-index: 99;
  cursor: pointer;
  transition: all 0.3s;
  width: 70px;
  height: 70px;
  background-color: #009558;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 0.875rem;
  font-family: "Lato", sans-serif;
  color: #fff;
  line-height: 1;
  text-align: center;
}
.c-pagetop:hover {
  opacity: 0.7;
}

.c-recruit__card {
  background: #F7F7F7;
  border-radius: 5px;
  padding: 24px 20px;
  display: flex;
  flex-direction: column;
  max-width: 333px;
}

.c-recruit__head {
  display: flex;
  gap: 20px;
  align-items: center;
  margin-bottom: 10px;
}
.c-recruit__head img {
  max-width: 110px;
  width: 100%;
  object-fit: contain;
  height: auto;
}

.c-recruit__class {
  font-size: clamp(0.75rem, 3.7333333333vw, 0.875rem);
  font-weight: 600;
  line-height: 1;
}

.c-recruit__img {
  width: 100%;
  height: auto;
  aspect-ratio: 313/200;
  border-radius: 10px;
  overflow: hidden;
}
.c-recruit__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.c-recruit__title {
  font-size: clamp(1rem, 4.8vw, 1.125rem);
  font-weight: 600;
  margin-bottom: 8px;
  padding: 10px 0;
}

.c-recruit__badges {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 8px;
}

.c-recruit__badge {
  font-size: 0.75rem;
  padding: 2px 10px;
  border-radius: 20px;
  background: #F1A72F;
  color: #fff;
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
}

.c-recruit__actions {
  display: grid;
  gap: 10px;
  justify-content: space-between;
  align-items: center;
  grid-template-columns: 1fr 1fr;
}

/***************************************
スケジュール（1日の流れ）タイムライン
- 左側に縦線を配置
- 時刻は角丸の黄色背景
- タイトルと補足テキストを配置
****************************************/
.c-schedule {
  padding: clamp(10px, 2.66666vw, 20px);
  background-color: #fff;
  border-radius: 10px;
}

@media screen and (min-width: 768px) {
  .c-schedule {
    max-width: 600px;
    margin-inline: auto;
    padding: 40px;
  }
}
.c-schedule__list {
  display: flex;
  flex-direction: column;
  position: relative;
}

.c-schedule__item {
  display: flex;
  align-items: flex-start;
  gap: clamp(5px, 2.66666vw, 10px);
  position: relative;
  padding-bottom: 20px;
}
.c-schedule__item::before {
  content: "";
  position: absolute;
  left: clamp(1.75rem, 7.466vw, 2.25rem);
  top: 28px;
  width: 2px;
  height: calc(100% - 31px);
  background-color: #333333;
}
.c-schedule__item:last-child {
  padding-bottom: 0;
}
.c-schedule__item:last-child::before {
  display: none;
}

.c-schedule__time {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: clamp(3.5rem, 14.933vw, 4.5rem);
  padding: 0 clamp(0.5rem, 2.133vw, 0.75rem);
  background-color: #FEECB1;
  border-radius: 50px;
  font-size: clamp(0.75rem, 3.7333333333vw, 0.875rem);
  font-weight: 500;
  line-height: 25px;
  height: 25px;
}

.c-schedule__content {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.c-schedule__title {
  font-size: clamp(0.75rem, 3.7333333333vw, 0.875rem);
  line-height: 1.8;
}

.c-schedule__sub {
  font-size: clamp(0.75rem, 3.7333333333vw, 0.875rem);
  line-height: 1.8;
}
