@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
*,
::after,
::before {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.6;
  font-feature-settings: "palt" 1;
  font-size: 1.6rem;
}

.en {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  letter-spacing: 0.03em;
}

.primary_title {
  font-size: 4.2rem;
  font-weight: 700;
  letter-spacing: 0.05em;
}
@media (max-width: 768px) {
  .primary_title {
    font-size: 2.4rem;
  }
}
.primary_title.add_num {
  position: relative;
  padding-left: 120px;
}
@media (max-width: 768px) {
  .primary_title.add_num {
    padding-left: 72px;
  }
}
.primary_title.add_num .num {
  display: inline-block;
  font-size: 16.2rem;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: #db0012;
  font-style: italic;
  font-weight: bold;
  position: absolute;
  left: 0;
  top: -40px;
  line-height: 1;
  transform: scaleX(0.9);
}
@media (max-width: 768px) {
  .primary_title.add_num .num {
    font-size: 9.2rem;
    top: -20px;
  }
}

.secondary_title {
  font-size: 3.8rem;
  font-weight: 700;
  letter-spacing: 0.05em;
}
@media (max-width: 768px) {
  .secondary_title {
    font-size: 2.4rem;
  }
}

.middle_title {
  font-size: 2.6rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.4;
}
@media (max-width: 768px) {
  .middle_title {
    font-size: 2rem;
  }
}

.add_num2 {
  position: relative;
  padding-left: 80px;
}
@media (max-width: 768px) {
  .add_num2 {
    padding-left: 40px;
  }
}
.add_num2 .num {
  display: inline-block;
  font-size: 8rem;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: #db0012;
  font-style: italic;
  font-weight: bold;
  position: absolute;
  left: 0;
  top: -20px;
  line-height: 1;
  transform: scaleX(0.9);
}
@media (max-width: 768px) {
  .add_num2 .num {
    font-size: 4rem;
    top: -5px;
  }
}

.add_num3 {
  position: relative;
  padding-left: 80px;
}
@media (max-width: 768px) {
  .add_num3 {
    padding-left: 40px;
  }
}
.add_num3 .num {
  display: inline-block;
  font-size: 8rem;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: #db0012;
  font-style: italic;
  font-weight: bold;
  position: absolute;
  left: 0;
  top: -8px;
  line-height: 1;
  transform: scaleX(0.9);
}
@media (max-width: 768px) {
  .add_num3 .num {
    font-size: 4rem;
    top: -5px;
  }
}

.small_title {
  font-weight: 600;
  font-size: 2.2rem;
  letter-spacing: 0.03em;
  line-height: 1.5;
}
@media (max-width: 768px) {
  .small_title {
    font-size: 1.8rem;
  }
}

h5 {
  font-weight: 600;
  font-size: 2.2rem;
  margin-bottom: 1em;
}
@media (max-width: 768px) {
  h5 {
    font-size: 1.8rem;
  }
}

.section_title {
  font-size: 4.4rem;
  letter-spacing: 0.03em;
  line-height: 1.3;
  font-weight: 700;
}
@media (max-width: 768px) {
  .section_title {
    font-size: 2.8rem;
  }
}
.section_title span {
  display: block;
  color: #db0012;
  font-size: 1.8rem;
  margin-bottom: 8px;
}
@media (max-width: 768px) {
  .section_title span {
    font-size: 1.6rem;
  }
}
.section_title span::after {
  content: "";
  display: inline-block;
  width: 2px;
  height: 20px;
  border-radius: 1px;
  background-color: #db0012;
  margin-left: 1em;
  transform: rotate(45deg);
  transform-origin: 50% 50%;
  vertical-align: text-bottom;
}
.section_title.small {
  font-size: 3.2rem;
}
@media (max-width: 768px) {
  .section_title.small {
    font-size: 2.4rem;
  }
}
.section_title.white {
  color: #ffffff;
}
.section_title.white span {
  color: #ffffff;
}
.section_title.white span::after {
  background-color: #ffffff;
}

.brush_line_title {
  font-size: 4.2rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-align: center;
  margin-bottom: 56px;
}
@media (max-width: 768px) {
  .brush_line_title {
    font-size: 2.4rem;
    margin-bottom: 40px;
  }
}
.brush_line_title span {
  display: block;
  position: relative;
  z-index: 1;
  line-height: 1.45;
}
.brush_line_title span::after {
  content: "";
  display: block;
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: auto;
  margin-left: auto;
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%);
  z-index: -1;
}
.brush_line_title .line_long2::after {
  background-image: url(../images/modules/brush_long2.svg);
  width: 580px;
  height: 34px;
}
@media (max-width: 768px) {
  .brush_line_title .line_long2::after {
    width: 348px;
    height: 20px;
  }
}
.brush_line_title .line_long::after {
  background-image: url(../images/modules/brush_long.svg);
  width: 444px;
  height: 36px;
}
@media (max-width: 768px) {
  .brush_line_title .line_long::after {
    width: 266px;
    height: 22px;
  }
}
.brush_line_title .line_short::after {
  background-image: url(../images/modules/brush_short.svg);
  width: 360px;
  height: 30px;
}
@media (max-width: 768px) {
  .brush_line_title .line_short::after {
    width: 216px;
    height: 18px;
  }
}

.first_letter_red_title {
  font-size: 3.2rem;
  font-weight: 700;
  letter-spacing: 0.05em;
}
.first_letter_red_title.large {
  font-size: 4.2rem;
}
@media (max-width: 768px) {
  .first_letter_red_title {
    font-size: 2rem;
    margin-bottom: 24px;
  }
  .first_letter_red_title.large {
    font-size: 2.6rem;
  }
}
.first_letter_red_title.vertical_align_bottom::first-letter {
  vertical-align: text-bottom;
}

.first_letter_red_title::first-letter {
  font-size: 3.8rem;
  color: #db0012;
}
@media (max-width: 768px) {
  .first_letter_red_title::first-letter {
    font-size: 2.4rem;
  }
}

.first_letter_red_title.large::first-letter {
  font-size: 4.8rem;
  color: #db0012;
}
@media (max-width: 768px) {
  .first_letter_red_title.large::first-letter {
    font-size: 3rem;
  }
}

.icon_title {
  background-color: #fff;
  padding: 8px 16px;
  font-size: 2.4rem;
  font-weight: 600 !important;
  border-radius: 3px;
  position: relative;
  padding-left: 64px;
  margin-bottom: 1em;
}
@media (max-width: 768px) {
  .icon_title {
    font-size: 1.8rem;
  }
}
.icon_title::before {
  content: "";
  display: block;
  background-image: url(../images/modules/icon_pencil.svg);
  background-size: contain;
  width: 34px;
  height: 34px;
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
}
@media (max-width: 768px) {
  .icon_title::before {
    width: 30px;
    height: 30px;
  }
}
.icon_title.icon_interview.year {
  margin-left: -1em;
  padding-left: 60px;
}
.icon_title.icon_school::before {
  background-image: url(../images/modules/icon_school.svg);
}
.icon_title.icon_interview::before {
  background-image: url(../images/modules/icon_interview.svg);
}
.icon_title.icon_faq::before {
  background-image: url(../images/modules/icon_faq_red.svg);
  top: 30px;
}
@media (max-width: 768px) {
  .icon_title.icon_faq::before {
    top: 26px;
  }
}
.icon_title.center_style {
  text-align: left;
  display: inline-block;
}
.icon_title.add_line {
  border-bottom: solid 1px #b3b3b3;
  border-radius: 0;
  padding-bottom: 16px;
  background-color: initial;
}
.icon_title.add_bg {
  background-color: #f2f2f2;
}

.box_title {
  font-size: 3.6rem;
  font-weight: 600;
  background-color: #ffffff;
  padding: 32px;
  margin-bottom: 32px;
  line-height: 1.5;
}
@media (max-width: 768px) {
  .box_title {
    padding: 24px;
    font-size: 2.4rem;
  }
}
.box_title span {
  color: #db0012;
}

dd {
  font-size: 2rem;
  margin-bottom: 1.5em;
  line-height: 1.6;
  letter-spacing: 0.03em;
  border-bottom: solid 1px #ccc;
  padding-bottom: 2em;
}
dd a {
  border-bottom: solid 1px #000000;
}
dd a:hover {
  border-bottom: solid 1px transparent;
}
@media (max-width: 768px) {
  dd {
    font-size: 1.6rem;
  }
}
dd .link {
  text-align: center;
  margin-top: 1em;
}

p {
  font-size: 2rem;
  line-height: 1.8;
  letter-spacing: 0.05em;
  margin-bottom: 1em;
}
@media (max-width: 768px) {
  p {
    font-size: 1.6rem;
  }
}

.page_content strong {
  font-weight: 500;
}
.page_content h2 {
  padding-top: 1em;
  margin-bottom: 1em;
}
.page_content h3 {
  padding-top: 1em;
  margin-bottom: 1em;
}
.page_content p {
  font-size: 1.6rem;
  margin-bottom: 1em;
  line-height: 1.8;
}
.page_content ul {
  list-style-type: "・ ";
  list-style-position: inside;
  margin-bottom: 1em;
}
.page_content ul li {
  line-height: 1.8;
  text-indent: -0.75em;
  padding-left: 0.75em;
}

.wp-block-table table, .wp-block-table td, .wp-block-table th {
  border: 1px solid #999999;
}
.wp-block-table tr:nth-child(odd) {
  background-color: #f2f2f2;
}

.fz_small {
  font-size: 80%;
}

html {
  font-size: 62.5%;
  overflow-y: scroll;
  color: #000000;
}

body {
  overflow-x: hidden;
  transition: transform 0.3s ease;
  animation: fadeIn 2s ease 0s 1 normal;
  -webkit-text-size-adjust: 100%;
}
@media (min-width: 769px) {
  body {
    min-width: 1320px;
  }
}
#wrap {
  position: relative;
}
@media (max-width: 768px) {
  #wrap {
    transition: transform 0.3s ease;
  }
}

