/* ______________________________________________________________ 共通 */

:root {
  --white: #ffffff;
  --primary: #22588A;
  --color-pale: #EFF5F9;
  --border-radius: 1rem;
  --color-secondary: #51AAEB;
  --yellow: #FFF64D;
  --red: #ED2D5E;
  --deeppink: #ED2C5D;
}

body {
  line-height: 1.6 !important;
}

mark {
  font-style: normal;
}

img {
  height: auto;
}

a:hover img {
  opacity: 0.8;
}

section+section,
section+.banner_area+section {
  padding-top: 6rem;
}

@media only screen and (max-width: 768px) {
  section+section,
  section+.banner_area+section {
    padding-top: 4rem;
  }
}

section .inner,
.banner_area .inner {
  width: min(100% - 20px, 1200px);
  margin-inline: auto;
}

section .wide_inner {
  width: min(100% - 20px, 1920px);
  margin-inline: auto;
}

section.inner:last-child {
  padding-bottom: 6rem;
}

mark.marker_y {
  background-color: initial;
  color: inherit;
  font-style: initial;
  font-weight: inherit;
}

header .inner {
  justify-content: space-between;
  flex-wrap: nowrap !important;
  gap: 2rem;
}

header .logo {
  display: flex;
  align-items: center;
  height: 100%;
}

header .c-cv_btn {
  margin-inline: initial;
  max-width: 20rem;
  font-size: clamp(1.2rem, 4vw, 1.6rem);
  padding-block: 1rem;
  line-height: 1.6;
  white-space: nowrap;
  padding-inline: 2rem;
}

.is_sp {
  display: none;
}

@media only screen and (max-width: 768px) {
  .is_sp {
    display: block;
  }
}

.is_pc {
  display: block;
}

@media only screen and (max-width: 768px) {
  .is_pc {
    display: none;
  }
}

.deco_balloon_ttl {
  color: #fff;
  background-color: #325FBA;
  display: inline-block;
  padding: 0.5em 1rem;
  border-radius: 100px;
  padding-inline: 3rem;
  position: relative;
  margin: 0 auto 3rem;
}

.deco_balloon_ttl:after {
  margin-inline: auto;
  left: 0;
  right: 0;
  position: absolute;
  display: inline-block;
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-right: 10px solid transparent;
  border-left: 10px solid transparent;
  border-top: 15px solid #325FBA;
  border-bottom: 0;
  bottom: -12px;
}

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0;
}

.icon {
  position: relative;
  padding-left: 3rem;
}

.icon:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 24px;
  height: 24px;
  display: inline-block;
}

.icon_happy:before {
  background-image: url(/assets/img/course/icon_happy.svg);
}

.icon_unhappy:before {
  background-image: url(/assets/img/course/icon_unhappy.svg);
}

.marker_y {
  position: relative;
  display: inline;
  background-position: left -100% center;
  padding-bottom: 1.1em;
  background-size: 200% 0.4em;
  background-repeat: repeat-x;
  background-image: -webkit-gradient(linear, left top, right top, color-stop(50%, rgba(255, 255, 255, 0)), color-stop(50%, var(--yellow)));
  background-image: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 50%, var(--yellow) 50%);
  background-image: linear-gradient(to right, rgba(255, 255, 255, 0) 50%, var(--yellow) 50%);
  -webkit-transition: background-position 2s ease 0.1s;
  transition: background-position 2s ease 0.1s;
}

.center {
  text-align: center;
}

.bold {
  font-weight: bold;
}

.yellow {
  color: var(--yellow);
}

.red {
  color: var(--red);
}

.color-secondary {
  color: var(--color-secondary);
}

.icon-noto {
  position: relative;
}

.icon-noto:after {
  content: '※';
  font-size: 12px;
  font-weight: normal;
  vertical-align: top;
}

.icon-noto.noto-1:after {
  content: '※1';
}

.icon-noto.noto-2:after {
  content: '※2';
}

.icon-noto.noto-3:after {
  content: '※3';
}

.has-check,
.has-close {
  position: relative;
  padding-left: 2.4rem;
}

.has-check:before {
  content: "";
  display: inline-block;
  position: absolute;
  border-bottom: 4px solid #50AAEB;
  border-left: 4px solid #50AAEB;
  height: 9px;
  width: 15px;
  -webkit-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  transform: rotate(-45deg);
  top: 0.5rem;
  left: 0;
  margin-block: auto;
}

.col-flex {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
  -ms-flex-pack: center;
  justify-content: center;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.col-flex .col-3 {
  width: calc(100% / 3 - 20px);
}

.mt-0 {
  margin-top: 0;
}

.mt-1 {
  margin-top: 4px;
}

.mt-2 {
  margin-top: 8px;
}

.mt-4 {
  margin-top: 16px;
}

.mt-8 {
  margin-top: 32px;
}

.mb-2 {
  margin-bottom: 8px;
}

.mb-4 {
  margin-bottom: 16px;
}

.mb-5 {
  margin-bottom: 20px;
}

.mb-6 {
  margin-bottom: 24px;
}

.mb-8 {
  margin-bottom: 32px;
}

.mb-10 {
  margin-bottom: 46px;
}

.mb-14 {
  margin-bottom: 56px;
}

.bg_pale {
  background-color: var(--color-pale);
}

.section_ttl_wrap {
  padding-bottom: 23px;
}

.section_ttl {
  font-weight: bold;
  font-size: clamp(2.4rem, 4vw, 3.2rem);
  text-align: center;
  margin-bottom: 3rem;
}

.section_ttl .smaller,
.section_ttlsub .smaller {
  font-size: clamp(1.4rem, 4vw, 1.8rem);
  display: block;
}

.section_ttlsub {
  font-weight: bold;
  font-size: clamp(2rem, 4vw, 2.4rem);
  text-align: center;
  margin-block: 4rem 3rem;
}

.section_ttl .larger,
.section_ttlsub .larger {
  font-size: 1.4em;
}

.c-cv_btn {
  background-color: var(--yellow);
  border: solid 2px #325FBA;
  color: #325FBA;
  border-radius: 100px;
  text-align: center;
  font-weight: bold;
  width: 95%;
  max-width: 500px;
  display: block;
  padding: 2rem 1rem;
  font-size: 2rem;
  -webkit-box-shadow: 0 3px 3px #00000024;
  box-shadow: 0 3px 3px #00000024;
  margin: 0 auto;
  line-height: 1;
  cursor: pointer;
}

.c-cv_btn__txt {
  position: relative;
  display: inline-block;
  margin: 0 auto clamp(1px, 1vw, 8px);
  font-size: 1.5rem;
  text-align: center;
  font-weight: bold;
}

.c-cv_btn__txt::before,
.c-cv_btn__txt::after {
  position: absolute;
  bottom: 0;
  content: '';
  width: 2px;
  height: 90%;
  background-color: var(--primary);
}

.c-cv_btn__txt::before {
  right: -15px;
  transform: rotate(45deg);
}

.c-cv_btn__txt::after {
  left: -15px;
  transform: rotate(-45deg);
}

.c-note {
  margin-top: 1.5rem;
  font-size: clamp(1.2rem, 4vw, 1.4rem);
}

.has-list-icon {
  padding-left: 1.2rem;
  position: relative;
}

.has-list-icon:before {
  content: '';
  width: 0.5rem;
  height: 0.5rem;
  position: absolute;
  left: 0;
  top: 1rem;
  display: inline-block;
  background-color: var(--primary);
  border-radius: 100%;
}

.has-list-icon:not(:last-child) {
  margin-bottom: 1.2rem;
}


/* ______________________________________________________________ banner_area */

.banner_area {
  padding-block: 3rem 0;
}

.banner_area img {
  width: min(100rem, 100%);
}

.banner_area .campaign_banner_area {
  margin: 0px auto 20px;
  max-width: 1000px;
}

@media only screen and (max-width: 768px) {
  .banner_area .campaign_banner_area {
    margin: 0px auto 10px;
    width: calc(100% - 20px);
  }
}


/* ______________________________________________________________ cv */

.courses_support_cv_section_btn {
  background-color: #0688D7;
  box-shadow: 0 -50px 100px #0150d69e inset;
  padding: 0;
}

.courses_support_cv_section_btn .inner_area {
  position: relative;
  margin-inline: auto;
  width: min(100% - 40px, 65rem);
  gap: 2rem;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  margin-top: 2rem;
}

.courses_support_cv_section_btn .inner_area img {
  max-width: 18rem;
  margin-top: -2rem;
}

.courses_support_cv_section_btn .inner_area .message {
  color: var(--white);
  padding-block: 2.4rem;
}

.courses_support_cv_section_btn .inner_area .title {
  font-size: clamp(2rem, 4vw, 2.4rem);
  line-height: 1.6em;
  font-weight: bold;
  margin-bottom: 6px;
}

.courses_support_cv_section_btn .inner_area .text {
  font-size: 1.4rem;
  line-height: 1.6;
  margin-bottom: 1rem;
}

.courses_support_cv_section_btn .button_area {
  background: #015FC2;
  text-align: center;
  padding-block: 1.2rem;
}

.courses_support_cv_section_btn .button_area ul {
  margin-inline: auto;
  margin-bottom: 1rem;
}

.courses_support_cv_section_btn .button_area ul li {
  text-align: center;
  color: var(--white);
}

.courses_support_cv_section_btn .c-cv_btn__txt:before,
.courses_support_cv_section_btn .c-cv_btn__txt:after {
  background-color: var(--white);
}

@media only screen and (max-width: 767px) {
  .courses_support_cv_section_btn .inner_area {
    flex-direction: column-reverse;
    gap: 1rem;
  }
}


/* ______________________________________________________________ fv */

.fv_section {
  background: linear-gradient(180deg, rgba(6, 136, 215, 1) 0%, rgba(1, 83, 214, 1) 100%);
  color: var(--white);
  padding-bottom: 0;
  overflow: hidden;
}

.fv_section>.inner {
  display: grid;
  grid-template-columns: 45% 55%;
  width: min(100% - 20px, 1240px);
}

.fv_section .fv_lead,
.fv_section .fv_catch,
.fv_section .fv_features,
.fv_section .c-cv_area {
  grid-column: 1 / 2;
}

.fv_section .fv_lead,
.fv_section .fv_catch,
.fv_section .fv_features,
.fv_section .c-cv_area,
.fv_section .note {
  z-index: 1;
}

.fv_section .fv_lead {
  grid-row: 1 / 2;
}

.fv_section .fv_catch {
  grid-row: 2 / 3;
}

.fv_section .c-cv_area {
  grid-row: 3 / 4;
}

.fv_section .fv_features {
  grid-row: 4 / 5;
}

.fv_section .note {
  grid-column: 1 / 3;
  grid-row: 5 / 6;
  z-index: 1;
}

.fv_section .kv {
  grid-column: 2 / 3;
  grid-row: 1 / 6;
}

.fv_section .fv_catch_wrap {
  padding-block: 3rem 1rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 2rem;
}

.fv_section .fv_lead {
  border: 1px solid;
  border-radius: 10rem;
  font-size: clamp(1.4rem, 2vw, 1.8rem);
  padding: 0.6rem 2rem;
  margin-inline: auto;
  margin-block: 2rem 1rem;
  height: fit-content;
  width: 100%;
}

.fv_section .ttl {
  font-size: clamp(3rem, 3vw, 4rem);
  line-height: 1.8;
  padding-block: 1rem;
  white-space: nowrap;
  margin-left: 1rem;
}

.fv_section .is_tab {
  display: none;
}

.fv_section .ttl .smaller {
  font-size: 0.85em;
  margin-top: 1rem;
}

.fv_section .ttl .is_pc {
  display: inline-block;
}

.fv_section .ttl .marker {
  display: inline;
  position: relative;
  z-index: 1;
  margin-right: 1.25rem;
}

.fv_section .ttl .marker:before {
  content: '';
  width: calc(100% + 1.5rem);
  height: 110%;
  display: inline-block;
  position: absolute;
  background: linear-gradient(90deg, rgba(0, 191, 184, 1) 0%, rgba(9, 148, 206, 1) 100%);
  margin-inline: auto;
  z-index: -1;
  top: 0rem;
  right: 0;
  left: -0.25em;
}

.fv_section .ttl .smaller {
  font-size: 0.9em;
  display: inline-block;
  margin-top: 1rem;
}

.fv_section .c-cv_area {
  margin-left: 0;
  margin-right: auto;
  width: 100%;
  max-width: 45rem;
  margin-block: 1.5rem 3rem;
}

.fv_section .c-cv_area .c-cv_btn {
  font-size: clamp(2rem, 2rem, 2.4rem);
  width: 100%;
}

.fv_section .c-cv_area .c-cv_btn__txt {
  font-size: 1.8rem;
}

.fv_section .fv_features {
  margin-bottom: 1rem;
  margin-left: 0;
  margin-right: auto;
}

.fv_section .c-cv_btn__txt::before,
.fv_section .c-cv_btn__txt::after {
  background: var(--white);
}

.fv_section .kv {
  margin-bottom: 0;
  margin-top: auto;
  position: relative;
  height: 100%;
}

.fv_section .kv img {
  height: min(84rem, 67vw);
  position: absolute;
  width: auto;
  right: 0;
  bottom: 0;
  top: -10%;
  margin: auto;
  z-index: 0;
}

.fv_section .note {
  font-size: clamp(0.8rem, 4vw, 1.1rem);
  margin-top: auto;
  margin-bottom: 0;
  padding-block: 1rem;
}

@media only screen and (max-width: 1200px) {
  .fv_section .ttl span:nth-of-type(3),
  .fv_section .ttl .is_pc.smaller {
    display: none;
  }
  .fv_section .is_tab {
    display: inline-block;
  }
  .fv_section .ttl {
    padding-block: 0.5rem 2rem;
  }
  .fv_section .kv img {
    object-fit: cover;
    object-position: right;
  }
}

@media only screen and (max-width: 900px) {
  .fv_section .fv_lead {
    grid-row: 1 / 2;
    grid-column: 1 / 3;
  }
  .fv_section .fv_catch {
    grid-row: 2 / 3;
  }
  .fv_section .fv_features {
    grid-row: 4 / 5;
  }
  .fv_section .c-cv_area {
    grid-row: 3 / 4;
  }
  .fv_section .note {
    grid-row: 5 / 6;
  }
  .fv_section .kv {
    grid-row: 1 / 6;
  }
  .fv_section .kv img {}
}

@media only screen and (max-width: 768px) {
  .fv_section>.inner {
    display: flex;
    flex-direction: column;
    width: min(94%, 768px);
  }
  .fv_section .fv_lead {
    order: 1;
  }
  .fv_section .fv_catch {
    order: 2;
  }
  .fv_section .kv {
    order: 3;
    width: calc(106% + 0.1rem);
    margin-left: calc(-3% - 0.1rem);
  }
  .fv_section .c-cv_area {
    order: 4;
    margin-inline: auto;
    margin-block: -1rem 3rem;
    max-width: 100%;
  }
  .fv_section .c-cv_area .c-cv_btn {
    width: 100%;
    max-width: 100%;
  }
  .fv_section .fv_features {
    order: 5;
    margin-inline: auto;
    width: min(100%, 50rem);
  }
  .fv_section .note {
    order: 6;
  }
  .fv_section .ttl {
    font-size: clamp(2rem, 6vw, 6rem);
  }
  .fv_section .fv_lead {
    height: inherit;
    width: 100%;
    margin-block: 1rem 1.2rem;
  }
  .fv_section .kv img {
    position: initial;
    width: 100%;
    object-fit: contain;
    height: auto;
    margin-top: -35%;
  }
  .fv_section .c-cv_area .c-cv_btn__txt {
    font-size: 1.4rem;
  }
}


/* ______________________________________________________________ 選ばれる３つの理由 */

.plan_wrapper {
  padding-bottom: 3rem;
}

.plan_wrapper .plan_item {
  display: block;
  position: relative;
}

.plan_wrapper .plan_item .img_area {
  -webkit-box-flex: 0;
  -ms-flex: none;
  flex: none;
  width: 50%;
}

.plan_wrapper .plan_item .img_area img {
  object-fit: cover;
  height: 100%;
}

.plan_wrapper .plan_item .section_ttlsub+.col-flex {
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;
}

.plan_wrapper .plan_item .text_area {
  padding-inline: 2rem;
  z-index: 1;
}

.plan_wrapper .adjust_wrap {
  position: absolute;
  right: 0;
  left: 50%;
  margin: 1em auto 0;
}

.plan_wrapper .plan_item:nth-child(odd) .section_ttlsub+.col-flex .adjust_wrap {
  right: unset;
  left: 0;
}

.plan_wrapper .plan_item .text_area.lt0 {
  -webkit-margin-start: 0px;
  margin-inline-start: 0px;
}

.plan_wrapper .plan_item .text_area h3 {
  white-space: nowrap;
  -webkit-box-decoration-break: clone;
  line-height: 2.1em;
  display: inline;
  letter-spacing: 0.06em;
  font-size: 3.2rem;
  font-weight: bold;
  padding: 0.3em 0.6em;
  color: #fff;
  background-color: #22588A;
  background-image: url(/assets/img/common/back_solid.webp);
}

@supports (background-image: url(/assets/img/common/back_solid.avif)) {
  .plan_wrapper .plan_item .text_area h3 {
    background-image: url(/assets/img/common/back_solid.avif);
  }
}

.plan_wrapper .plan_item .text_area h3 span {
  color: #FFF64D;
}

.plan_wrapper .plan_item .text_area .text {
  margin-top: 11em;
  font-size: 1.6rem;
  width: min(100%, 620px);
}

.plan_wrapper .plan_item .text_area .text span {
  display: inline-block;
  position: relative;
  font-weight: bold;
  display: inline;
  background-position: left -100% center;
  padding-bottom: 1em;
  background-size: 200% 0.4em;
  background-repeat: repeat-x;
  background-image: -webkit-gradient(linear, left top, right top, color-stop(50%, rgba(255, 255, 255, 0)), color-stop(50%, #FFF64D));
  background-image: -o-linear-gradient(left, rgba(255, 255, 255, 0) 50%, #FFF64D 50%);
  background-image: linear-gradient(to right, rgba(255, 255, 255, 0) 50%, #FFF64D 50%);
  -webkit-transition: background-position 2s ease 0.1s;
  -o-transition: background-position 2s ease 0.1s;
  transition: background-position 2s ease 0.1s;
}

.plan_wrapper .plan_item:nth-child(odd) .section_ttlsub+.col-flex {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
  -ms-flex-direction: row-reverse;
  flex-direction: row-reverse;
}

@media only screen and (max-width: 1200px) {
  .plan_wrapper .adjust_wrap {
    right: 0;
    left: auto;
  }
}

@media only screen and (max-width: 768px) {
  .plan_wrapper .plan_item {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
  }
  .plan_wrapper .plan_item .img_area {
    width: 100%;
    padding: 0;
  }
  .plan_wrapper .plan_item .img_area img {
    height: 30rem;
    object-fit: cover;
    object-position: top;
  }
  .plan_wrapper .plan_item:nth-of-type(3) .img_area img {
    object-position: center;
  }
  .plan_wrapper .plan_item .text_area {
    padding-inline: 0;
  }
  .plan_wrapper .adjust_wrap {
    position: initial;
  }
  .plan_wrapper .plan_item .text_area h3 {
    white-space: initial;
    font-size: 2.1rem;
    position: relative;
    top: -30px;
    line-height: 2.2em;
  }
  .plan_wrapper .plan_item:nth-child(even) .text_area h3 {
    margin-left: 0;
  }
  .plan_wrapper .plan_item .text_area .text {
    margin-top: -1em;
  }
  .plan_wrapper .plan_item .section_ttlsub+.col-flex {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
  }
}

@media only screen and (max-width: 413px) {
  .plan_wrapper .plan_item .text_area h3 {
    font-size: clamp(1.7rem, 4.8vw, 2.4rem);
  }
}


/* ______________________________________________________________ なぜ、忍者CODEで「未経験からITキャリアが実現できるのか？ */

.benefits {
  margin-bottom: 1.2em;
}

.benefits>.inner {
  padding: 0 0 2.4em;
  width: min(100%, 768px);
}

.benefits .txt {
  font-size: clamp(1.6rem, 4vw, 2.5rem);
  text-decoration: underline;
  text-decoration-style: dashed;
  text-decoration-thickness: 0.2rem;
  text-underline-offset: 0.75rem;
  text-decoration-color: var(--color-secondary);
  line-height: 2;
}

.benefits_belt {
  padding: clamp(2.4rem, 3vw, 3.6rem) 0;
  background: linear-gradient(180deg, rgba(6, 136, 215, 1) 0%, rgba(1, 83, 214, 1) 100%);
  position: relative;
}

.benefits_belt:after {
  content: '';
  width: 2.4em;
  height: 2.4em;
  display: block;
  background: url(/assets/img/lp/programming_01/icon-arrow.png) center / contain no-repeat;
  position: absolute;
  bottom: -1.2em;
  right: 0;
  left: 0;
  margin-inline: auto;
}

.benefits_belt:before {
  content: '';
  background: #0253d6;
  height: 5rem;
  width: 6rem;
  clip-path: polygon(100% 0%, 0% 0%, 50% 50%);
  position: absolute;
  bottom: -4.5rem;
  right: 0;
  left: 0;
  margin-inline: auto;
}

.benefits_belt .ttl {
  color: var(--white);
  font-size: clamp(2rem, 3vw, 3.2rem);
  line-height: 2.2em;
}

.benefits_belt .ttl .marker {
  position: relative;
  z-index: 1;
}

.benefits_belt .ttl .marker {
  display: inline;
  color: var(--color-white);
  font-weight: bold;
  padding: 0.1em 0.2em;
  background: linear-gradient(90deg, rgba(0, 191, 184, 1) 0%, rgba(9, 148, 206, 1) 100%);
  line-height: 2em;
}


/* ______________________________________________________________ 選べる３つのプラン */

.plan-overview table {
  table-layout: fixed;
}

.plan-overview colgroup .col1 {
  width: clamp(12rem, 24vw, 24rem);
}

.plan-overview thead th[class^="col-plan-"] {
  color: var(--white);
  text-align: center;
  vertical-align: middle;
  font-weight: bold;
  padding: 1rem;
  border-radius: 0.8rem 0.8rem 0 0;
  height: clamp(7rem, 13vw, 12rem);
  z-index: 1;
  position: relative;
}

.plan-overview thead th[class^="col-plan-"]:before {
  content: '';
  background: #000000;
  height: 90%;
  width: 100%;
  clip-path: polygon(100% 100%, 100% 0, 0 100%);
  position: absolute;
  bottom: 0;
  right: 0;
  opacity: 0.125;
  mix-blend-mode: overlay;
  z-index: -1;
}

.plan-overview thead .col-plan-a {
  background-color: #91CC40;
}

.plan-overview thead .col-plan-b {
  background-color: #3FB1CC;
}

.plan-overview thead .col-plan-c {
  background-color: #3F80CC;
}

.plan-overview thead .plan-lead {
  font-size: clamp(1.2rem, 3vw, 1.4rem);
}

.plan-overview thead .plan-ttl {
  display: block;
  line-height: 1.4;
  font-size: clamp(1.5rem, 4vw, 2rem);
}

.plan-overview tbody tr:not(:first-child) {
  border-top: 1px solid #E4E9ED;
}

.plan-overview tbody th,
.plan-overview tbody td {
  padding: 2rem 1rem;
}

.plan-overview tbody th {
  background-color: #464646;
  color: var(--white);
  text-align: left;
  font-size: clamp(1.2rem, 3vw, 1.4rem);
  font-weight: bold;
}

.plan-overview tbody tr:first-child th {
  border-radius: 0.8rem 0 0 0;
}

.plan-overview tbody tr:last-child th {
  border-radius: 0 0 0 0.8rem;
}

.plan-overview tbody td {
  text-align: center;
  vertical-align: middle;
}

.plan-overview tbody td:nth-child(even) {
  background-color: var(--color-pale);
}

.plan-overview tbody td:has(.list) {
  vertical-align: top;
  padding-inline: 2%;
  font-size: clamp(1.4rem, 3vw, 1.6rem);
}

.plan-overview tbody td .list li {
  text-align: left;
}

.plan-overview tbody td .list li:not(:first-child) {
  margin-top: 1.8rem;
}

.plan-overview tbody td img.plan-overview-icon {
  display: block;
  width: auto;
  margin-inline: auto;
}

.plan-overview tbody td:has(.plan-overview-icon) span {
  margin-top: 1rem;
  font-size: clamp(1.2rem, 3vw, 1.4rem);
}

@media only screen and (max-width: 1080px) {
  .plan-overview .scroll {
    overflow-x: scroll;
    width: 100%;
    padding-right: 4rem;
  }
  .plan-overview table {
    min-width: 80rem;
    width: 160%;
  }
  .plan-overview tbody th {
    position: sticky;
    top: 0;
    left: 0;
    z-index: 1;
  }
  .plan-overview tbody tr:first-child th,
  .plan-overview tbody tr:last-child th {
    border-radius: 0;
  }
}

@media only screen and (max-width: 768px) {
  .plan-overview colgroup .col1 {
    width: 10rem;
  }
  .plan-overview tbody td {
    padding: 1.5rem;
  }
  .plan-overview tbody th {
    padding: 1.5rem 0.5rem;
  }
  .plan-overview tbody td:has(.list) {
    padding-inline: 1.5rem;
  }
  .plan-overview tbody td .list li.has-check {
    padding-left: 1.8rem;
  }
  .plan-overview tbody td .list li.has-check:before {
    top: 0.8rem;
    border-width: 2.5px;
    width: 12px;
    height: 7px;
  }
}


/* ______________________________________________________________ 未経験からITキャリアを実現 */

.careerstart>.inner:has(h2) p {
  font-size: 1.4rem;
}

.careerstart_panels {
  flex-wrap: nowrap;
  gap: 1rem;
}

@media only screen and (max-width: 1200px) {
  .careerstart_panels {
    flex-wrap: wrap;
  }
}

.careerstart_panel {
  max-width: 500px;
  width: 100%;
  border: 1px solid #CFE1E8;
  border-radius: 10px;
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 100px 20px 1fr;
  grid-template-columns: 100px 1fr;
  gap: 0 20px;
  -webkit-box-align: stretch;
  -ms-flex-align: stretch;
  align-items: stretch;
  justify-items: start;
  line-height: 1.4;
  overflow: hidden;
  background-color: var(--white);
}

@media only screen and (max-width: 1240px) {
  .careerstart_panel {
    max-width: 100%;
    width: calc(50% - 1rem);
  }
}

.cs_thumbnail {
  position: relative;
  -ms-grid-column: 1;
  -ms-grid-column-span: 1;
  grid-column: 1/2;
  -ms-grid-row: 1;
  -ms-grid-row-span: 1;
  grid-row: 1/2;
  padding: 2rem 1rem 1rem 1rem;
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
}

.cs_thumbnail .icon_badge {
  font-size: 11px;
  position: absolute;
  top: 0.5rem;
  right: -2rem;
  line-height: 1.2;
}

.cs_thumbnail .icon_badge .larger {
  font-size: 1.2em;
}

.cs_header {
  font-size: 12px;
  -ms-grid-column: 2;
  -ms-grid-column-span: 1;
  grid-column: 2/3;
  -ms-grid-row: 1;
  -ms-grid-row-span: 1;
  grid-row: 1/2;
  padding: 2rem 1rem 1rem;
}

.cs_header .larger {
  font-size: 1.2em;
  padding: 0 .25rem;
}

.cs_header .ttl {
  font-size: clamp(1.3rem, 4vw, 1.5rem);
  margin-bottom: 0.25rem;
}

.icon_badge {
  background-color: #FFF64D;
  width: 50px;
  height: 50px;
  border-radius: 100px;
  text-align: center;
  padding-top: 1rem;
}

.cs_body {
  -ms-grid-column: 1;
  -ms-grid-column-span: 2;
  grid-column: 1/3;
  -ms-grid-row: 2;
  -ms-grid-row-span: 1;
  grid-row: 2/3;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  width: 100%;
  line-height: 1.2;
}

.cs_body dt {
  margin-bottom: 0.5rem;
  font-size: 1.2rem;
}

.cs_body dd .smaller {
  font-size: clamp(1rem, 4vw, 1.2rem);
  line-height: 1.2;
  display: inline-block;
}

.cs_body_before {
  background-color: #EFF5F9;
  width: 50%;
  padding: 1rem 1rem 1.5rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.cs_body_after {
  background-color: #22588A;
  width: 50%;
  color: #fff;
  padding: 1rem 2rem 1.5rem 3rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.cs_body_after mark {
  background: none;
  font-style: normal;
  color: #fff64c;
  font-size: clamp(1.4rem, 3vw, 1.6rem);
  display: inline-block;
  line-height: 1.6;
}

.cs_body_after:before {
  content: '';
  background: url(/assets/img/top/icon_top_arrow.svg) center / contain no-repeat;
  top: 50%;
  -webkit-transform: translateY(-50%) translateX(0);
  -ms-transform: translateY(-50%) translateX(0);
  transform: translateY(-50%) translateX(0);
}

@media only screen and (max-width: 768px) {
  .careerstart_panel {
    width: 100%;
  }
}


/* ______________________________________________________________ 忍者CODEだからわかる1人ひとりの学習の「壁」 */

.state .col-flex {
  gap: 1%;
  flex-wrap: nowrap;
  max-width: 100rem;
  margin-inline: auto;
}

.state_item {
  width: calc(100% / 3);
}

.state_item .fukidashi {
  background-color: #51AAEB;
  border-radius: 0.8rem;
  color: var(--white);
  font-weight: bold;
  padding: 2rem;
  position: relative;
}

.state_item .fukidashi:before,
.state_item .fukidashi:after {
  content: '';
  display: inline-block;
  position: absolute;
  right: auto;
  background-color: #51AAEB;
}

.state_item .fukidashi:before {
  width: 3.5rem;
  height: 2.2rem;
  border-radius: 100%;
  bottom: -3rem;
  left: calc(50% + 7rem);
}

.state_item .fukidashi:after {
  width: 2rem;
  height: 1.3rem;
  border-radius: 100%;
  left: calc(50% + 5rem);
  bottom: -4rem;
}

.state_item .img_area img {
  height: 13rem;
  object-fit: contain;
  margin-top: -1rem;
  z-index: 1;
  position: relative;
}

@media only screen and (max-width: 768px) {
  .state .col-flex {
    flex-wrap: wrap;
    gap: 1.5rem;
  }
  .state_item {
    width: 100%;
  }
}


/* ______________________________________________________________ 現役エンジニアが1対1であなたをメンタリング */

.mentortable .section_ttl+div>p {
  font-size: 1.4rem;
}

.mentortable_wrap {
  width: min(80rem, 100%);
  flex-wrap: nowrap;
  margin-inline: auto;
  gap: 1rem;
}

.mentortable_panel {
  border: 1px solid #CFE1E8;
  margin: 0 auto;
}

.mentortable_wrap .mt_header {
  position: relative;
}

.mentortable_wrap .mt_header:after {
  content: '';
  display: block;
  width: 100%;
  height: 100px;
  background: rgb(0, 0, 0);
  background: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.8968181022408963)), to(rgba(0, 0, 0, 0)));
  background: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.8968181022408963) 0%, rgba(0, 0, 0, 0) 100%);
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.8968181022408963) 0%, rgba(0, 0, 0, 0) 100%);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#000000", endColorstr="#000000", GradientType=1);
  position: absolute;
  bottom: 0;
  z-index: 0;
}