ul, ol {
  list-style-type: none;
}

a {
  text-decoration: none;
  color: inherit;
}

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

h1,
h2,
h3,
h4 {
  line-height: 1.25;
  font-weight: 400;
}

.inline_block {
  display: inline-block;
}

.align_center {
  text-align: center;
}

.align_left {
  text-align: left;
}

.align_right {
  text-align: right;
}

.red {
  color: #db0012;
}

.indent_block {
  padding-left: 1em;
  padding-right: 1em;
}

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

.add_pt1em {
  padding-top: 1em;
}

.remove_mb {
  margin-bottom: initial !important;
}

.remove_pt {
  padding-top: initial !important;
}

.margin_rl_auto {
  margin-right: auto;
  margin-left: auto;
}

.flex {
  display: flex;
  flex-wrap: wrap;
}

.justify_center {
  justify-content: center;
}

.gap8 {
  gap: 8px 8px;
}

.width50 {
  width: calc(50% - 4px);
}

@media (min-width: 769px) {
  a[href^="tel:"] {
    pointer-events: none;
  }
  .sp_visible {
    display: none;
  }
  .pc_flex {
    display: flex;
    flex-wrap: wrap;
  }
  .pc_align_center {
    text-align: center;
  }
  .pc_align_right {
    text-align: right;
  }
  .pc_space_between {
    justify-content: space-between;
  }
  .pc_flex_reverse {
    flex-direction: row-reverse;
  }
  .pc_col2 {
    width: 48%;
  }
  .pc_col3 {
    width: 32%;
    margin-right: 2%;
  }
  .pc_col3:nth-child(3n+3) {
    margin-right: 0;
  }
  .pc_align_items_center {
    align-items: center;
  }
  .pc_add_pt1em {
    padding-top: 1em;
  }
  .inner {
    width: 1320px;
    margin-right: auto;
    margin-left: auto;
    padding-left: 20px;
    padding-right: 20px;
  }
  .inner.width_l {
    width: 1080px;
  }
  .inner.width_m {
    width: 960px;
  }
  .inner.width_s {
    width: 690px;
  }
}
@media (max-width: 768px) {
  .pc_visible {
    display: none;
  }
  .inner {
    padding-left: 16px;
    padding-right: 16px;
  }
  .pc_col2 + .pc_col2,
  .pc_col3 + .pc_col3 {
    margin-top: 24px;
  }
  .sp_reduce_pb {
    padding-bottom: 10px !important;
  }
}
.spacer40 {
  margin-bottom: 40px;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.spacer_l {
  margin-bottom: 72px;
}
@media (max-width: 768px) {
  .spacer_l {
    margin-bottom: 40px;
  }
}

.spacer_m {
  margin-bottom: 56px;
}
@media (max-width: 768px) {
  .spacer_m {
    margin-bottom: 32px;
  }
}

.spacer_ms {
  margin-bottom: 40px;
}
@media (max-width: 768px) {
  .spacer_ms {
    margin-bottom: 24px;
  }
}

.spacer_sl {
  margin-bottom: 32px;
}
@media (max-width: 768px) {
  .spacer_sl {
    margin-bottom: 20px;
  }
}

.spacer_s {
  margin-bottom: 24px;
}
@media (max-width: 768px) {
  .spacer_s {
    margin-bottom: 16px;
  }
}

.spacer_xs {
  margin-bottom: 16px;
}
@media (max-width: 768px) {
  .spacer_xs {
    margin-bottom: 8px;
  }
}

.map {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  height: 0;
}

.map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.button {
  display: inline-block;
  width: 250px;
  text-align: center;
  font-size: 1.8rem;
  padding: 10px 20px;
  color: #db0012;
  background-color: #ffffff;
  border: solid 1px #db0012;
  border-radius: 3px;
  cursor: pointer;
  transition: all 0.3s;
  background-image: url(../images/modules/arrow_red.svg);
  background-repeat: no-repeat;
  background-position: right 32px center;
  padding-right: 32px;
  text-decoration: none;
}
@media (max-width: 768px) {
  .button {
    font-size: 1.6rem;
  }
}
.button:hover {
  background-color: rgb(197.1, 0, 16.2);
  background-image: url(../images/modules/arrow_white.svg);
  color: #ffffff;
}
.button.width_flex {
  width: initial;
  padding-right: 64px;
  padding-left: 32px;
  background-position: right 24px center;
}
.button.black {
  color: #000000;
  background-color: #ffffff;
  border: solid 1px #b3b3b3;
  background-image: url(../images/modules/arrow_black.svg);
}
.button.black:hover {
  background-color: black;
  background-image: url(../images/modules/arrow_white.svg);
  color: #ffffff;
}
.button.red {
  color: #ffffff;
  background-color: #db0012;
  border: solid 1px #db0012;
  background-image: url(../images/modules/arrow_white.svg);
  display: block;
}
.button.red:hover {
  background-color: rgb(197.1, 0, 16.2);
  background-image: url(../images/modules/arrow_white.svg);
  color: #ffffff;
}
.button.red.large {
  font-size: 2.4rem;
  width: 430px;
  font-weight: 600;
  padding-right: 48px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
}
@media (max-width: 768px) {
  .button.red.large {
    font-size: 1.6rem;
    width: min(100%, 300px);
    margin-right: auto;
    margin-left: auto;
  }
}
.button.red.large span {
  margin-left: 0.5em;
  margin-right: 0.5em;
}
.button.pdf {
  position: relative;
}
.button.pdf::before {
  content: "";
  display: inline-block;
  background-size: contain;
  width: 24px;
  height: 24px;
  background-image: url(../images/modules/icon_pdf.svg);
  background-repeat: no-repeat;
  position: absolute;
  top: 50%;
  left: 32px;
  transform: translateY(-11px);
}
.button.pdf:hover::before {
  background-image: url(../images/modules/icon_pdf_white.svg);
}

a .button.black {
  width: 320px;
  color: #000000;
  background-color: #ffffff;
  border: solid 1px #b3b3b3;
  background-image: url(../images/modules/arrow_black.svg);
}
@media (max-width: 768px) {
  a .button.black {
    width: min(320px, 100%);
  }
}
a:hover .button {
  background-color: rgb(197.1, 0, 16.2);
  background-image: url(../images/modules/arrow_white.svg);
  color: #ffffff;
}
a:hover .button.black {
  background-color: black;
  background-image: url(../images/modules/arrow_white.svg);
  color: #ffffff;
}

.icon_button {
  display: inline-block;
  width: 370px;
  text-align: center;
  font-size: 1.9rem;
  padding: 10px 20px;
  background-color: #db0012;
  color: #ffffff;
  border: solid 1px #db0012;
  border-radius: 3px;
  cursor: pointer;
  transition: all 0.3s;
  background-image: url(../images/modules/arrow_white.svg);
  background-repeat: no-repeat;
  background-position: right 24px center;
  padding-right: 24px;
  position: relative;
  margin-top: 32px;
}
@media (max-width: 768px) {
  .icon_button {
    width: min(370px, 100%);
    font-size: 1.6rem;
    background-position: right 16px center;
  }
}
.icon_button:hover {
  background-color: rgb(197.1, 0, 16.2);
  background-image: url(../images/modules/arrow_white.svg);
  color: #ffffff;
}
.icon_button::before {
  content: "";
  display: block;
  background-image: url(../images/modules/icon_brochure.svg);
  background-size: contain;
  width: 36px;
  height: 36px;
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
}
@media (max-width: 768px) {
  .icon_button::before {
    width: 28px;
    height: 28px;
  }
}
.icon_button.trial::before {
  background-image: url(../images/modules/icon_trial.svg);
}

.link_button {
  display: flex;
  flex-wrap: wrap;
}

.square_button {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100px;
  height: 100px;
  font-size: 2rem;
  background-color: #db0012;
  border: solid 1px #db0012;
  border-radius: 3px;
  color: #ffffff;
  font-weight: 500;
  transition: all 0.3s;
}
@media (max-width: 768px) {
  .square_button {
    width: 80px;
    height: 80px;
    font-size: 1.6rem;
  }
}
.square_button:hover {
  background-color: rgb(197.1, 0, 16.2);
}
.square_button:not(.access) {
  margin-left: 8px;
}
.square_button::before {
  content: "";
  display: block;
  background-size: contain;
  width: 38px;
  height: 38px;
}
@media (max-width: 768px) {
  .square_button::before {
    width: 30px;
    height: 30px;
  }
}
.square_button.access {
  background-color: #ffffff;
  border: solid 1px #cccccc;
  color: #000000;
  transition: all 0.3s;
}
.square_button.access:hover {
  background-color: rgb(242.25, 242.25, 242.25);
}
.square_button.access::before {
  background-image: url(../images/modules/icon_access.svg);
}
.square_button.brochure::before {
  background-image: url(../images/modules/icon_brochure.svg);
}
.square_button.trial::before {
  background-image: url(../images/modules/icon_trial.svg);
}

button.toggle_btn {
  background: none;
  border: none;
  cursor: pointer;
  outline: none;
  width: 100%;
  height: 70px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
  justify-content: center;
  /* 初期状態（右上用） */
  width: 70px;
  position: fixed;
  top: 10px;
  right: 0;
  z-index: 1000;
}
@media (min-width: 769px) {
  button.toggle_btn {
    display: none;
  }
}
button.toggle_btn .button_name {
  font-size: 1.2rem;
  color: #000000;
  display: none;
}
button.toggle_btn .button_parts > span {
  background-color: #000000;
  width: 14px;
  height: 2px;
  display: block;
  margin-bottom: 4px;
  transition: transform 0.7s;
}
button.toggle_btn .button_parts > span:last-child {
  margin-bottom: 0;
}
button.toggle_btn.open span:nth-child(1) {
  transition-delay: 25ms;
  transform: translateY(7px) rotate(135deg);
  transform: translateY(6px) rotate(135deg);
}
button.toggle_btn.open span:nth-child(2) {
  transition-delay: 0s;
  transform: translateX(-10px) scaleX(0);
}
button.toggle_btn.open span:nth-child(3) {
  transition-delay: 50ms;
  transform: translateY(-7px) rotate(-135deg);
  transform: translateY(-6px) rotate(-135deg);
}

@media (min-width: 769px) {
  .fix_button {
    width: 1320px;
    margin-right: auto;
    margin-left: auto;
    position: relative;
    padding-left: 20px;
    padding-right: 20px;
    z-index: 200;
  }
}
@media (max-width: 768px) {
  .fix_button {
    width: 100%;
    position: fixed;
    bottom: 0;
    bottom: -100px; /* 初期は隠す */
    left: 0;
    z-index: 200;
  }
  .fix_button.show {
    bottom: 0;
  }
  .fix_button.show button.toggle_btn {
    position: static;
    width: 100%;
    top: initial;
    right: initial;
    background-color: #000000;
  }
  .fix_button.show button.toggle_btn .button_name {
    color: #ffffff;
    display: block;
  }
  .fix_button.show button.toggle_btn .button_parts > span {
    background-color: #ffffff;
  }
}

.nav_button {
  display: flex;
  flex-wrap: wrap;
}
@media (min-width: 769px) {
  .nav_button {
    position: absolute;
    top: 0;
    right: 20px;
  }
}
@media (max-width: 768px) {
  .nav_button {
    justify-content: space-between;
    background-color: #fff;
    box-shadow: 0 -10px 20px rgba(0, 0, 0, 0.08);
  }
}
@media (max-width: 768px) {
  .nav_button li {
    width: calc((100% - 4px) / 5);
  }
}
.nav_button li + li {
  margin-left: 1px;
}
.nav_button li a {
  font-size: 1.8rem;
  background-color: #db0012;
  color: #ffffff;
  display: block;
  transition: all 0.3s;
}
@media (min-width: 769px) {
  .nav_button li a {
    line-height: 45px;
    height: 45px;
    text-align: center;
    padding-left: 1em;
    width: 160px;
    position: relative;
  }
}
@media (max-width: 768px) {
  .nav_button li a {
    font-size: 1.2rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding-top: 13px;
    padding-bottom: 14px;
    height: 70px;
  }
}
.nav_button li a:hover {
  background-color: rgb(197.1, 0, 16.2);
}
.nav_button li a::before {
  content: "";
  display: block;
  background-image: url(../images/modules/icon_access.svg);
  background-repeat: no-repeat;
  background-size: contain;
  width: 25px;
  height: 25px;
}
@media (min-width: 769px) {
  .nav_button li a::before {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
  }
}
@media (max-width: 768px) {
  .nav_button li a::before {
    width: 20px;
    height: 20px;
    margin-bottom: 4px;
  }
}
.nav_button li:nth-child(2) a {
  color: #000000;
  border-bottom-left-radius: 3px;
  background-color: #e6e6e6;
}
.nav_button li:nth-child(2) a:hover {
  background-color: #cfcfcf;
}
.nav_button li:nth-child(2) a::before {
  background-image: url(../images/modules/icon_access.svg);
}
.nav_button li:nth-child(3) a::before {
  background-image: url(../images/modules/icon_trial.svg);
}
.nav_button li:nth-child(4) a {
  border-bottom-right-radius: 3px;
}
.nav_button li:nth-child(4) a::before {
  background-image: url(../images/modules/icon_brochure.svg);
}
.nav_button li:nth-child(5) a {
  border-bottom-right-radius: 3px;
  background-color: #e6e6e6;
  color: #000000;
}
.nav_button li:nth-child(5) a::before {
  background-image: url(../images/modules/icon_pagetop.svg);
}
@media (max-width: 768px) {
  .nav_button li.sp_menu_button {
    position: relative;
    background-color: #e6e6e6;
    background-color: #000000;
  }
  .nav_button li.sp_menu_button:hover {
    background-color: rgb(25.5, 25.5, 25.5);
  }
}

.is-style-outline.red_button {
  background-image: url(../images/modules/arrow_red.svg);
  background-repeat: no-repeat;
  background-position: right 16px center;
  transition: all 0.3s;
}
.is-style-outline.red_button:hover {
  opacity: 0.7;
}

.filter_buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
@media (max-width: 768px) {
  .filter_buttons {
    gap: 4px 4px;
  }
}

.filter_btn {
  cursor: pointer;
  border: none;
  font-size: 2rem;
  line-height: 1;
  padding: 14px 20px;
  color: #000000;
  background-color: #e6e6e6;
  border: solid 1px #e6e6e6;
  border-radius: 3px;
}
@media (max-width: 768px) {
  .filter_btn {
    font-size: 1.4rem;
    padding: 10px 14px;
  }
}
.filter_btn.active {
  background-color: #db0012;
  border: solid 1px #db0012;
  color: #ffffff;
}
.filter_btn:hover {
  border: solid 1px #db0012;
}

.filter_reset {
  cursor: pointer;
  border: none;
  font-size: 2rem;
  line-height: 1;
  padding: 15px 20px;
  background-color: #000000;
  border-radius: 3px;
  color: #ffffff;
  margin-top: 24px;
}
@media (max-width: 768px) {
  .filter_reset {
    font-size: 1.4rem;
    margin-top: 36px;
    padding: 10px 14px;
  }
}
.filter_reset:hover {
  opacity: 0.7;
}

@media (min-width: 769px) {
  #cta .pc_flex {
    justify-content: space-between;
  }
}
@media (min-width: 769px) {
  #cta .cta {
    display: flex;
    flex-direction: column;
  }
}
@media (min-width: 769px) {
  #cta .cta h2 {
    width: calc(100% - 370px);
  }
}
#cta .cta_description p {
  margin-bottom: initial;
}
@media (min-width: 769px) {
  #cta .cta_description {
    width: 370px;
  }
}
@media (min-width: 769px) {
  #cta .cta {
    width: 50%;
    padding: 20px 40px;
    border-right: solid 1px #b3b3b3;
  }
  #cta .cta:first-child {
    border-left: solid 1px #b3b3b3;
  }
  #cta .cta_description .link {
    margin-top: 32px;
  }
}
#cta p {
  font-size: 2rem;
}
@media (max-width: 768px) {
  #cta p {
    font-size: 1.6rem;
    margin-top: 32px;
  }
}
#cta .link {
  text-align: right;
}
@media (min-width: 769px) {
  #cta .link {
    margin-top: auto;
  }
}
@media (max-width: 768px) {
  #cta .link {
    text-align: center;
  }
}
@media (max-width: 768px) {
  #cta .icon_button {
    width: 300px;
  }
}
@media (max-width: 768px) {
  #cta .icon_button.brochure {
    margin-bottom: 40px;
  }
}
@media (min-width: 769px) {
  #cta .icon_button.trial {
    margin-top: 56px;
  }
}

#contact {
  background-color: #db0012;
}
#contact.contact {
  background-color: #ffffff;
}
#contact.contact a {
  box-shadow: 2px 2px 8px 0px rgba(0, 0, 0, 0.3);
}
#contact p {
  color: #ffffff;
}
@media (max-width: 768px) {
  #contact p {
    font-size: 1.6rem;
    margin-top: 32px;
  }
}
#contact .pc_flex {
  margin-top: 40px;
}
@media (min-width: 769px) {
  #contact .pc_flex {
    justify-content: space-between;
  }
}
#contact a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background-color: #ffffff;
  border-radius: 3px;
  position: relative;
  background-image: url(../images/modules/arrow_black.svg);
  background-repeat: no-repeat;
  background-position: right 32px center;
  padding-left: 1em;
  transition: all 0.3s;
  height: 155px;
}
@media (min-width: 769px) {
  #contact a {
    width: 32.8%;
    height: 155px;
    font-size: 2.2rem;
  }
}
@media (max-width: 768px) {
  #contact a {
    width: 300px;
    height: 120px;
    margin-bottom: 16px;
    font-size: 1.6rem;
    margin-right: auto;
    margin-left: auto;
  }
}
#contact a:hover {
  opacity: 0.8;
}
#contact a::before {
  content: "";
  display: inline-block;
  background-image: url(../images/modules/icon_mail.svg);
  background-size: contain;
  width: 68px;
  height: 68px;
  position: absolute;
  left: 40px;
  top: 50%;
  transform: translateY(-50%);
}
@media (max-width: 768px) {
  #contact a::before {
    width: 48px;
    height: 48px;
    left: 24px;
  }
}
#contact a.line::before {
  background-image: url(../images/modules/icon_line.svg);
}
#contact a.tel {
  background-image: none;
  padding-right: 1em;
  padding-left: 0em;
}
#contact a.tel img {
  width: 342px;
  padding-top: 10px;
  height: auto;
}
@media (max-width: 768px) {
  #contact a.tel img {
    width: 240px;
  }
}
#contact a.tel span {
  display: block;
  position: absolute;
}
#contact a.tel span.text {
  font-size: 2rem;
  left: 120px;
  top: 16px;
}
@media (max-width: 768px) {
  #contact a.tel span.text {
    font-size: 1.6rem;
    left: 88px;
  }
}
#contact a.tel span.time {
  font-size: 1.8rem;
  left: 120px;
  bottom: 16px;
}
@media (max-width: 768px) {
  #contact a.tel span.time {
    font-size: 1.4rem;
    left: 86px;
  }
}
#contact a.tel::before {
  display: none;
}