.mentortable_wrap .mt_name {
  position: absolute;
  bottom: 0;
  color: #fff;
  z-index: 1;
  padding: 0 0 1.8rem 1.5rem;
}

.mentortable_wrap .mt_info {
  font-size: 14px;
  padding: 1rem;
}

.mentortable_wrap .mt_item {
  background-color: #EFF5F9;
  color: #004BB1;
  display: inline-block;
  padding: 0.6rem 0.8rem;
  line-height: 1.4;
  margin: 0rem 0.25rem 0.8rem 0;
}

.mentortable_wrap img {
  height: auto;
}

rt {
  text-align: left;
  text-transform: capitalize;
  font-weight: normal;
  font-size: 12px;
  margin-top: 2.4rem;
}

@media only screen and (max-width: 768px) {
  .mentortable_wrap {
    flex-wrap: wrap;
  }
}


/* ______________________________________________________________ 受講生の方の声 */

.section_reviews_wrap {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin: 2rem auto 0;
}

.section_reviews_wrap li {
  width: 32%;
  border: solid 1px;
  padding: 2rem 2rem 3rem;
  border-color: #0688D7;
  background-color: #fff;
  margin-bottom: 2rem;
}

.reviews_name_area {
  display: flex;
  align-items: center;
}

.section_reviews_wrap img {
  max-width: 60px;
}