.card {
  width: min(100%, 400px);
}
@media (max-width: 768px) {
  .card {
    margin-right: auto;
    margin-left: auto;
  }
  .card + .card {
    margin-top: 16px;
  }
}
@media (min-width: 769px) {
  .card.flex_type {
    width: 49%;
  }
}
@media (min-width: 769px) {
  .card.full_width {
    width: 100%;
  }
}
.card a {
  display: block;
  box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.3);
  border: solid 1px #db0012;
  border-radius: 3px;
  transition: all 0.3s;
}
.card a:hover {
  opacity: 0.7;
}
.card .course_name {
  background-color: #db0012;
  color: #ffffff;
  padding: 10px 24px 14px;
  display: flex;
  align-items: center;
  border-top-left-radius: 2px;
  border-top-right-radius: 2px;
}
.card .course_name_en {
  font-size: 6.9rem;
  font-weight: 600;
  line-height: 1;
  margin-right: 20px;
  display: inline-block;
}
@media (max-width: 768px) {
  .card .course_name_en {
    font-size: 4.8rem;
  }
}
.card .course_name_jp {
  display: block;
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
@media (max-width: 768px) {
  .card .course_name_jp {
    font-size: 1.8rem;
  }
}
.card .course_name_jp span {
  display: block;
  font-weight: 500;
  font-size: 2rem;
}
@media (max-width: 768px) {
  .card .course_name_jp span {
    font-size: 1.6rem;
  }
}
.card .course_name_jp.text_large {
  font-size: 2.8rem;
}
@media (max-width: 768px) {
  .card .course_name_jp.text_large {
    font-size: 2.2rem;
  }
}
.card .course_name_jp.text_large span {
  margin-top: 5px;
}
.card .apply {
  border-bottom-left-radius: 2px;
  border-bottom-right-radius: 2px;
  font-size: 2rem;
  font-weight: 600;
  color: #db0012;
  padding: 6px 56px;
  text-align: right;
  background-color: #ffffff;
  background-image: url(../images/modules/arrow_red.svg);
  background-repeat: no-repeat;
  background-position: right 16px center;
}
@media (max-width: 768px) {
  .card .apply {
    font-size: 1.6rem;
  }
}
.card .apply.center {
  text-align: center;
  display: inline-block;
}
.card.card_blue a {
  border: solid 1px #00a8e3;
}
.card.card_blue .course_name {
  background-color: #00a8e3;
}
.card.card_blue .apply {
  color: #00458f;
  background-image: url(../images/modules/arrow_navy.svg);
}
.card.card_yellow a {
  border: solid 1px rgb(233.8909090909, 169.3909090909, 56.8090909091);
}
.card.card_yellow .course_name {
  background-color: rgb(233.8909090909, 169.3909090909, 56.8090909091);
}
.card.card_yellow .apply {
  color: rgb(218.9318181818, 147.6818181818, 23.3181818182);
  background-image: url(../images/modules/arrow_yellow.svg);
}
.card.card_navy a {
  border: solid 1px rgb(0, 57.6, 137.7);
}
.card.card_navy .course_name {
  background-color: rgb(0, 57.6, 137.7);
}
.card.card_navy .apply {
  color: rgb(0, 48, 114.75);
  background-image: url(../images/modules/arrow_navy.svg);
}

table, td, th {
  border: 1px solid #999999;
  border-collapse: collapse;
}

table {
  width: 100%;
  font-size: 2rem;
  font-weight: 400;
  background-color: #ffffff;
}
@media (max-width: 768px) {
  table {
    font-size: 1.6rem;
  }
}
table th {
  background: #e6e6e6;
  font-weight: 500;
  text-align: left;
  padding: 16px;
}
table th.bg_blue {
  background: #e8efef;
}
@media (max-width: 768px) {
  table th.bg_blue {
    padding: 8px;
  }
}
table td {
  padding: 24px;
}
@media (max-width: 768px) {
  table td {
    padding: 8px;
  }
}
table.text_center th {
  text-align: center;
}
table.text_center td {
  text-align: center;
}
table.access_table th {
  width: 120px;
}
@media (max-width: 768px) {
  table.access_table th {
    width: 100px;
  }
}
table.access_table td {
  width: calc(100% - 140px);
}
@media (max-width: 768px) {
  table.access_table td {
    width: calc(100% - 100px);
  }
}
table.timetable {
  font-size: 1.8rem;
  font-weight: 400;
  background-color: #ffffff;
}
@media (max-width: 768px) {
  table.timetable {
    font-size: 1.3rem;
  }
}
table.timetable th {
  background: #e6e6e6;
  font-weight: 500;
  text-align: left;
  padding: 8px;
  text-align: center;
}
@media (max-width: 768px) {
  table.timetable th {
    padding: 4px;
  }
}
table.timetable th.bg_blue {
  background: #e8efef;
}
table.timetable td {
  padding: 8px;
  text-align: center;
}
@media (max-width: 768px) {
  table.timetable td {
    padding: 4px;
  }
}
table.timetable td span {
  display: block;
  font-size: 60%;
  font-weight: 600;
}
@media (max-width: 768px) {
  table.wide_table {
    width: max(100%, 386px);
  }
}

.wp-block-table {
  margin: 0 0 1.8em;
}

.dl_table {
  border: 1px solid #999999;
}
.dl_table dt {
  background: #e8efef;
  font-size: 2rem;
  padding: 16px;
}
@media (min-width: 769px) {
  .dl_table dt {
    width: 380px;
    border-right: 1px solid #999999;
  }
}
@media (max-width: 768px) {
  .dl_table dt {
    font-size: 1.8rem;
    padding: 8px 16px;
  }
}
.dl_table dd {
  line-height: 1.6;
  letter-spacing: 0.03em;
  border-bottom: initial;
  padding-bottom: initial;
  padding: 16px;
  margin-bottom: initial;
}
@media (min-width: 769px) {
  .dl_table dd {
    width: calc(100% - 380px);
    display: flex;
    align-items: center;
  }
}
@media (max-width: 768px) {
  .dl_table dd {
    padding: 8px 16px 16px 16px;
  }
}
.dl_table dd a {
  display: inline-block;
}
@media (min-width: 769px) {
  .dl_table dd a {
    margin-right: 1em;
  }
}
.dl_table div {
  background-color: #ffffff;
}
.dl_table div + div {
  border-top: 1px solid #999999;
}

@media (max-width: 496px) {
  .table_container {
    position: relative; /* グラデーションの基準になる */
    overflow: hidden; /* グラデーションがはみ出さないように */
  }
  .table_container::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 30px;
    height: 100%;
    pointer-events: none;
    background: linear-gradient(to left, rgb(242, 242, 242), rgba(242, 242, 242, 0));
  }
}

@media (max-width: 496px) {
  .table_inner {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

ul.list li {
  list-style-type: "・ ";
  list-style-position: inside;
  text-indent: -0.75em;
  padding-left: 0.75em;
  font-size: 2.2rem;
}
@media (max-width: 768px) {
  ul.list li {
    font-size: 1.6rem;
  }
}
@media (min-width: 769px) {
  ul.list.reduce_fz li {
    font-size: 2rem;
  }
}

ol.number_list_auto li {
  counter-increment: list-counter;
  font-size: 2rem;
  position: relative;
  padding-left: 40px;
  letter-spacing: 0;
}
ol.number_list_auto li + li {
  margin-top: 1em;
}
ol.number_list_auto li::before {
  content: counter(list-counter);
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-weight: 600;
  background-color: #000000;
  color: #ffffff;
  width: 28px;
  height: 28px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
}

ol.number_list li {
  font-size: 2rem;
  padding-left: 1.5em;
  text-indent: -1.5em;
}
@media (max-width: 768px) {
  ol.number_list li {
    font-size: 1.6rem;
  }
}
ol.number_list li + li {
  margin-top: 1em;
}
ol.number_list li span {
  margin-right: 0.5em;
}

.wpcf7 dl {
  font-size: 2rem;
}
@media (max-width: 768px) {
  .wpcf7 dl {
    font-size: 1.6rem;
  }
}
.wpcf7 label {
  display: flex;
  flex-wrap: wrap;
}
@media (min-width: 769px) {
  .wpcf7 label dt {
    width: 300px;
  }
}
@media (max-width: 768px) {
  .wpcf7 label dt {
    width: 100%;
    margin-bottom: 8px;
  }
}
.wpcf7 label dt span {
  font-size: 70%;
  border: solid 1px #db0012;
  display: inline-block;
  line-height: 1;
  margin-left: 1em;
  padding: 4px 8px;
  border-radius: 3px;
}
.wpcf7 label dd {
  border: none;
}
@media (min-width: 769px) {
  .wpcf7 label dd {
    width: calc(100% - 300px);
  }
}
@media (max-width: 768px) {
  .wpcf7 label dd {
    width: 100%;
  }
}
.wpcf7 label dd input, .wpcf7 label dd textarea {
  font-size: 2rem;
  padding: 16px;
  background-color: #f2f2f2;
  border: none;
  border-radius: 3px;
  width: 100%;
}
@media (max-width: 768px) {
  .wpcf7 label dd input, .wpcf7 label dd textarea {
    font-size: 1.6rem;
  }
}
.wpcf7 .wpcf7-spinner {
  display: none;
}

::-moz-placeholder {
  color: #b3b3b3;
}

::placeholder {
  color: #b3b3b3;
}

.toc::before {
  content: "";
  display: block;
  background-repeat: no-repeat;
}
@media (min-width: 769px) {
  .toc::before {
    background-image: url(../images/modules/bg_toc.svg);
    background-size: contain;
    width: 650px;
    height: 30px;
  }
}
@media (max-width: 768px) {
  .toc::before {
    width: 100%;
    background-image: url(../images/modules/bg_toc_sp.svg);
    background-size: cover;
    background-position: center;
    aspect-ratio: 736/48;
  }
}
.toc ol {
  padding: 24px;
  background-color: #f2f2f2;
  border-bottom-left-radius: 3px;
  border-bottom-right-radius: 3px;
}
.toc ol li {
  counter-increment: my-counter;
  letter-spacing: 0.05em;
  position: relative;
  padding-left: 3em;
}
.toc ol li::before {
  content: counter(my-counter);
  font-size: 2.2rem;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-style: italic;
  color: #db0012;
  font-weight: bold;
  position: absolute;
  left: 8px;
  top: 4px;
}
.toc ol li + li {
  border-top: dashed 1px #ccc;
}
.toc ol li a {
  display: block;
  padding-top: 8px;
  padding-bottom: 8px;
  padding-right: 2em;
  position: relative;
  transition: all 0.3s;
}
.toc ol li a::after {
  content: "";
  display: inline-block;
  background-image: url(../images/modules/arrow_down.svg);
  background-size: contain;
  background-repeat: no-repeat;
  width: 14px;
  height: 14px;
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
}
.toc ol li a:hover {
  opacity: 0.7;
}

.page_course .add_label {
  display: block;
  background-color: #e6f0f0;
  position: relative;
  padding-top: 64px;
  background-image: url(../images/modules/arrow_black.svg);
  background-repeat: no-repeat;
  background-position: right 24px bottom 18px;
  transition: all 0.3s ease;
}
.page_course .add_label:hover {
  background-color: rgb(200.625, 222.375, 222.375);
}
.page_course .add_label.external_link {
  background-color: #f2f2f2;
}
.page_course .add_label.external_link:hover {
  background-color: rgb(217.8, 217.8, 217.8);
}
.page_course .add_label .course_category {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 95px;
  height: 42px;
  text-align: center;
  color: #ffffff;
  font-size: 1.2rem;
  background-color: #db0012;
  clip-path: polygon(100% 0, 100% 100%, 50% 80%, 0 100%, 0 0);
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-weight: bold;
  letter-spacing: 0.01em;
  line-height: 1;
  padding-bottom: 0.5em;
}
@media (max-width: 768px) {
  .page_course .add_label .course_category {
    left: 50%;
    transform: translateX(-50%);
  }
}
.page_course .add_label .course_category.add_blue {
  background-color: #00a1db;
}
.page_course .add_label .course_category.add_navy {
  background-color: #004099;
}
.page_course .add_label .course_category.add_yellow {
  background-color: #edb656;
}
.page_course .add_label .course_category.add_gray {
  background-color: #bfbfbf;
}
@media (min-width: 769px) {
  .page_course .pc_flex {
    justify-content: space-between;
  }
}
.page_course .bnr_trial {
  margin-top: 48px;
}
@media (max-width: 768px) {
  .page_course .bnr_trial {
    margin-top: 24px;
  }
}

header {
  position: relative;
}
@media (min-width: 769px) {
  header {
    width: 1320px;
    margin-right: auto;
    margin-left: auto;
    position: relative;
    padding-right: 20px;
    padding-left: 20px;
  }
  header .pc_flex {
    margin: auto;
    align-items: end;
  }
}
@media (max-width: 768px) {
  header {
    width: 100%;
  }
}
@media (max-width: 768px) {
  header .header {
    padding: 16px 16px;
  }
}
@media (min-width: 769px) {
  header .site_title {
    width: 300px;
  }
  header .site_title img {
    width: 300px;
    height: auto;
  }
}
@media (max-width: 768px) {
  header .site_title {
    width: 216px;
  }
  header .site_title img {
    width: 216px;
    height: auto;
  }
}
header .site_title.sp_visible {
  width: 100%;
}
header .site_title span {
  display: block;
  font-size: 1.6rem;
  font-feature-settings: initial;
  margin-bottom: 0.5em;
}
@media (max-width: 768px) {
  header .site_title span {
    font-size: 1.2rem;
  }
}

.header {
  padding: 20px 0 28px;
}
@media (max-width: 768px) {
  .header {
    padding: 8px 0;
  }
}

@media (max-width: 768px) {
  .open .gnav {
    transform: translateX(-100%);
  }
}

@media (min-width: 769px) {
  .gnav {
    margin-left: auto;
  }
}
@media (max-width: 768px) {
  .gnav {
    position: fixed;
    inset: 0 -100% 0 100%;
    z-index: 100;
    background: #f2f2f2;
    transition: transform 0.3s ease;
  }
}
@media (min-width: 769px) {
  .gnav ul.menu {
    display: flex;
    flex-wrap: wrap;
  }
}
@media (max-width: 768px) {
  .gnav ul.menu {
    padding-top: 16px;
    padding-bottom: 120px;
    height: 100vh;
    overflow: auto;
  }
}
.gnav ul.menu a {
  display: block;
  font-size: 1.8rem;
  font-weight: 500;
  color: inherit;
  padding: 0 1em;
}
@media (max-width: 768px) {
  .gnav ul.menu a {
    padding-top: 10px;
    padding-bottom: 10px;
    font-size: 1.5rem;
  }
}
@media (max-width: 768px) {
  .gnav ul.menu a.home_link {
    padding: 0 16px 16px;
    width: 100%;
  }
}
@media (min-width: 769px) {
  .gnav ul.menu > li {
    display: flex;
    flex-wrap: wrap;
    position: relative;
  }
}
@media (max-width: 768px) {
  .gnav ul.menu > li {
    border-bottom: solid 1px #cccccc;
  }
}
@media (max-width: 768px) {
  .gnav ul.menu > li > a::before {
    content: "■";
    display: inline-block;
    color: #b3b3b3;
    font-size: 70%;
    margin-right: 8px;
    vertical-align: middle;
    padding-bottom: 6px;
  }
}
@media (min-width: 769px) {
  .gnav .child {
    position: absolute;
    top: 40px;
    right: 0;
    background-color: #fff;
    width: -moz-max-content;
    width: max-content;
    box-shadow: 1px 1px 2px 0px rgba(0, 0, 0, 0.4);
    display: none;
    padding: 24px;
    z-index: 50;
  }
}
@media (max-width: 768px) {
  .gnav .child {
    padding-bottom: 16px;
    padding-left: 20px;
  }
}
@media (min-width: 769px) {
  .gnav .child ul {
    display: flex;
    flex-wrap: wrap;
  }
}
@media (max-width: 768px) {
  .gnav .child ul {
    display: flex;
    flex-wrap: wrap;
  }
}
@media (max-width: 768px) {
  .gnav .child li {
    width: 50%;
  }
}
@media (min-width: 769px) {
  .gnav .child li a {
    font-size: 1.5rem;
    padding: 8px 24px;
    transition: all 0.3s;
  }
  .gnav .child li a:hover {
    background-color: #e6e6e6;
  }
}
@media (max-width: 768px) {
  .gnav .child li a {
    padding-left: 1em;
    font-weight: 400;
    font-size: 1.3rem;
  }
}
@media (min-width: 769px) {
  .gnav .parent.show .child {
    display: block;
  }
}

footer {
  background-color: #f2f2f2;
}
@media (max-width: 768px) {
  footer {
    padding-bottom: 131px;
  }
}
@media (min-width: 769px) {
  footer .inner {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}
@media (max-width: 768px) {
  footer .inner {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}
footer .pc_flex {
  align-items: end;
}
@media (max-width: 768px) {
  footer .site_title {
    text-align: center;
    margin-bottom: 24px;
  }
}
footer .site_title img {
  width: 452px;
  height: auto;
}
@media (max-width: 768px) {
  footer .site_title img {
    width: min(324px, 100%);
  }
}
footer .site_title span {
  font-size: 2.4rem;
  font-feature-settings: initial;
  margin-bottom: 0.5em;
}
@media (min-width: 769px) {
  footer .site_title span {
    display: block;
  }
}
@media (max-width: 768px) {
  footer .site_title span {
    font-size: 1.4rem;
  }
}
@media (max-width: 768px) {
  footer .site_title a {
    width: min(324px, 100%);
    display: inline-block;
    text-align: left;
  }
}
@media (min-width: 769px) {
  footer .tel_mail {
    margin-left: auto;
  }
}
@media (max-width: 768px) {
  footer .tel_mail {
    margin-bottom: 32px;
    text-align: center;
  }
}
footer .tel_mail .tel img {
  width: 280px;
  height: 52px;
}
@media (max-width: 768px) {
  footer .tel_mail .tel img {
    width: 200px;
    height: auto;
  }
}
footer .tel_mail .tel span {
  display: inline-block;
  font-size: 1.8rem;
  line-height: 1.2;
  margin-left: 16px;
}
@media (max-width: 768px) {
  footer .tel_mail .tel span {
    font-size: 1.3rem;
  }
}
footer .tel_mail .email {
  margin-top: 16px;
}
footer .tel_mail .email img {
  width: 350px;
  height: 24px;
}
@media (max-width: 768px) {
  footer .tel_mail .email img {
    width: 252px;
    height: auto;
  }
}
@media (min-width: 769px) {
  footer .link_button {
    margin-left: 32px;
  }
}
@media (max-width: 768px) {
  footer .link_button {
    justify-content: center;
  }
}
@media (min-width: 769px) {
  footer .footer_link {
    margin-top: 80px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
}
@media (max-width: 768px) {
  footer .footer_link {
    margin-top: 24px;
  }
}
@media (min-width: 769px) {
  footer .footer_link li.parent {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
  }
}
@media (min-width: 769px) {
  footer .footer_link li.parent a {
    width: 20%;
  }
}
@media (min-width: 769px) {
  footer .footer_link li.parent .child {
    width: 75%;
  }
}
@media (max-width: 768px) {
  footer .footer_link li.parent .child {
    padding-top: 8px;
  }
}
@media (min-width: 769px) {
  footer .footer_link li.parent .child ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
  }
}
footer .footer_link li.parent .child li {
  font-weight: 400;
}
@media (min-width: 769px) {
  footer .footer_link li.parent .child li {
    margin-bottom: 16px;
    line-height: 1;
  }
  footer .footer_link li.parent .child li + li {
    border-left: solid 1px #000;
  }
}
footer .footer_link li.parent .child li a {
  padding-left: 0.5em;
  padding-right: 0.5em;
}
@media (max-width: 768px) {
  footer .footer_link li.parent .child li a {
    display: block;
    padding: 8px 24px;
  }
}
footer .footer_nav {
  font-size: 1.7rem;
}
@media (min-width: 769px) {
  footer .footer_nav {
    width: 48.33%;
  }
}
@media (max-width: 768px) {
  footer .footer_nav {
    font-size: 1.4rem;
  }
}
footer .footer_nav > li {
  font-weight: 600;
  border-bottom: solid 1px #ccc;
  padding-top: 24px;
  padding-bottom: 24px;
}
footer .footer_nav > li::before {
  content: "■";
  display: inline-block;
  color: #b3b3b3;
  font-size: 70%;
  margin-right: 8px;
  vertical-align: middle;
  padding-bottom: 6px;
}
@media (min-width: 769px) {
  footer .footer_sub_nav {
    width: 1200px;
    margin-right: auto;
    margin-left: auto;
    margin-top: 32px;
    text-align: right;
    padding-right: 16px;
    font-size: 1.6rem;
  }
}
@media (max-width: 768px) {
  footer .footer_sub_nav {
    font-size: 1.4rem;
    padding: 24px 16px 16px 24px;
  }
}
footer .copyright {
  background-color: #fff;
  font-size: 1.6rem;
  text-align: center;
  padding: 16px;
}
@media (max-width: 768px) {
  footer .copyright {
    font-size: 1.4rem;
  }
}

@media (max-width: 768px) {
  .pc_page_top {
    display: none;
  }
}
@media (min-width: 769px) {
  .pc_page_top {
    position: fixed;
    cursor: pointer;
    display: block;
    z-index: 10;
    right: 20px;
    bottom: 80px;
    opacity: 0;
    text-decoration: none;
    font-weight: 500;
    font-size: 1.3rem;
    letter-spacing: 0;
    color: #000000;
    display: flex;
    flex-wrap: wrap;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 16px;
    -webkit-tap-highlight-color: transparent; /* iOS/Androidのタップ時ハイライトを消す */
    touch-action: manipulation; /* タップ時の余計な挙動を防ぐ */
  }
  .pc_page_top::before {
    content: "";
    display: block;
    background-image: url(../images/modules/icon_pagetop.svg);
    background-size: contain;
    background-repeat: no-repeat;
    width: 36px;
    height: 36px;
  }
  .pc_page_top.fadein {
    opacity: 1;
    transition: opacity 1s;
  }
}
#page_header {
  background-color: #db0012;
  height: 200px;
  position: relative;
}
@media (max-width: 768px) {
  #page_header {
    height: 80px;
  }
}
#page_header::after {
  content: "";
  display: block;
  background-image: url(../images/modules/brush_white.svg);
  background-size: contain;
  width: 356px;
  height: 256px;
  position: absolute;
  top: -25px;
  left: 50%;
}
@media (min-width: 769px) {
  #page_header::after {
    transform: translateX(-750px);
  }
}
@media (max-width: 768px) {
  #page_header::after {
    transform: translateX(-220px);
    width: 140px;
    height: 100px;
    top: -12px;
  }
}
#page_header .en_title {
  text-transform: uppercase;
  width: 100%;
  text-align: center;
  display: inline-block;
  font-size: 10rem;
  line-height: 1;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 500;
  position: absolute;
  bottom: -12px;
  left: 50%;
  transform: translateX(-50%);
}
@media (max-width: 768px) {
  #page_header .en_title {
    font-size: 4rem;
    bottom: -3px;
  }
}