@media only screen and (max-width: 768px) {
  .section_reviews_wrap li {
    width: 100%;
  }
}


/* ______________________________________________________________ 料金一覧 */

.pricingtable_wrap {
  gap: 1rem;
  flex-wrap: nowrap;
  margin-top: 6rem;
}

.pricingtable_panel {
  width: calc(100% / 3);
  line-height: 1.4;
  background-color: var(--white);
  border: 1px solid #CFE1E8;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  position: relative;
}

.pricingtable_panel .pt_header_ttl {
  color: #fff;
  text-align: center;
  font-weight: bold;
  padding: 2.5rem 1rem;
  font-size: 18px;
}

.pricingtable_panel:nth-child(1) .pt_header_ttl {
  background-color: #2C9DED;
}

.pricingtable_panel:nth-child(2) .pt_header_ttl {
  background-color: #22588A;
}

.pricingtable_panel:nth-child(3) .pt_header_ttl {
  background-color: #004BB1;
}

.pricingtable_panel .pt_price {
  padding: 1rem 2rem 1rem 2rem;
  min-height: 80px;
  -webkit-box-sizing: content-box;
  box-sizing: content-box;
  border-bottom: 1px solid #CFE1E8;
  position: relative;
}

.pricingtable_panel .pt_price_item {
  font-size: 32px;
  margin-bottom: 0.6rem;
  position: relative;
}