h1 {
  font-size: 2.8rem;
  text-align: center;
  letter-spacing: 0.05em;
  font-weight: 500;
  line-height: 1.6;
}
@media (max-width: 768px) {
  h1 {
    font-size: 2.4rem;
    padding-left: 16px;
    padding-right: 16px;
  }
}
h1.post_title {
  text-align: left;
}
@media (max-width: 768px) {
  h1.post_title {
    font-size: 2.4rem;
  }
}

.breadcrumb {
  font-size: 1.4rem;
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.breadcrumb li:first-child {
  color: #db0012;
}
.breadcrumb li + li::before {
  content: ">";
  display: inline-block;
  padding-left: 0.5em;
  padding-right: 0.5em;
}

.single .breadcrumb {
  padding-top: 40px;
}
@media (max-width: 768px) {
  .single .breadcrumb {
    padding-top: 32px;
  }
}

.page_nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.page_nav a {
  display: inline-block;
  text-align: center;
  font-size: 1.6rem;
  padding: 10px 20px;
  color: #db0012;
  background-color: #ffffff;
  border: solid 1px #db0012;
  border-radius: 3px;
  cursor: pointer;
  transition: all 0.3s;
  background-image: url(../images/modules/arrow_red.svg);
  background-repeat: no-repeat;
  padding-right: 64px;
  padding-left: 32px;
  background-position: right 24px center;
}
@media (max-width: 768px) {
  .page_nav a {
    font-size: 1.4rem;
    padding-right: 48px;
    padding-left: 24px;
    background-position: right 16px center;
  }
}
.page_nav a:hover {
  background-color: rgb(197.1, 0, 16.2);
  background-image: url(../images/modules/arrow_white.svg);
  color: #ffffff;
}
.page_nav a.width_flex {
  width: initial;
}
.page_nav .prev a {
  margin-right: 16px;
  background-position: left 24px center;
  padding-left: 64px;
  padding-right: 32px;
  background-image: url(../images/modules/arrow_red2.svg);
}
@media (max-width: 768px) {
  .page_nav .prev a {
    background-position: left 16px center;
    padding-left: 48px;
    padding-right: 24px;
  }
}
.page_nav .prev a:hover {
  background-image: url(../images/modules/arrow_white2.svg);
}
.page_nav .next a {
  margin-left: 16px;
}

.profile {
  text-align: center;
  margin-top: 24px;
}
.profile_photo img {
  aspect-ratio: 1/1;
  -o-object-fit: cover;
     object-fit: cover;
  width: 190px;
  border-radius: 50%;
  border: solid 5px #ffffff;
  margin-bottom: 16px;
}
@media (max-width: 768px) {
  .profile_photo img {
    width: 120px;
    border: solid 3px #ffffff;
  }
}

.interview_link .profile_photo {
  overflow: hidden;
  width: 190px;
  height: 190px;
  border-radius: 95px;
  border: none;
  margin-right: auto;
  margin-left: auto;
  margin-bottom: 16px;
}
.interview_link .profile_photo img {
  transition: all 0.3s ease-in;
  border: none;
  aspect-ratio: 1/1;
  -o-object-fit: cover;
     object-fit: cover;
  width: 190px;
  border-radius: 50%;
  margin-bottom: initial;
}
.interview_link:hover .profile_photo img {
  transform: scale(1.1);
}

@media (min-width: 769px) {
  .caption {
    margin-left: 24px;
    font-size: 2rem;
  }
}
@media (max-width: 768px) {
  .caption {
    font-size: 1.6rem;
  }
}
.caption span.name {
  font-weight: 700;
  display: inline-block;
  margin-right: 8px;
}
@media (max-width: 768px) {
  .caption span.name {
    font-size: 1.8rem;
  }
}
.caption span.is_grade3, .caption span.class {
  font-size: 80%;
  font-weight: 600;
  border: solid 1px #db0012;
  border-radius: 3px;
  display: inline-block;
  line-height: 1;
  padding: 6px 8px;
  margin-right: 4px;
  margin-left: 4px;
}
.caption span.graduation_school {
  display: block;
  margin-top: 8px;
  margin-bottom: 16px;
  font-size: 1.8rem;
}
@media (max-width: 768px) {
  .caption span.graduation_school {
    margin-bottom: 16px;
    font-size: 1.6rem;
  }
}

.work {
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 769px) {
  .work.is_vertical {
    width: 600px;
  }
}

.single main {
  padding-top: 40px;
}
@media (max-width: 768px) {
  .single main {
    padding-top: 24px;
  }
}
.single main h2, .single main h3 {
  margin-bottom: 1em;
  font-weight: 600;
}
.single main strong {
  font-weight: 600;
}
.single main table {
  width: 100%;
  font-size: 1.8rem;
  font-weight: 400;
}
@media (max-width: 768px) {
  .single main table {
    font-size: 1.6rem;
  }
}
.single main .post_type {
  font-size: 2.8rem;
  text-align: center;
  letter-spacing: 0.05em;
  font-weight: 600;
  line-height: 1.6;
}
@media (max-width: 768px) {
  .single main .post_type {
    font-size: 2.4rem;
    padding-left: 16px;
    padding-right: 16px;
  }
}
.single main .breadcrumb {
  margin-bottom: 24px;
}
@media (max-width: 768px) {
  .single main .breadcrumb {
    margin-bottom: 16px;
  }
}
.single main .post_header {
  padding-bottom: 24px;
  border-bottom: solid 1px #000000;
}
.single main .post_header h1 {
  font-size: 4rem;
  padding: 16px 0;
  line-height: 1.2;
  font-weight: 600;
}
@media (max-width: 768px) {
  .single main .post_header h1 {
    font-size: 2.4rem;
    text-align: left;
    padding: 8px 0;
  }
}
@media (min-width: 769px) {
  .single main .post_header .post_date {
    margin-right: 1em;
  }
}
@media (max-width: 768px) {
  .single main .post_header .post_date {
    margin-bottom: 12px;
  }
}
.single main .post_header .post_info {
  display: flex;
  flex-wrap: wrap;
  font-size: 2rem;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 16px;
}
@media (max-width: 768px) {
  .single main .post_header .post_info {
    font-size: 1.6rem;
    align-items: flex-start;
    gap: 8px;
  }
}
.single main .post_header .post_info ul.post-categories {
  margin-left: initial;
}
.single main .post_header .post_info ul.post-categories li a {
  display: inline-block;
  border: solid 1px #db0012;
  font-size: 1.4rem;
  line-height: 1;
  padding: 8px;
  border-radius: 3px;
}
.single main .post_header .post_category {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.single main .post_header .post_category span {
  background-color: #e6e6e6;
  font-size: 1.4rem;
  line-height: 1;
  padding: 8px;
  border-radius: 3px;
}
@media (min-width: 769px) {
  .single main .post_header .post_category span {
    font-size: 1.6rem;
    padding: 8px 16px;
  }
}
.single main .post_body {
  padding-top: 32px;
}
@media (min-width: 769px) {
  .single main .post_body {
    padding-left: 1em;
    margin-right: 1em;
  }
}
@media (max-width: 768px) {
  .single main .post_body {
    padding-top: 24px;
  }
}
.single main .post_body ul li {
  font-size: 2rem;
  line-height: 1.6;
  list-style-type: "・ ";
  list-style-position: inside;
  text-indent: -0.75em;
  padding-left: 0.75em;
}
@media (max-width: 768px) {
  .single main .post_body ul li {
    font-size: 1.6rem;
  }
}
.single main .post_body h2 {
  font-size: 3.2rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  margin-bottom: 1em;
}
.single main .post_body h2.large {
  font-size: 4.2rem;
}
@media (max-width: 768px) {
  .single main .post_body h2 {
    font-size: 2rem;
    margin-bottom: 24px;
  }
  .single main .post_body h2.large {
    font-size: 2.6rem;
  }
}
.single main .post_body h2::first-letter {
  font-size: 3.8rem;
  color: #db0012;
}
@media (max-width: 768px) {
  .single main .post_body h2::first-letter {
    font-size: 2.4rem;
  }
}
.single main .post_body h2::first-letter {
  font-size: 4.8rem;
  color: #db0012;
}
@media (max-width: 768px) {
  .single main .post_body h2::first-letter {
    font-size: 3rem;
  }
}
.single main .post_body h3 {
  font-size: 2.4rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  margin-bottom: 1em;
}
@media (max-width: 768px) {
  .single main .post_body h3 {
    font-size: 2rem;
  }
}
.single main .post_body h3::before {
  content: "■";
  color: #b3b3b3;
  margin-right: 0.5em;
}
.single main .post_body h4 {
  font-size: 2.4rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  margin-bottom: 1em;
}
@media (max-width: 768px) {
  .single main .post_body h4 {
    font-size: 2rem;
  }
}
.single main .post_body h5 {
  font-size: 2rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  margin-bottom: 1em;
}
@media (max-width: 768px) {
  .single main .post_body h5 {
    font-size: 1.8rem;
  }
}
.single main .post_body p {
  font-size: 2rem;
  line-height: 1.8;
  letter-spacing: 0.05em;
}
@media (max-width: 768px) {
  .single main .post_body p {
    font-size: 1.6rem;
  }
}
.single main .wp-block-table tr:nth-child(odd) {
  background-color: #f2f2f2;
}
.single main .wp-block-group.has-background {
  padding: 1.25em 2.375em;
}

.archive h1 span {
  font-size: 1.4rem;
  border: solid 1px #db0012;
  border-radius: 3px;
  line-height: 1;
  display: inline-block;
  padding: 8px;
  vertical-align: text-bottom;
  margin-left: 16px;
}

.post_list {
  border-top: solid 1px #b3b3b3;
}
.post_list li {
  border-bottom: solid 1px #b3b3b3;
  font-size: 1.8rem;
}
@media (max-width: 768px) {
  .post_list li {
    font-size: 1.6rem;
  }
}
.post_list li a {
  display: flex;
  flex-wrap: wrap;
  padding: 16px;
  position: relative;
}
@media (min-width: 769px) {
  .post_list li a {
    justify-content: space-between;
  }
}
@media (max-width: 768px) {
  .post_list li a {
    flex-direction: column;
  }
}
.post_list li a .post_meta {
  width: 220px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
@media (max-width: 768px) {
  .post_list li a .post_meta {
    width: 100%;
    margin-bottom: 8px;
  }
}
.post_list li a .post_meta .date {
  margin-right: 1em;
}
.post_list li a .post_meta .category span {
  display: inline-block;
  border: solid 1px #db0012;
  border-radius: 3px;
  font-size: 80%;
  line-height: 1;
  padding: 4px 8px;
}
.post_list li a .title {
  width: calc(100% - 250px);
  padding-right: 40px;
}
@media (max-width: 768px) {
  .post_list li a .title {
    width: 100%;
  }
}
.post_list li a::after {
  content: "";
  display: block;
  background-image: url(../images/modules/arrow_black.svg);
  background-size: contain;
  background-repeat: no-repeat;
  width: 28px;
  height: 28px;
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
}
.post_list li a:hover {
  background-color: #f8f8f8;
}

.post_info {
  display: flex;
  flex-wrap: wrap;
}
@media (min-width: 769px) {
  .post_info {
    align-items: center;
  }
}
@media (max-width: 768px) {
  .post_info .post_date {
    width: 100%;
    margin-bottom: 16px;
  }
}
.post_info ul.post-categories {
  display: flex;
  flex-wrap: wrap;
}
@media (min-width: 769px) {
  .post_info ul.post-categories {
    margin-left: 1em;
  }
}
@media (max-width: 768px) {
  .post_info ul.post-categories {
    width: 100%;
  }
}
.post_info ul.post-categories li a {
  display: inline-block;
  border: solid 1px #db0012;
  font-size: 1.4rem;
  line-height: 1;
  padding: 8px;
  border-radius: 3px;
}
.post_info ul.post-categories li + li {
  margin-left: 0.5em;
}

@media (min-width: 769px) {
  .other_posts_list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
}
.other_posts_list li {
  border-bottom: solid 1px #b3b3b3;
}
@media (min-width: 769px) {
  .other_posts_list li {
    width: 48%;
    font-size: 2rem;
  }
}
@media (max-width: 768px) {
  .other_posts_list li {
    font-size: 1.6rem;
  }
}
.other_posts_list li a {
  display: block;
  padding: 16px;
  position: relative;
  transition: all 0.3s;
}
.other_posts_list li a::after {
  content: "";
  display: block;
  background-image: url(../images/modules/arrow_black.svg);
  background-size: contain;
  background-repeat: no-repeat;
  width: 28px;
  height: 28px;
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
}
.other_posts_list li a:hover {
  background-color: rgb(217.8, 217.8, 217.8);
}

@media (min-width: 769px) {
  .filter_area .pc_flex {
    align-items: center;
  }
}
@media (min-width: 769px) {
  .filter_area h2 {
    margin-right: 1.5em;
    font-size: 2rem;
    font-weight: 500;
  }
}
@media (max-width: 768px) {
  .filter_area h2 {
    font-size: 1.8rem;
    margin-bottom: 1em;
  }
}

.event_list .col3 {
  background-color: #ffffff;
  border: solid 1px #b3b3b3;
  border-radius: 3px;
  overflow: hidden;
}
.event_list .post_block {
  width: 100%;
}
.event_list .post_block .thumbnail {
  border: none !important;
}
.event_list .post_block .post_title {
  padding-right: 16px;
  padding-left: 16px;
}
@media (min-width: 769px) {
  .event_list .post_block .post_title {
    font-size: 2.2rem;
  }
}
.event_list .post_block .post_description {
  padding-right: 16px;
  padding-left: 16px;
  padding-bottom: 16px;
}
@media (min-width: 769px) {
  .event_list .post_block .post_description {
    font-size: 1.8rem;
  }
}

.pagination {
  margin-top: 40px;
  text-align: center;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  justify-content: center;
}
.pagination .page-numbers {
  background-color: #f2f2f2;
  width: 24px;
  height: 24px;
  display: block;
  display: flex;
  justify-content: center;
  align-items: center;
}
.pagination .page-numbers.current {
  background-color: #666;
  color: #ffffff;
}
.pagination a.page-numbers {
  background-color: #f2f2f2;
}
.pagination a.page-numbers.current {
  background-color: #666;
}
.pagination a {
  color: #000000;
}
.block {
  background-color: #ffffff;
  padding: 48px 48px;
}
@media (max-width: 768px) {
  .block {
    padding: 20px 20px;
  }
}
.block.add_bgc {
  background-color: #f2f2f2;
}
.block + .block {
  margin-top: 32px;
}

.block_unit {
  background-color: #f2f2f2;
  padding: 40px 40px;
}
@media (max-width: 768px) {
  .block_unit {
    padding: 20px 20px;
  }
}
.block_unit.white_block {
  background-color: #ffffff;
  margin-bottom: 32px;
  display: block;
  z-index: 1;
}

@media (min-width: 769px) {
  .block_title {
    width: 340px;
  }
}

@media (min-width: 769px) {
  .block_content {
    width: calc(100% - 340px);
  }
}
.block_content h4 {
  font-size: 2.4rem;
  font-weight: 700;
  margin-bottom: 1em;
}
@media (max-width: 768px) {
  .block_content h4 {
    font-size: 1.8rem;
  }
}

@media (min-width: 769px) {
  .block_image {
    width: 52%;
  }
}
@media (max-width: 768px) {
  .block_image {
    margin-bottom: 24px;
  }
}

.block_text {
  position: relative;
}
@media (min-width: 769px) {
  .block_text {
    width: 44%;
  }
}
.block_text p {
  font-size: 2rem;
  line-height: 1.6;
  letter-spacing: 0.05em;
  margin-bottom: 1em;
}
@media (max-width: 768px) {
  .block_text p {
    font-size: 1.6rem;
  }
}
.block_text p span {
  font-weight: 600;
  font-size: 110%;
}

.post_block .col3 {
  width: 32%;
  margin-right: 2%;
  margin-bottom: 40px;
}
@media (max-width: 768px) {
  .post_block .col3 {
    width: 100%;
    margin-bottom: 32px;
  }
}
.post_block .col3:nth-child(3n+3) {
  margin-right: 0;
}
.post_block a .thumbnail img {
  transition: all 0.5s;
}
.post_block a:hover .thumbnail img {
  transform: scale(1.1);
}
.post_block p {
  font-size: 2.4rem;
  text-align: center;
  margin-top: 32px;
}
@media (max-width: 768px) {
  .post_block p {
    font-size: 1.6rem;
  }
}
.post_block .thumbnail {
  border: solid 1px #b3b3b3;
  border-radius: 3px;
  overflow: hidden;
}
.post_block .post_title {
  font-size: 2.4rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  margin-top: 16px;
  margin-bottom: 8px;
  line-height: 1.375;
}
@media (max-width: 768px) {
  .post_block .post_title {
    font-size: 2rem;
  }
}
.post_block .post_date {
  font-size: 2rem;
  letter-spacing: 0.03em;
  font-weight: 600;
  margin-bottom: 8px;
}
@media (max-width: 768px) {
  .post_block .post_date {
    font-size: 1.6rem;
  }
}
.post_block .post_description {
  font-size: 2rem;
  letter-spacing: 0.03em;
  font-weight: 400;
}
@media (max-width: 768px) {
  .post_block .post_description {
    font-size: 1.6rem;
  }
}

@media (min-width: 769px) {
  .section_head {
    position: relative;
  }
}
@media (min-width: 769px) {
  .section_head_image {
    width: 750px;
  }
}
@media (min-width: 769px) {
  .section_head_text {
    position: absolute;
    top: 56px;
    right: 0;
    width: 48%;
  }
}
@media (min-width: 769px) {
  .section_head_text .block_title {
    width: calc(100% - 840px);
  }
}
@media (min-width: 769px) {
  .section_head_text p {
    font-size: 2.2rem;
    padding-left: 120px;
  }
}
@media (max-width: 768px) {
  .section_head_text p {
    font-size: 1.6rem;
  }
}

.center_message {
  display: inline-block;
  text-align: left;
}
.center_message p {
  font-size: 2rem;
  line-height: 1.8;
  letter-spacing: 0.05em;
}
@media (max-width: 768px) {
  .center_message p {
    font-size: 1.6rem;
  }
}

p.primary {
  font-size: 2rem;
}
p.secondary {
  font-size: 2.2rem;
}

.heading_image {
  background-image: linear-gradient(to bottom, #fff 0%, #fff 50%, #f2f2f2 50%, #f2f2f2 100%);
  margin-top: 56px;
}

#loading {
  display: none;
  text-align: center;
  padding: 20px;
}

#loading span {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin: 0 4px;
  background: #333;
  border-radius: 50%;
  animation: bounce 0.6s infinite alternate;
}

#loading span:nth-child(2) {
  animation-delay: 0.2s;
}

#loading span:nth-child(3) {
  animation-delay: 0.4s;
}

@keyframes bounce {
  from {
    transform: translateY(0);
    opacity: 0.6;
  }
  to {
    transform: translateY(-8px);
    opacity: 1;
  }
}
@media (min-width: 769px) {
  .works .pc_col3 {
    margin-bottom: 32px;
  }
}
@media (min-width: 769px) {
  .works .pc_col2 {
    margin-bottom: 40px;
    margin-right: 4%;
  }
  .works .pc_col2:nth-child(2n+2) {
    margin-right: 0;
  }
}

.pdf_link::before {
  content: "";
  display: inline-block;
  background-image: url(../images/modules/icon_pdf.svg);
  background-size: contain;
  width: 24px;
  height: 24px;
  vertical-align: middle;
  margin-right: 0.5em;
}

.text_link {
  border-bottom: solid 1px #000000;
}
.text_link:hover {
  border-bottom: solid 1px transparent;
}

.pc_flex.add_gap {
  justify-content: center;
  gap: 8px;
}
@media (max-width: 768px) {
  .pc_flex.add_gap {
    text-align: center;
  }
  .pc_flex.add_gap .link + .link {
    margin-top: 8px;
  }
}

.line_link {
  display: flex;
  justify-content: center;
}
.line_link a {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  font-size: 2rem;
  background-color: #ffffff;
  width: -moz-fit-content;
  width: fit-content;
  padding: 8px 40px 8px 24px;
  border: solid 1px #999999;
  border-radius: 3px;
  transition: all 0.3s;
}
@media (max-width: 768px) {
  .line_link a {
    font-size: 1.6rem;
  }
}
.line_link a img {
  width: 48px;
  height: auto;
  margin-right: 1em;
}
@media (max-width: 768px) {
  .line_link a img {
    width: 32px;
  }
}
.line_link a:hover {
  border: solid 1px #000000;
}