.pricingtable_panel .deco_balloon_square {
  font-size: 1.6rem;
  background-color: #ED2D5E;
  position: relative;
  color: #fff;
  font-weight: bold;
  padding: 0.6em 1em;
  border-radius: 4px;
  margin-right: 20px;
  display: inline-block;
  position: absolute;
  top: -45px;
  margin: 0 auto;
  left: 0;
  right: 0;
  width: fit-content;
}

.pricingtable_panel .deco_balloon_square:after {
  content: "";
  position: absolute;
  display: block;
  width: 0;
  height: 0;
  transform: rotate(90deg);
  bottom: -2rem;
  top: initial;
  margin: 0 auto;
  right: 0;
  left: 50%;
  margin-left: -11px;
  border: 11px solid transparent;
  border-left: 14px solid #ED2D5E;
}

.pricingtable_panel .pt_footer {
  text-align: right;
}

.pricingtable_panel .pt_price_item .smaller {
  font-size: 0.45em;
}

.pricingtable_panel .pt_price .col-flex {
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
}

.pricingtable_panel .pt_feature {
  padding: 1.2rem 1rem 1.2rem 2rem;
}

.pricingtable_panel .pt_feature:not(:last-child) {
  border-bottom: 1px solid #CFE1E8;
}

.pricingtable_panel .pt_feature .has-close:before,
.pricingtable_panel .pt_feature .has-close:after {
  background-color: #C2D1DF;
}