.external a::after {
  content: "";
  display: inline-block;
  background-image: url(../images/modules/icon_external.svg);
  background-size: contain;
  width: 18px;
  height: 18px;
  vertical-align: top;
  margin-left: 0.25em;
}
@media (max-width: 768px) {
  .external a::after {
    vertical-align: sub;
  }
}

a.external::after {
  content: "";
  display: inline-block;
  background-image: url(../images/modules/icon_external.svg);
  background-size: contain;
  width: 22px;
  height: 22px;
  vertical-align: sub;
  margin-right: 0.25em;
}
@media (max-width: 768px) {
  a.external::after {
    width: 18px;
    height: 18px;
  }
}

section {
  padding-top: 80px;
  padding-bottom: 90px;
}
@media (max-width: 768px) {
  section {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}
section.reduce_pt {
  padding-top: 40px;
}
@media (max-width: 768px) {
  section.reduce_pt {
    padding-top: 24px;
  }
}
section.reduce_pb {
  padding-bottom: 40px;
}
@media (max-width: 768px) {
  section.reduce_pb {
    padding-bottom: 24px;
  }
}
section.remove_pt {
  padding-top: 0;
}
section.remove_pb {
  padding-bottom: 0;
}
section.first_section {
  padding-top: 24px;
  padding-bottom: 40px;
  position: relative;
  overflow: hidden;
}
@media (max-width: 768px) {
  section.first_section {
    padding-top: 24px;
    padding-bottom: 40px;
  }
}
@media (min-width: 769px) {
  section.first_section::after {
    content: "";
    display: block;
    background-image: url(../images/modules/brush_red.svg);
    background-size: contain;
    width: 416px;
    height: 266px;
    position: absolute;
    bottom: -5px;
    right: 50%;
    transform: translateX(780px);
  }
}
section.add_bruch {
  padding-top: 24px;
  padding-bottom: 200px;
  position: relative;
  overflow: hidden;
}
@media (max-width: 768px) {
  section.add_bruch {
    padding-top: 24px;
    padding-bottom: 40px;
  }
}
@media (min-width: 769px) {
  section.add_bruch::after {
    content: "";
    display: block;
    background-image: url(../images/modules/brush_red.svg);
    background-size: contain;
    width: 416px;
    height: 266px;
    position: absolute;
    bottom: -5px;
    right: 50%;
    transform: translateX(780px);
  }
}
section.add_bgc {
  background-color: #f2f2f2;
}

@media (min-width: 769px) {
  .section_header {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
  }
  .section_header h2 {
    margin-right: 80px;
  }
  .section_header p {
    font-size: 2rem;
  }
}
@media (min-width: 769px) and (max-width: 768px) {
  .section_header p {
    font-size: 1.6rem;
    margin-top: 32px;
  }
}

.section_description {
  font-size: 2rem;
}
@media (max-width: 768px) {
  .section_description {
    font-size: 1.6rem;
    margin-top: 24px;
  }
}

section.section_num {
  background-image: linear-gradient(to bottom, #f2f2f2 0%, #f2f2f2 40px, #ffffff 40px, #ffffff 100%);
}
@media (min-width: 769px) {
  section.section_num {
    padding-top: 100px;
  }
}
@media (max-width: 768px) {
  section.section_num {
    padding-top: 100px;
  }
}
section.section_num p {
  font-size: 2rem;
  margin-bottom: 1.5em;
}
@media (max-width: 768px) {
  section.section_num p {
    font-size: 1.6rem;
  }
}
section.section_num p span {
  font-weight: 600;
  font-size: 110%;
}
section.section_num p.remove_mb {
  margin-bottom: initial;
}
section.section_num p.excerpt_text {
  margin-bottom: 2em;
}
@media (min-width: 769px) {
  section.section_num p.excerpt_text {
    font-size: 2.2rem;
  }
}
@media (min-width: 769px) {
  section.section_num .description_text {
    width: 48%;
  }
}
@media (min-width: 769px) {
  section.section_num .description_text p {
    font-size: 2.2rem;
    padding-left: 120px;
  }
}
@media (max-width: 768px) {
  section.section_num .description_text p {
    font-size: 1.6rem;
    padding-left: 1em;
    padding-right: 1em;
  }
}

section.section_num.add_bgc {
  background-image: linear-gradient(to bottom, #ffffff 0%, #ffffff 40px, #f2f2f2 40px, #f2f2f2 100%);
}

.section_num {
  counter-increment: my-counter;
  position: relative;
}
.section_num::before {
  content: counter(my-counter);
  font-size: 2.8rem;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-style: italic;
  color: #db0012;
  font-weight: bold;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 0;
  width: 80px;
  height: 80px;
  line-height: 80px;
  background-color: #fff;
  border-radius: 50%;
  text-align: center;
}

section.add_brush_bg > .inner {
  position: relative;
}
section.add_brush_bg > .inner::after {
  content: "";
  display: block;
  background-image: url(../images/modules/brush_white_large.svg);
  background-size: contain;
  background-repeat: no-repeat;
  width: 548px;
  height: 364px;
  position: absolute;
  top: -165px;
  top: -140px;
  right: -190px;
}
@media (max-width: 768px) {
  section.add_brush_bg > .inner::after {
    width: 276px;
    height: 182px;
    top: -80px;
    right: -120px;
  }
}
/*# sourceMappingURL=styles.css.map */