.pricingtable_panel .pt_feature .has-close {
  color: #C2D1DF;
}

.pricingtable_btnarea {
  margin-top: 1rem;
  padding: 2rem 2rem;
  border-top: 1px solid #CFE1E8;
}

.pricingtable_btnarea .c-cv_btn {
  font-size: 16px;
  padding: 1rem;
}

.pricingtable_credit img {
  max-width: 500px;
  margin: 0 auto 2rem;
  display: block;
}

@media only screen and (max-width: 768px) {
  .pricingtable_wrap {
    flex-wrap: wrap;
    margin-top: initial;
  }
  .pricingtable_panel {
    width: 100%;
  }
  .pricingtable_panel:nth-child(2) {
    margin-bottom: 6rem;
  }
}


/* ______________________________________________________________ 追尾バナー */

.p-scroll_bnr__block {
  padding: 10px;
  background-color: #fff;
  filter: drop-shadow(0 4px 6px rgba(0, 67, 145, 0.2));
}

.p-scroll_bnr__block p {
  font-size: 15px;
  font-weight: bold;
  letter-spacing: 0.4px;
  text-align: center;
}

.p-scroll_bnr__block a {
  position: relative;
  display: block;
  padding: 13px 20px;
  margin: 6px auto 0;
  width: 95%;
  font-size: 17px;
  font-weight: bold;
  letter-spacing: 0.4px;
  text-align: center;
  color: #fff;
  background-color: #ff1551;
  border-bottom: solid 4px #a50033;
  border-radius: 30px;
  cursor: pointer;
}

.p-scroll_bnr__block a::before {
  position: absolute;
  top: 0;
  right: 22px;
  bottom: 0;
  margin: auto;
  width: 8px;
  height: 12px;
  content: '';
  clip-path: polygon(0 100%, 0 0, 100% 50%);
  background-color: #931341;
}

@media screen and (max-width: 700px) {
  .cv_section .form_wrapper {
    margin-block: 50px 10px !important;
  }
}


/* お問い合わせフォーム　privacyテキスト */

.privacy_text_box {
  text-align: left;
  height: 200px;
  padding: 1em;
  overflow-y: scroll;
  border: 1px solid #CFE1E8;
}

.privacy_text_box {
  font-size: 1.4rem;
  line-height: 1.6;
}

.privacy_text_box h2.dec {
  margin-block: 2rem 1.5rem;
  background-color: #22588A;
  padding: 8px 16px;
}

.privacy_text_box h2.dec span {
  color: #fff;
  font-size: initial;
  display: inline-block;
  line-height: 1.4;
}


/* ______________________________________________________________ footerのメインメニュー非表示 */

footer .footer_top_wrapper {
  padding-top: 2.4rem;
}

footer .footer_top_wrapper .top_inner {
  display: none !important;
}