@import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Noto+Sans+JP:wght@400..700&display=swap");
/* Reset
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend, button,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, dialog, figure, footer, header,
hgroup, menu, nav, section,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

main, article, aside, dialog, figure, footer, header,
hgroup, nav, section {
  display: block;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote::before, blockquote::after,
q::before, q::after {
  content: "";
  content: none;
}

/* remember to define focus styles! */
:focus {
  outline: 0;
}

/* remember to highlight inserts somehow! */
ins {
  text-decoration: none;
}

del {
  text-decoration: line-through;
}

/* tables still need 'cellspacing="0"' in the markup */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

:root {
  --ja-font: "Noto Sans JP", sans-serif;
  --en-font: "Montserrat", sans-serif;
  --color--main: var(--color--pl);
  --color--pl: #6300FF;
  --color--bl: #25B9EA;
  --color--gy: #707070;
  --color--logo: #0072BC;
  --color--lt-gy: #777777;
  /* --gradation--rd: linear-gradient(70deg, #d563a0 0%, #8424e0 23%, #5a1afc 54%, #6105fe 100%);
  --gradation--bl: linear-gradient(60deg, #6300ff -20%, #25b9ea 55%); */
  --gradation--rd: linear-gradient(70deg, #6300ff 0%, #5725fb 23%, #4a4af7 54%, #3e6ef3 100%);
  --gradation--bl: linear-gradient(60deg, #3193ef 20%, #25b9ea 55%);
  --bg-color: #F2F4F5;
  --border-color: var(--color--pl);
  --base-font-color: #000;
  --link-color: var(--base-font-color);
  --link-hover-color: var(--color--pl);
}

:root {
  --break-point: 1023px;
}

@media screen and (min-width: 1024px) {
  :root {
    --header-height: 94px;
  }
}
@media screen and (max-width: 1023px) {
  :root {
    --header-height: 90px;
  }
}
:root {
  --vw: 1vw;
}

@media screen and (min-width: 1024px) {
  :root {
    --content-width: min(calc(var(--vw) * 80 ),1000px);
    --margin--s: -10%;
    --margin--l: calc(var(--vw) * 6);
    --margin--xl: calc(var(--vw) * 10);
    --content-padding: calc((var(--vw) * 100 - var(--content-width)) / 2);
    --content-padding--s: calc((var(--vw) * 100 - var(--content-width) + var(--margin--s) * -2) / 2);
    --content-padding--l: calc((var(--vw) * 100 - var(--content-width) - var(--margin--l) * 2) / 2);
    --content-padding--xl: calc((var(--vw) * 100 - var(--content-width) - var(--margin--xl) * 2) / 2);
    --section-margin: 150px;
    --child-section-margin: 70px;
  }
}
@media screen and (max-width: 1023px) {
  :root {
    --content-width: calc(var(--vw) * 82);
    --margin--s: 0%;
    --margin--l: 0%;
    --margin--xl: 0%;
    --content-padding: calc((var(--vw) * 100 - var(--content-width)) / 2);
    --content-padding--s: calc((var(--vw) * 100 - var(--content-width)) / 2);
    --content-padding--l: calc((var(--vw) * 100 - var(--content-width)) / 2);
    --content-padding--xl: calc((var(--vw) * 100 - var(--content-width)) / 2);
    --section-margin: 70px;
    --child-section-margin: 40px;
  }
}
.contents {
  width: var(--content-width);
  margin-inline: auto;
}

.domain-lead, .mission p, .strategy p, .recruit .recruit-step {
  width: calc(var(--content-width) + var(--margin--s) * 2);
  margin-inline: auto;
}

.domain-header, .top {
  margin-inline: calc(50% - var(--vw) * 50);
}

.topics, .mission, .strategy-document, .recruit {
  margin-inline: calc(50% - var(--vw) * 50);
  padding-inline: calc(var(--vw) * 50 - 50%);
}

.domain-header::before, .domain-header::after, .domain::before, .domain::after, .opportunity::before, .top::before, .mission::before, .strategy::before, .pickup::before, .recruit::before, .footer::before {
  content: "";
  position: absolute;
  background: url(../images/bg_stripe.svg);
  background-size: contain;
  width: 835px;
  height: 849px;
  pointer-events: none;
}
@media screen and (max-width: 1023px) {
  .domain-header::before, .domain-header::after, .domain::before, .domain::after, .opportunity::before, .top::before, .mission::before, .strategy::before, .pickup::before, .recruit::before, .footer::before {
    width: 330px;
    height: 330px;
  }
}

/* Fonts
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
:lang(ja) {
  font-family: var(--ja-font);
}

:lang(en) {
  font-family: var(--en-font);
  font-weight: 500;
  letter-spacing: 0;
  /*font-variant-ligatures: none;*/
}

html {
  font-size: 62.5%;
}

body {
  line-height: 2.3;
  font-size: 1.6rem;
  font-weight: 400;
  color: var(--base-font-color);
  letter-spacing: 0.1em;
  -webkit-font-feature-settings: "palt";
          font-feature-settings: "palt";
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: subpixel-antialiased;
  -moz-osx-font-smoothing: unset;
  font-optical-sizing: auto;
  font-style: normal;
}
@media only screen and (-webkit-min-device-pixel-ratio: 2), (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
  body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
}
@media screen and (max-width: 1023px) {
  body {
    font-size: 1.4rem;
    letter-spacing: 0.05em;
    line-height: 2;
  }
}

/* common
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
html {
  height: 100%;
}

body {
  background: #FFF;
  position: relative;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

p, ul, ol, dl {
  margin: 0 0 30px;
}

h1, h2, h3, h4, h5 {
  line-height: 1.5;
  margin: 0 0 30px;
  font-weight: bold;
  font-size: 3rem;
}

li {
  margin: 0 0 0 2.2em;
}

ul {
  list-style: disc;
}
ul ul {
  list-style: circle;
}
ul.no-style {
  list-style: none;
}
ul.no-style > li {
  margin-left: 0;
}

ol {
  list-style: decimal;
}
ol ol {
  counter-reset: number-child-list;
}
ol ol li {
  counter-increment: number-child-list;
  list-style: none;
  margin-left: 2.5em;
}
ol ol li::before {
  content: "(" counter(number-child-list) ")";
  width: 2.5em;
  display: inline-block;
  margin-left: -2.5em;
}
ol.parentheses {
  counter-reset: parentheses-list;
}
ol.parentheses li {
  counter-increment: parentheses-list;
  margin-left: 2.5em;
  list-style: none;
}
ol.parentheses li::before {
  content: "(" counter(parentheses-list) ")";
  width: 2.5em;
  display: inline-block;
  margin-left: -2.5em;
}

.hidden {
  display: none;
}

table {
  width: 100%;
  margin: 60px 0;
  padding: 20px 0;
  border-collapse: collapse;
}
table th, table td {
  padding: 30px;
  text-align: left;
}
table th p, table th ul, table th ol, table th dl, table td p, table td ul, table td ol, table td dl {
  margin: 0 0 20px;
}
table th :not(input):not(select):not(textarea):not(span):last-child, table td :not(input):not(select):not(textarea):not(span):last-child {
  margin-bottom: 0 !important;
}
table th {
  width: 30%;
  font-weight: 700;
  letter-spacing: 0.15em;
}
table tbody tr.combine > td {
  border-top: none;
  border-bottom-style: dashed;
}
table tbody tr:last-child > th, table tbody tr:last-child > td {
  border-bottom: none;
}
table tbody th[rowspan] ~ td {
  border-bottom-style: dashed;
}
table thead th {
  width: auto;
  text-align: center;
  border-top: none;
}
table tfoot th,
table tfoot td {
  border-bottom: none;
}
table caption {
  font-weight: bold;
  text-align: left;
}

hr {
  display: none;
}

img {
  width: 100%;
  height: auto;
  -webkit-transition: 0.2s ease;
  transition: 0.2s ease;
  border: none;
  vertical-align: bottom;
  /* pointer-events: none; */
}

i {
  font-style: normal;
}

em {
  font-style: normal;
  font-weight: 700;
}

strong {
  font-weight: 700;
  color: var(--color--rd);
}

sup {
  vertical-align: top;
  line-height: 1.8;
  font-size: x-small;
}

ins {
  color: #C00;
}

a {
  -webkit-transition: 0.2s ease;
  transition: 0.2s ease;
  color: var(--base-font-color);
  text-decoration: none;
}
a.open_parent_cat.segment-link {
  color: var(--link-hover-color);
}
@media (hover: hover) {
  a:where(:-moz-any-link, :enabled, summary):hover {
    color: var(--link-hover-color);
  }
  a:where(:any-link, :enabled, summary):hover {
    color: var(--link-hover-color);
  }
}
a:hover span {
  cursor: pointer;
}
a.inactive, .inactive a {
  cursor: default;
  pointer-events: none;
}
a:not([class]) {
  text-decoration: underline;
  color: var(--link-color);
}
@media (hover: hover) {
  a:not([class]):where(:-moz-any-link, :enabled, summary):hover {
    color: var(--link-hover-color);
  }
  a:not([class]):where(:any-link, :enabled, summary):hover {
    color: var(--link-hover-color);
  }
}
@media screen and (min-width: 1024px) {
  a[href^="tel:"] {
    color: var(--base-font-color);
    text-decoration: none;
    pointer-events: none;
  }
}

input,
select,
textarea,
button {
  font-family: var(--ja-font);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  border: none;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border-radius: 0;
  background: transparent;
  -webkit-transition: background-color 0.2s ease;
  transition: background-color 0.2s ease;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.8;
  overflow: visible;
}

input[type=submit],
button {
  cursor: pointer;
}

figcaption {
  text-align: left;
}

.italic {
  font-style: italic;
}

.note {
  font-size: 1.3rem;
  line-height: 1.8;
}

.flow-root {
  display: flow-root;
}

.float-clear {
  clear: both;
}

.align-right {
  text-align: right;
}

.align-center {
  text-align: center;
}

.flex-end {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

.flex-center {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

@media screen and (max-width: 1023px) {
  p, ul, ol, dl {
    margin: 0 0 20px;
  }
  h1, h2, h3, h4, h5 {
    margin: 0 0 20px;
    font-size: 1.8rem;
  }
  table {
    margin: 40px 0;
    padding: 0;
  }
  table th, table td {
    padding: 15px 5px;
    font-size: 1.3rem;
    width: auto;
  }
  .btn-area {
    margin: 40px 0;
  }
  input,
  select,
  textarea,
  button {
    font-size: 1.4rem;
  }
  .note {
    font-size: 1.1rem;
  }
}
@media screen and (min-width: 1024px) {
  .mob-only {
    display: none;
  }
}
@media screen and (max-width: 1023px) {
  .pc-only {
    display: none;
  }
  .mob-only {
    display: block;
  }
  br.mob-only {
    display: inline;
  }
}
.wrapper {
  height: 100%;
  overflow: hidden;
}

.container {
  position: relative;
  z-index: 2;
}

.contents {
  display: flow-root;
  position: relative;
  padding-top: var(--header-height);
}

.section {
  padding-block: 180px 90px;
}
.section:last-child, .section > :last-child {
  margin-bottom: 0;
}
.section-heading {
  position: relative;
  font-size: 7.4rem;
  line-height: 1.15;
  text-align: center;
  font-weight: 300;
  margin: 0 auto 80px;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  background: var(--gradation--rd);
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 120% 100%;
}
.section-heading::first-letter {
  font-weight: 700;
}
.section-heading-inner {
  display: inline-block;
  font-weight: 300;
}
.section-heading-inner::first-letter {
  font-weight: 700;
}
.section-heading--left {
  margin-left: 0;
  text-align: left;
}
.section-lead ,
.title_link{
  font-size: 3.2rem;
  line-height: 1.6;
  letter-spacing: 0.1em;
  text-align: center;
  margin-block: 0 60px;
}
.section-lead--left {
  text-align: left;
}
@media screen and (max-width: 1023px) {
  .section {
    padding-block: 60px 40px;
  }
  .section-heading {
    font-size: 3.4rem;
    margin: 0 auto 30px;
  }
  .section-lead,
  .title_link {
    font-size: 2rem;
    letter-spacing: 0.1em;
    margin-block: 0 40px;
    text-align: center;
  }
}

.image {
  max-width: 100%;
  height: auto;
}
.image-wrapper {
  text-align: center;
  margin: 50px 0;
}
.image-wrapper:first-child {
  margin-top: 0;
}
.image-wrapper:last-child {
  margin-bottom: 0;
}
.image-caption {
  position: relative;
  margin: 1em 0 0;
  padding: 0 0 0 20px;
  font-size: 1.8rem;
  line-height: 1.8;
  font-weight: 500;
}
.image-caption:first-child {
  margin-bottom: 1em;
}
.image-caption::before {
  content: "";
  position: absolute;
  top: 0.8em;
  left: 0;
  display: block;
  width: 9px;
  height: 9px;
  background-color: var(--color--main);
  border-radius: 50%;
}
.image-wrapper:first-child .image-caption:first-child {
  margin-top: 0;
}
.image-box {
  background-color: var(--bg-color);
  border-radius: 20px;
  padding: 60px;
}
@media screen and (max-width: 1023px) {
  .image-wrapper {
    margin: 30px 0;
  }
  .image-caption {
    padding-left: 15px;
    font-size: 1.4rem;
  }
  .image-caption::before {
    top: 0.7em;
    width: 7px;
    height: 7px;
  }
  .image-box {
    padding: 20px;
  }
}

.video {
  aspect-ratio: 16/9;
  width: 100%;
  height: auto;
}

.arrow-icon {
  background: url(../images/icn_arrow.svg) no-repeat center center;
  background-size: 38px auto;
  background-size: contain;
  width: 39px;
  height: 39px;
}
.arrow-icon::before, .arrow-icon::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: var(--gradation--rd);
  background-size: 200% 100%;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}
.arrow-icon::after {
  background: rgba(0, 0, 0, 0);
  -webkit-transition: 0.2s ease;
  transition: 0.2s ease;
}
@media screen and (max-width: 1023px) {
  .arrow-icon {
    background-size: 20px auto;
    width: 21px;
    height: 21px;
  }
}

@media (hover: hover) {
  a:has(.arrow-icon):where(:-moz-any-link, :enabled, summary):hover .arrow-icon::after {
    background: black;
  }
  a:has(.arrow-icon):where(:any-link, :enabled, summary):hover .arrow-icon::after {
    background: black;
  }
}

.arrow-l-icon {
  background: url(../images/icn_arrow_l.svg) no-repeat center center;
  background-size: 19px auto;
  width: 19px;
  height: 33px;
}
@media screen and (max-width: 1023px) {
  .arrow-l-icon {
    background-size: contain;
    width: 15px;
    height: 25px;
  }
}

.more-button {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.6;
  width: 208px;
  height: 58px;
  border-radius: 40px;
  overflow: hidden;
  position: relative;
  color: #FFF !important;
}
.more-button-wrapper {
  position: relative;
  z-index: 2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 60px auto 0;
}
.more-button-label {
  display: block;
}
.more-button-label::first-letter {
  font-weight: 700;
}
.more-button::before, .more-button::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: var(--gradation--rd);
  -webkit-transition: 0.2s ease;
  transition: 0.2s ease;
}
.more-button::after {
  content: "";
  background: #000;
  opacity: 0;
}
@media (hover: hover) {
  .more-button:where(:-moz-any-link, :enabled, summary):hover::after {
    opacity: 1;
  }
  .more-button:where(:any-link, :enabled, summary):hover::after {
    opacity: 1;
  }
}
@media screen and (max-width: 1023px) {
  .more-button-wrapper {
    margin: 40px auto 0;
  }
}

.article-list {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 22px 1fr 22px 1fr;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
.article-card {
  height: 100%;
}
.article-card-link {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  height: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  border: 1px solid var(--border-color);
  padding: 43px 26px 17px;
}
.article-card-link .arrow-icon {
  position: absolute;
  inset: auto 20px 20px auto;
}
@media (hover: hover) {
  .article-card-link:where(:-moz-any-link, :enabled, summary):hover .thumbnail {
    transform: scale(1.05);
  }
  .article-card-link:where(:any-link, :enabled, summary):hover .thumbnail {
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
}
.article-card .thumbnail {
  -webkit-transition: 0.4s ease;
  transition: 0.4s ease;
  aspect-ratio: 480/295;
  -o-object-fit: cover;
     object-fit: cover;
}
.article-card .thumbnail-wrapper {
  margin: 0 0 17px -26px;
  overflow: hidden;
}
.article-card-title {
  font-size: 1.8rem;
  line-height: 1.6;
  font-weight: 700;
  margin-block: 0 30px;
}
.article-card-date {
  font-size: 1.4rem;
  line-height: 1.6;
  font-family: var(--en-font);
  font-weight: 400;
  letter-spacing: 0;
  color: var(--color--lt-gy);
  margin: auto 0 -5px -10px;
}
@media screen and (max-width: 1023px) {
  .article-list {
    -ms-grid-columns: 1fr;
    grid-template-columns: repeat(1, 1fr);
    gap: 12px;
  }
  .article-card-link {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: min(45%, 200px) 12px auto;
    grid-template-columns: min(45%, 200px) auto;
    -ms-grid-rows: auto 15px auto;
    grid-template-rows: repeat(2, auto);
    gap: 15px 12px;
    padding: 17px 12px 10px 0;
  }
  .article-card-link > *:nth-child(1) {
    -ms-grid-row: 1;
    -ms-grid-column: 1;
  }
  .article-card-link > *:nth-child(2) {
    -ms-grid-row: 1;
    -ms-grid-column: 3;
  }
  .article-card-link > *:nth-child(3) {
    -ms-grid-row: 3;
    -ms-grid-column: 1;
  }
  .article-card-link > *:nth-child(4) {
    -ms-grid-row: 3;
    -ms-grid-column: 3;
  }
  .article-card-link .arrow-icon {
    position: absolute;
    inset: auto 17px 17px auto;
  }
}
@media screen and (max-width: 1023px) and (hover: hover) {
  .article-card-link:where(:-moz-any-link, :enabled, summary):hover .thumbnail {
    transform: scale(1.05);
  }
  .article-card-link:where(:any-link, :enabled, summary):hover .thumbnail {
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
}
@media screen and (max-width: 1023px) {
  .article-card .thumbnail-wrapper {
    -ms-grid-row: 1;
    -ms-grid-row-span: 1;
    -ms-grid-column: 1;
    -ms-grid-column-span: 1;
    grid-area: 1/1/2/2;
    margin: 0 0 17px 0;
  }
  .article-card-title {
    -ms-grid-row: 1;
    -ms-grid-row-span: 1;
    -ms-grid-column: 2;
    -ms-grid-column-span: 1;
    grid-area: 1/2/2/3;
    font-size: 1.4rem;
    font-weight: 600;
    margin-block: 0;
  }
  .article-card-date {
    -ms-grid-row: 2;
    -ms-grid-row-span: 1;
    -ms-grid-column: 1;
    -ms-grid-column-span: 2;
    grid-area: 2/1/3/3;
    font-size: 1rem;
    font-weight: 400;
    margin: 0 0 0 17px;
  }
}

.entry-buttons {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0 50px;
}
.entry-buttons .recruitment-button,
.entry-buttons .career-regist-button {
  position: relative;
  z-index: 2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 77px;
  width: 274px;
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.1em;
  border-radius: 77px;
  overflow: hidden;
  position: relative;
  color: #FFF !important;
}
.entry-buttons .recruitment-button::before, .entry-buttons .recruitment-button::after,
.entry-buttons .career-regist-button::before,
.entry-buttons .career-regist-button::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: var(--gradation--rd);
  -webkit-transition: 0.2s ease;
  transition: 0.2s ease;
}
.entry-buttons .recruitment-button::after,
.entry-buttons .career-regist-button::after {
  content: "";
  background: #000;
  opacity: 0;
}
@media (hover: hover) {
  .entry-buttons .recruitment-button:where(:-moz-any-link, :enabled, summary):hover::after, .entry-buttons .career-regist-button:where(:-moz-any-link, :enabled, summary):hover::after {
    opacity: 1;
  }
  .entry-buttons .recruitment-button:where(:any-link, :enabled, summary):hover::after,
  .entry-buttons .career-regist-button:where(:any-link, :enabled, summary):hover::after {
    opacity: 1;
  }
}
.entry-buttons .career-regist-button {
  position: relative;
  color: #FFF !important;
}
.entry-buttons .career-regist-button::before, .entry-buttons .career-regist-button::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: var(--gradation--bl);
  -webkit-transition: 0.2s ease;
  transition: 0.2s ease;
}
.entry-buttons .career-regist-button::after {
  content: "";
  background: #000;
  opacity: 0;
}
@media (hover: hover) {
  .entry-buttons .career-regist-button:where(:-moz-any-link, :enabled, summary):hover::after {
    opacity: 1;
  }
  .entry-buttons .career-regist-button:where(:any-link, :enabled, summary):hover::after {
    opacity: 1;
  }
}
@media screen and (max-width: 1023px) {
  .entry-buttons {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 17px;
  }
  .entry-buttons .recruitment-button,
  .entry-buttons .career-regist-button {
    height: 77px;
    width: min(100%, 274px);
    font-size: 2.2rem;
  }
}

.header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 100;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  height: var(--header-height);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0 55px;
  padding-inline: 59px 19px;
  background: #FFF;
}
@media screen and (min-width: 1024px) {
  .header--transparent {
    background-color: rgba(0, 0, 0, 0.09);
    -webkit-transition: 0.4s ease;
    transition: 0.4s ease;
  }
  .on-scroll .header--transparent {
    background: #FFF;
  }
}
.header::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  background: var(--gradation--rd);
  height: 6px;
}
.header .site-title {
  position: relative;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 100%;
  margin: 0 auto 0 0;
}
.header .site-title-link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.header .site-title-logo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-transition: 0.2s ease;
  transition: 0.2s ease;
  -webkit-mask-image: url(../images/logo_nttdata.svg);
          mask-image: url(../images/logo_nttdata.svg);
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  background-color: var(--color--logo);
  overflow: hidden;
  /* width: 158px;
  height: 23px; */
}
.header .site-title-logo-image {
  visibility: hidden;
}
@media screen and (min-width: 1024px) {
  .header--transparent .site-title-logo {
    background-color: #FFF;
  }
  .on-scroll .header--transparent .site-title-logo {
    background-color: var(--color--logo);
  }
}
.header-buttons {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0 15px;
}
.header-buttons .recruitment-button,
.header-buttons .career-regist-button {
  position: relative;
  z-index: 2;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 58px;
  width: 187px;
  font-size: 1.9rem;
  font-weight: 500;
  line-height: 1.6;
  position: relative;
  color: #FFF !important;
}
.header-buttons .recruitment-button::before, .header-buttons .recruitment-button::after,
.header-buttons .career-regist-button::before,
.header-buttons .career-regist-button::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: var(--gradation--rd);
  -webkit-transition: 0.2s ease;
  transition: 0.2s ease;
}
.header-buttons .recruitment-button::after,
.header-buttons .career-regist-button::after {
  content: "";
  background: #000;
  opacity: 0;
}
@media (hover: hover) {
  .header-buttons .recruitment-button:where(:-moz-any-link, :enabled, summary):hover::after, .header-buttons .career-regist-button:where(:-moz-any-link, :enabled, summary):hover::after {
    opacity: 1;
  }
  .header-buttons .recruitment-button:where(:any-link, :enabled, summary):hover::after,
  .header-buttons .career-regist-button:where(:any-link, :enabled, summary):hover::after {
    opacity: 1;
  }
}
.header-buttons .career-regist-button {
  position: relative;
  color: #FFF !important;
}
.header-buttons .career-regist-button::before, .header-buttons .career-regist-button::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: var(--gradation--bl);
  -webkit-transition: 0.2s ease;
  transition: 0.2s ease;
}
.header-buttons .career-regist-button::after {
  content: "";
  background: #000;
  opacity: 0;
}
@media (hover: hover) {
  .header-buttons .career-regist-button:where(:-moz-any-link, :enabled, summary):hover::after {
    opacity: 1;
  }
  .header-buttons .career-regist-button:where(:any-link, :enabled, summary):hover::after {
    opacity: 1;
  }
}
@media screen and (max-width: 1023px) {
  .header {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -ms-flex-line-pack: center;
        align-content: center;
    gap: 6px 14px;
    padding-inline: 14px 9px;
    padding-top: 6px;
  }
  .header .site-title {
    height: auto;
    width: calc(50% - 14px);
    -webkit-box-flex: 2;
        -ms-flex: 2 2 auto;
            flex: 2 2 auto;
  }
  .header .site-title-logo {
    width: 100%;
  }
  .header .site-title-logo-link {
    width: 100%;
  }
  .header-buttons {
    width: 50%;
    -webkit-box-flex: 2;
        -ms-flex: 2 2 auto;
            flex: 2 2 auto;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    gap: 0;
  }
  .header-buttons .recruitment-button,
  .header-buttons .career-regist-button {
    height: 33px;
    max-width: 86px;
    font-size: 1.2rem;
  }
}

.nav {
  -webkit-box-flex: 2;
      -ms-flex: 2 2 auto;
          flex: 2 2 auto;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  height: 100%;
}
.nav-inner {
  height: 100%;
}
.nav-list {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0 min(3.5vw, 55px);
  height: 100%;
  margin: 0 0 0 auto;
}
.nav-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  list-style: none;
  margin: 0;
  line-height: 1.5;
}
.nav-link {
  position: relative;
  display: block;
  padding-block: 0.3em;
  color: var(--color--gy);
}
.nav-link::before {
  content: "";
  position: absolute;
  inset: auto 0 0;
  border-bottom: 1px solid;
  color: var(--color--main);
  -webkit-clip-path: inset(0 100% 0 0);
          clip-path: inset(0 100% 0 0);
  -webkit-transition: 0.2s ease;
  transition: 0.2s ease;
}
@media (hover: hover) {
  .nav-link:where(:-moz-any-link, :enabled, summary):hover::before {
    clip-path: inset(0 0 0 0);
  }
  .nav-link:where(:any-link, :enabled, summary):hover::before {
    -webkit-clip-path: inset(0 0 0 0);
            clip-path: inset(0 0 0 0);
  }
}
@media screen and (min-width: 1024px) {
  .header--transparent .nav-link {
    color: #FFF;
  }
  .header--transparent .nav-link::before {
    color: #FFF;
  }
  .on-scroll .header--transparent .nav-link {
    color: var(--color--gy);
  }
  .on-scroll .header--transparent .nav-link::before {
    color: var(--color--main);
  }
}
@media screen and (min-width: 1024px) and (hover: hover) {
  .on-scroll .header--transparent .nav-link:where(:-moz-any-link, :enabled, summary):hover {
    color: var(--color--main);
  }
  .on-scroll .header--transparent .nav-link:where(:any-link, :enabled, summary):hover {
    color: var(--color--main);
  }
}
.nav-label {
  display: block;
}
.nav-label::first-letter {
  font-weight: 700;
}
@media screen and (max-width: 1023px) {
  .nav {
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    height: auto;
  }
  .nav-list {
    gap: 0 35px;
    margin: 0;
  }
  .nav-link {
    font-size: 1.2rem;
  }
}

.footer {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  padding-inline: var(--content-padding);
  padding-bottom: 35px;
  height: 362px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  background-color: #000;
  overflow: hidden;
}
.footer::before {
  background-size: 100% auto;
  height: 600px;
  inset: auto -300px 0 auto;
}
.footer .site-title {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-block: auto 0;
}
.footer .site-title-link {
  display: inline-block;
  line-height: 1.6;
  color: #FFF;
}
.footer .site-title-logo-image {
  vertical-align: baseline;
  height: auto;
  width: auto;
  max-width: 100%;
  line-height: 1;
  margin-inline: 0 20px;
  /* -webkit-filter: invert(100%) sepia(45%) saturate(615%) hue-rotate(246deg) brightness(117%) contrast(100%);
          filter: invert(100%) sepia(45%) saturate(615%) hue-rotate(246deg) brightness(117%) contrast(100%); */
  -webkit-filter: grayscale(100%) brightness(300%);
  filter: grayscale(100%) brightness(300%);
}
.footer .site-title-text {
  font-size: 1.6rem;
  line-height: 1;
}
.footer .site-title-text-en {
  display: inline-block;
  width: 100%;
  font-size: 2.5rem;
  line-height: 1;
  margin-block: 10px 0;
}
.footer .site-title-text-en-inner {
  font-weight: 300;
  display: inline-block;
}
.footer .site-title-text-en-inner::first-letter {
  font-weight: 800;
}
@media screen and (max-width: 1023px) {
  .footer {
    height: 147px;
    padding-bottom: 0;
  }
  .footer::before {
    height: 250px;
    inset: auto -200px 0 auto;
  }
  .footer .site-title {
    margin-block: auto;
  }
  .footer .site-title-logo-image {
    height: auto;
    width: 140px;
  }
  .footer .site-title-text {
    font-size: 1.4rem;
  }
  .footer .site-title-text-en {
    margin-block: 0;
    font-size: 1.4rem;
  }
  .footer .site-title-text-en-inner {
    font-weight: 300;
  }
}

.top {
  position: relative;
  z-index: 2;
  --margin-bottom: 80px;
  margin-bottom: var(--margin-bottom);
  height: clamp(500px, 100vh - var(--header-height) - var(--margin-bottom), 1300px);
}
.top-article-card-title {
  position: absolute;
  inset: auto auto -0.6em 0;
  max-width: calc(100% - 230px);
  font-size: min(3.5vw, 5.3rem);
  line-height: 1.65;
  color: #FFF;
  padding-inline: 20px;
  margin: 0;
}
.top-article-card-title-inner {
  padding-block: 0 0.1em;
  background: #000;
  -webkit-filter: drop-shadow(20px 0 0 #000) drop-shadow(-20px 0 0 #000);
          filter: drop-shadow(20px 0 0 #000) drop-shadow(-20px 0 0 #000);
}
.top-slider {
  height: 100%;
}
.top .swiper {
  overflow: visible !important;
  height: 100%;
}
.top .swiper-slide .hero-image {
  width: auto;
  height: 100%;
  -webkit-transition: -webkit-transform 10s 1s cubic-bezier(0.25, 1, 0.5, 1);
  transition: -webkit-transform 10s 1s cubic-bezier(0.25, 1, 0.5, 1);
  transition: transform 10s 1s cubic-bezier(0.25, 1, 0.5, 1);
  transition: transform 10s 1s cubic-bezier(0.25, 1, 0.5, 1), -webkit-transform 10s 1s cubic-bezier(0.25, 1, 0.5, 1);
}
.top .swiper-slide .hero-image-wrapper {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  height: 100%;
  margin-inline: auto 0;
  overflow: hidden;
}
.top .swiper-slide:not([class*=-active]) .hero-image {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}
.top .swiper-slide[class*=-active] .hero-image {
  -webkit-transition-delay: 0s;
          transition-delay: 0s;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.top .swiper-slide.anm-started .top-article-card-title {
  -webkit-animation: textIn 0.8s 1s cubic-bezier(0.5, 1, 0.89, 1) both;
          animation: textIn 0.8s 1s cubic-bezier(0.5, 1, 0.89, 1) both;
}
.top .swiper-slide.anm-finished .top-article-card-title {
  -webkit-animation: textOut 0.8s 0s cubic-bezier(0.11, 0, 0.5, 0) both;
          animation: textOut 0.8s 0s cubic-bezier(0.11, 0, 0.5, 0) both;
}
@-webkit-keyframes textIn {
  0% {
    -webkit-clip-path: inset(0 100% 0 0);
            clip-path: inset(0 100% 0 0);
  }
  100% {
    -webkit-clip-path: inset(0 0 0 0);
            clip-path: inset(0 0 0 0);
  }
}
@keyframes textIn {
  0% {
    -webkit-clip-path: inset(0 100% 0 0);
            clip-path: inset(0 100% 0 0);
  }
  100% {
    -webkit-clip-path: inset(0 0 0 0);
            clip-path: inset(0 0 0 0);
  }
}
@-webkit-keyframes textOut {
  0% {
    -webkit-clip-path: inset(0 0 0 0);
            clip-path: inset(0 0 0 0);
  }
  100% {
    -webkit-clip-path: inset(0 100% 0 0);
            clip-path: inset(0 100% 0 0);
  }
}
@keyframes textOut {
  0% {
    -webkit-clip-path: inset(0 0 0 0);
            clip-path: inset(0 0 0 0);
  }
  100% {
    -webkit-clip-path: inset(0 100% 0 0);
            clip-path: inset(0 100% 0 0);
  }
}
.top .more-button {
  -webkit-transform: translate(0, 50%);
          transform: translate(0, 50%);
}
.top .more-button-wrapper {
  position: absolute;
  z-index: 3;
  inset: auto 19px 0 auto;
  margin: 0;
}
.top .scroll-text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  position: absolute;
  z-index: 2;
  inset: auto 19px -40px auto;
  -webkit-writing-mode: vertical-rl;
      -ms-writing-mode: tb-rl;
          writing-mode: vertical-rl;
  font-size: 1.3rem;
  color: #FFF;
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.top .scroll-text::before, .top .scroll-text::after {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  content: "";
  border-left: 1px solid var(--color--bl);
  height: 215px;
}
.top .scroll-text::before {
  border-left: 1px solid var(--color--pl);
  height: 100px;
}
.top::before {
  inset: auto auto -400px -400px;
}
@media screen and (max-width: 1023px) {
  .top {
    margin-bottom: 40px;
    height: auto;
  }
  .top-article-card-title {
    position: absolute;
    inset: auto auto -0.8em 0;
    max-width: 100%;
    font-size: 1.9rem;
    line-height: 1.6;
    padding-inline: 15px;
  }
  .top-article-card-title-inner {
    -webkit-filter: drop-shadow(15px 0 0 #000) drop-shadow(-15px 0 0 #000);
            filter: drop-shadow(15px 0 0 #000) drop-shadow(-15px 0 0 #000);
  }
  .top .swiper-slide .hero-image {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
  .top .swiper-slide .hero-image-wrapper {
    width: 100%;
    height: 80vw;
  }
  .top .more-button {
    -webkit-transform: none;
            transform: none;
  }
  .top .more-button-wrapper {
    position: relative;
    inset: auto;
    margin-block: 40px;
  }
  .top .scroll-text {
    display: none;
  }
  .top::before {
    inset: auto -180px -50px auto;
  }
}

.mission {
  position: relative;
  background: #000 url(../images/bg_mission.png) no-repeat center center;
  background-size: cover;
  color: #FFF;
  padding-bottom: 150px;
}
.mission::before {
  display: none;
}
.mission p:last-child {
  position: relative;
}
.mission p:last-child::before, .mission p:last-child::after {
  content: "";
  position: absolute;
  inset: auto -30px -50px auto;
  width: 360px;
  height: 2px;
  background: var(--gradation--rd);
}
.mission p:last-child::after {
  inset: auto -80px 0 auto;
  width: 250px;
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
  -webkit-transform-origin: 100% 100%;
          transform-origin: 100% 100%;
}
@media screen and (max-width: 1023px) {
  .mission {
    padding-bottom: 50px;
  }
  .mission::before {
    display: block;
    inset: -100px auto auto -180px;
  }
  .mission p:last-child::before, .mission p:last-child::after {
    inset: auto 0 -30px auto;
    width: min(100%, 300px);
  }
  .mission p:last-child::after {
    inset: auto -15px 0 auto;
    width: 300px;
  }
}

.strategy {
  position: relative;
}
.strategy::before {
  inset: 0 -650px 0 auto;
  margin: auto 0;
}
.strategy-document {
  position: relative;
  z-index: 2;
  display: flow-root;
  position: relative;
  margin-block: 100px 0;
  padding-block: 150px 0;
}
.strategy-document::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: url(../images/bg_gradation.png) no-repeat center center;
  background-size: cover;
  opacity: 0.14;
  mix-blend-mode: multiply;
}
.strategy-document-inner {
  position: relative;
  margin-block: 0 -150px;
}
.strategy-document-inner::before, .strategy-document-inner::after {
  content: "";
  position: absolute;
  inset: -80px -30px auto auto;
  width: 360px;
  height: 2px;
  background: var(--gradation--rd);
}
.strategy-document-inner::after {
  inset: -30px -80px auto auto;
  width: 250px;
  -webkit-transform: rotate(-90deg);
          transform: rotate(-90deg);
  -webkit-transform-origin: 100% 0;
          transform-origin: 100% 0;
}
.strategy-document iframe {
  vertical-align: top;
}
@media screen and (max-width: 1023px) {
  .strategy::before {
    inset: -60px -250px auto auto;
    margin: 0;
  }
  .strategy-document {
    margin-block: 50px 0;
    padding-block: 70px;
  }
  .strategy-document-inner {
    margin-block: 0;
  }
  .strategy-document-inner::before, .strategy-document-inner::after {
    display: none;
  }
}

.pickup {
  position: relative;
}
.pickup::before {
  inset: auto -650px -600px auto;
}
@media screen and (max-width: 1023px) {
  .pickup::before {
    inset: auto -250px -200px auto;
  }
}

.segment-list {
  scroll-margin-top: var(--header-height);
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 32px 1fr;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  margin-block: 100px 0;
}
.segment-item {
  list-style: none;
  margin: 0;
}
.segment-link {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  height: 96px;
  padding-inline: 30px 0;
  line-height: 1.6;
  color: #FFF !important;
}
.segment-link .arrow-l-icon {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: 72px;
  margin-inline: auto 0;
}
.segment-link::before, .segment-link::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: var(--gradation--rd);
}
.segment-link::after {
  width: 72px;
  margin-inline: auto 0;
  background: #000;
  -webkit-transition: 0.4s ease;
  transition: 0.4s ease;
}
.js_current_parent::after {
  width: calc(100% - 14px);
}
@media (hover: hover) {
  .segment-link:where(:-moz-any-link, :enabled, summary):hover::after {
    width: calc(100% - 14px);
  }
  .segment-link:where(:any-link, :enabled, summary):hover::after {
    width: calc(100% - 14px);
  }
}
@media screen and (max-width: 1023px) {
  .segment-list {
    -ms-grid-columns: 1fr;
    grid-template-columns: 1fr;
    gap: 20px;
    margin-block: 30px 0;
  }
  .segment-link {
    height: 70px;
    padding-inline: 25px 0;
  }
  .segment-link .arrow-l-icon {
    width: 54px;
  }
  .segment-link::after {
    width: 54px;
  }
}

.recruit {
  position: relative;
  background-color: var(--bg-color);
}
.recruit::before {
  inset: -200px auto auto -400px;
}
.recruit .recruit-step {
  margin-block: 80px;
}
.recruit .recruit-step-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 41px 0;
}
.recruit .recruit-step-item {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 10px 20px 10px 230px;
  border: 2px solid;
  -o-border-image: var(--gradation--rd) 1;
     border-image: var(--gradation--rd) 1;
  background-color: #FFF;
}
.recruit .recruit-step-count {
  position: absolute;
  inset: 0 auto auto -2px;
  display: block;
  background: var(--gradation--rd);
  color: #FFF;
  width: 190px;
  padding-block: 10px;
  text-align: center;
  font-size: 2.5rem;
  font-weight: 400;
  line-height: 1;
  border-radius: 20px 0 20px 0;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
}
.recruit .recruit-step-count::first-letter {
  font-weight: 700;
}
@media screen and (max-width: 1023px) {
  .recruit::before {
    inset: -150px auto auto -180px;
  }
  .recruit .recruit-step {
    margin-block: 40px;
  }
  .recruit .recruit-step-list {
    gap: 39px 0;
  }
  .recruit .recruit-step-item {
    padding: 10px;
    font-size: 1.6rem;
    text-align: center;
  }
  .recruit .recruit-step-count {
    width: 121px;
    padding-block: 8px;
    font-size: 1.4rem;
    -webkit-transform: translate(0, -70%);
            transform: translate(0, -70%);
  }
  .recruit .note {
    text-align: center;
    font-size: 1.3rem;
  }
}

.domain-header {
  position: relative;
  margin-block: calc(var(--header-height) * -1) 100px;
}
.domain-header::before, .domain-header::after {
  inset: auto auto -400px -400px;
  mix-blend-mode: screen;
}
.domain-header::after {
  inset: auto -400px -400px auto;
}
.domain-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #B3B3B3;
  mix-blend-mode: multiply;
}
.domain-title {
  position: absolute;
  z-index: 2;
  inset: var(--header-height) 0 0;
  margin: auto;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  font-size: 3.8rem;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.1em;
  background-color: #000;
  color: #FFF;
  padding: 0.2em 0.5em;
}
.domain-lead {
  position: relative;
  text-align: center;
  padding-block: 0 30px;
  margin-block: 0 100px;
}
.domain-lead::before {
  content: "";
  position: absolute;
  inset: auto 0 0;
  margin: 0 auto;
  width: 360px;
  height: 2px;
  background: var(--gradation--rd);
}
@media screen and (max-width: 1023px) {
  .domain-header {
    margin-block: 0 60px;
  }
  .domain-header::before {
    inset: auto auto -120px -220px;
  }
  .domain-header::after {
    inset: auto -170px -200px auto;
  }
  .domain-hero::before {
    display: none;
  }
  .domain-title {
    inset: 0;
    font-size: 1.6rem;
    padding: 0.4em 0.5em;
  }
  .domain-lead {
    margin-block: 0 60px;
    text-align: left;
  }
  .domain-lead::before {
    width: 155px;
  }
}

.topics {
  position: relative;
  -webkit-padding-before: 90px;
  padding-block-start: 90px;
}
.topics::before, .topics::after {
  content: "";
  position: absolute;
  z-index: -2;
  inset: 0;
  background: url(../images/bg_topics.jpg) no-repeat center center;
  background-size: cover;
}
.topics::after {
  /* z-index: -1; */
  inset: 0 var(--content-padding--l) 0;
  background: #FFF;
}
@media screen and (max-width: 1023px) {
  .topics {
    -webkit-padding-before: 40px;
    padding-block-start: 40px;
  }
  .topics::after {
    margin-inline: calc(var(--vw) * -4);
  }
}

.domain {
  position: relative;
}
.domain::before {
  inset: -200px auto auto -650px;
}
.domain::after {
  inset: 0 -650px 0 auto;
  margin-block: auto;
}
.domain-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 95px 0;
}
.domain-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 0 80px;
}
.domain-item .image {
  border-radius: 5px;
  object-fit: cover;
  height: 100%;
}
.domain-item .image-wrapper {
  position: relative;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: min(35%, 350px);
  margin: 0;
  aspect-ratio: 350 / 232;
}
.domain-item .image-wrapper::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: auto -10px -10px auto;
  width: 93px;
  height: 85px;
  background: var(--gradation--rd);
}
.domain-item-title {
  position: relative;
  font-size: 2.5rem;
  font-weight: 700;
  padding-block: 0 10px;
}
.domain-item-title::before {
  content: "";
  position: absolute;
  inset: auto auto 0 0;
  margin: 0 auto;
  width: 360px;
  height: 2px;
  background: var(--gradation--rd);
}
.domain-item-description {
  line-height: 2;
  margin: 0;
}
@media screen and (max-width: 1023px) {
  .domain::before {
    inset: -100px -240px auto auto;
  }
  .domain::after {
    display: none;
  }
  .domain-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 60px 0;
  }
  .domain-item {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 35px;
  }
  .domain-item .image-wrapper {
    width: auto;
    margin-inline: 0 10px;
  }
  .domain-item .image-wrapper::before {
    width: 64px;
    height: 59px;
  }
  .domain-item-text {
    width: 100%;
  }
  .domain-item-title {
    font-size: 1.7rem;
    padding-block: 0 10px;
  }
  .domain-item-title::before {
    width: min(85%, 360px);
    height: 1px;
  }
}

.opportunity {
  position: relative;
}
.opportunity::before {
  inset: -200px auto auto -650px;
}
.opportunity-list {
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: 1fr 6% 1fr 6% 1fr 6% 1fr;
  grid-template-columns: repeat(4, 1fr);
  gap: 56px 6%;
}
.opportunity-item-title {
  position: absolute;
  inset: auto -12px 12px 12px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background: var(--gradation--rd);
  margin: 0;
  color: #FFF;
  font-size: 1.6rem;
  line-height: 1.5;
  text-align: center;
  font-weight: 700;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  min-height: 59px;
  padding: 5px;
}
.opportunity-item-title-wrapper {
  position: relative;
}
.opportunity-item .image-wrapper {
  margin-block: 0 20px;
}
.opportunity-item-description {
  line-height: 1.9;
  margin: 0;
}
@media screen and (max-width: 1023px) {
  .opportunity::before {
    inset: -100px auto auto -240px;
  }
  .opportunity-list {
    grid-template-columns: repeat(auto-fill, minmax(175px, 1fr));
    gap: 40px;
  }
  .opportunity-item-title {
    padding: 5px;
  }
}
.section.entry {
  -webkit-padding-before: 90px;
          padding-block-start: 90px;
}
@media screen and (max-width: 1023px) {
  .section.entry {
    -webkit-padding-before: 40px;
            padding-block-start: 40px;
  }
}
/* topic */
.contents.topic{
  width: min(calc(var(--vw) * 80 ),1040px);
}
.section-topic{
  max-width: 740px;
  width: 74%;
}
.section-topic-ttl{
  padding-block: 100px 0;
}
.section-lead-topic{
  font-weight: 400;
  text-align: left;
  margin-block: 20px 34px;
}
.topic-date{
  font-weight: bold;
  font-size: 1.4rem;
  font-family: Arial,sans-serif;
  margin-bottom: 0;
  line-height: 1;
}
.topic-new{
  color: #FF4800;
  margin-right: 20px;
}
.topic-tag{
  font-size: 1.2rem;
  display: flex;
  text-align: center;
  flex-wrap: wrap;
  gap: 10px;
}
.topic-tag a,
.topic-tag span {
  display: inline-block;
  border: 1px solid #7621E9;
  border-radius: 60px;
  padding: 2px 10px 0;
  text-decoration: none;
}
.section-topic-txt,
.mt-be-column p{
  margin-top: 40px;
}
.topic-index{
  position: relative;
  padding: 50px;
  margin-top: 75px;
}
.topic-index .topics_single_list,
.profie_area ul {
  margin-bottom: 0;
}
.topic-index::before{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background:url(../images/bg_gradation.png) no-repeat center center;
  background-size: cover;
  opacity: 0.14;
  mix-blend-mode: multiply;
}
.topic-ttl,
.prof_people{
  font-size: 1.4rem;
  color: var(--color--pl);
}
.topic-ttl span,
.prof_title{
  display: block;
  font-size: 2.2rem;
  font-weight: bold;
  font-family: Arial, sans-serif;
  color: var(--color--pl);
  line-height: 1;
}
.topic-index a{
  list-style: none;
  display: block;
  margin-left: 0;
  padding-left: 20px;
  line-height: 2;
  text-decoration: none;
  position: relative;
}
.topic-index a::before{
  content: "";
  position: absolute;
  top: 0.72em;
  left: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--gradation--rd);
  background-size: 200% 100%;
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
}
.topic-index a:not(:first-of-type){
  margin-top: 30px;
}
.topic-index a:hover{
  text-decoration: underline;
}
.profie_area{
  position: relative;
  padding: 50px;
  margin-top: 30px;
  background: #F1F4F5;
}
.profie_area .mt-be-columns{
  list-style: none;
  display: flex;
  margin-left: 0;
}
.profie_area .mt-be-columns:not(:first-of-type){
  margin-top: 40px;
}
.profie_area .mt-be-columns .col-md-6:first-of-type{
  width: 19%;
}
.profie_area .mt-be-columns .col-md-6:first-of-type p{
  max-height: 120px;
  max-width: 120px;
  margin: 0 auto;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}
.profie_area .mt-be-columns .col-md-6:first-of-type p img{
  width: 100%!important;
  height: 100%!important;
  border-radius: 50%;
}
.profie_area .mt-be-columns .col-md-6:nth-of-type(2){
  width: 83%;
  max-width: 500px;
  padding-left: 3.1%;
  margin-bottom: 0;
}
.profie_area .mt-be-columns .col-md-6:nth-of-type(2) p:first-of-type{
  font-size: 1.6rem;
  font-weight: bold;
  margin: 0!important;
}
.profie_area .mt-be-columns .col-md-6:nth-of-type(2) p:nth-of-type(2){
  margin: 0!important;
  font-size: 1.4rem;
}
.profie_area .mt-be-columns .col-md-6:nth-of-type(2) p:nth-of-type(3){
  margin: 10px 0 0 0!important;
  font-size: 1.2rem;
}
.section-lead-topic-m,
.title_link{
  font-size: 2.4rem;
  font-weight: 400;
  margin-block: 130px 0;
  text-align: left;
}
.topic-content-pic{
  margin-top: 40px;
}
.section-lead-topic-s{
  font-size: 1.8rem;
  margin-top: 95px;
}
.topic-txt-link:hover{
  color: var(--color--pl);
  text-decoration: underline;
}
.topic-txt-bold{
  font-weight: bold;
}
.topic-txt-line{
  text-decoration: line-through;
}
.prof_people{
  margin: 0 0 40px 0!important;
}
.mt-be-column h3{
  font-size: 1.8rem;
  font-weight: bold;
  padding-bottom: 20px;
  position: relative;
  margin-top: 95px;
}
.mt-be-column h3::before{
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 49%;
  height: 2px;
  background: var(--gradation--rd);
}
.mt-be-column h4{
  font-size: 1.6rem;
  color: var(--color--pl);
}

blockquote{
  position: relative;
  padding-block: 60px;
  margin-block:120px 75px;
}
blockquote p{
  margin: 0!important;
}
blockquote::before,
blockquote::after{
content: "";
position: absolute;
max-width: 60px;
width: 60px;
height: 51px;
background-repeat: no-repeat;
background-size: cover;
}
blockquote::before{
  background-image: url(../images/wordstxt_top.svg);
  top: 0;
  left: 0;
}
blockquote::after{
  background-image: url(../images/wordstxt_btm.svg);
  bottom: 0;
  right: 0;
}
.mt-be-columns{
  gap: 20px;
  margin-top: 60px;
}
.mt-be-columns .col-md-6{
  width: 50%;
}
.talk_name{
  font-weight: bold;
  margin-block: 0px!important;
}
.talk_text{
  margin-top: 0px!important;
}
table{
  margin-block: 115px 90px ;
}
tbody{
  position: relative;
}
tbody::before{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 35%;
  height: 100%;
  background-repeat: no-repeat;
  background-size: cover;
  background-image: url(../images/table.png);
  z-index: -1;
}
tbody tr td:first-of-type{
  border-bottom: 1px solid var(--color--pl)!important;
  padding: 30px 40px;
  width: 35%!important;
}
tbody tr td:last-of-type{
  border-bottom: 1px solid #ADADAD!important;
  padding: 30px 40px;
  width: 65%!important;
}
.segment-item_1c{
  list-style: none;
  margin: 0;
}
.segment-link_1c {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 10px;
  height: 96px;
  padding-inline: 30px 0;
  line-height: 1.6;
  color: #FFF !important;
}
.segment-link_1c .arrow-l-icon {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: 72px;
  margin-inline: auto 0;
}
.segment-link_1c::before, .segment-link_1c::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: var(--gradation--rd);
}
.segment-link_1c::after {
  width: 72px;
  margin-inline: auto 0;
  background: #000;
  -webkit-transition: 0.4s ease;
  transition: 0.4s ease;
}
.topic-cautionary-note{
  border-top:1px solid #ADADAD;
  padding-top: 30px;
  margin-top: 90px;
}
@media (hover: hover) {
  .segment-link_1c:where(:-moz-any-link, :enabled, summary):hover::after {
    width: calc(100% - 14px);
  }
  .segment-link_1c:where(:any-link, :enabled, summary):hover::after {
    width: calc(100% - 14px);
  }
}
@media screen and (max-width: 1023px) {
  .section-topic{
    max-width: 1023px;
    width: 100%;
  }
  .section-topic-category{
    order: 2;
    margin-top: 80px;
  }
  .category-list{
    order: 1;
    margin-top: 0!important;
  }
  .section-lead-topic{
    font-size: 2.4rem;
    margin-block: 20px 60px;
  }
  .section-topic-txt,
  .mt-be-column p{
    margin-top: 20px;
  }
  .profie_area{
    padding: 50px 30px 90px;
  }
  .profie_area .mt-be-columns{
    flex-direction: column;
    gap: 14px;
  }
  .profie_area .mt-be-columns .col-md-6:first-of-type,
  .profie_area .mt-be-columns .col-md-6:nth-of-type(2){
    width: 100%;
    max-width: 100%;
    padding-left: 0;
  }
  .profie_area .mt-be-columns .col-md-6:first-of-type p{
    width: auto;
  }
  .section-lead-topic-m,
  .title_link{
    font-size: 2rem;
    margin-top: 50px;
  }
  .topic-content-pic{
    margin-top: 20px;
  }
  .section-lead-topic-s{
    font-size: 1.6rem;
    margin-top: 80px;
  }
  .prof_people{
    margin: 0 0 30px 0!important;
  }
  .mt-be-column h3{
    font-size: 1.6rem;
    font-weight: bold;
    margin-top: 80px;
  }
  .mt-be-column h3::before{
    width: 100%;
  }
  blockquote{
    margin-block:50px;
  }
  .mt-be-columns{
    flex-direction: column;
  }
  .mt-be-columns .col-md-6{
    width: 100%;
  }
  table{
    margin-block: 100px;
  }
  tbody::before{
    background-image: none;
  }
  tbody tr td:first-of-type{
    display: block;
    width: 100%!important;
    background-image: url(../images/table_sp.png);
    padding: 10px 0px;
    text-align: center;
  }
  tbody tr td:last-of-type{
    display: block;
    width: 100%!important;
    height: auto!important;
    border-bottom: none!important;
    padding: 20px 0px 30px;
  }
  .segment-link_1c {
    height: 70px;
    padding-inline: 25px 0;
  }
  .segment-link_1c .arrow-l-icon {
    width: 54px;
  }
  .segment-link_1c::after {
    width: 54px;
  }
  .topic-more-button-wrapper{
    flex-direction: column;
  }
  .topic-more-button-wrapper .more-button {
    margin: 0 auto;
  }

}

/* topic sidenav */
.new_icon{
  color: #FF0000;
  font-weight: bold;
  padding: 0 5px;
}
.topic-content{
  display: flex;
  margin-top: 80px;
}
.section-topic-side{
  max-width: 260px;
  width: 26%;
  padding-left: 40px;
}
.section-topic-side .section-heading{
  font-size: 3rem;
  margin: 0;
  font-weight: 500;
}
.section-topic-side .topic-side-article-list{
  margin-top: 30px;
}
.section-topic-side .topic-side-article-list .article-card{
  margin: 10px auto 0;
  height: auto;
}
.article-card-link-side{
  position: relative;
  display: -ms-grid;
  display: grid;
  -ms-grid-columns: min(45%, 200px) 12px auto;
  grid-template-columns: min(45%, 200px) auto;
  -ms-grid-rows: auto 15px auto;
  grid-template-rows: repeat(2, auto);
  gap: 15px 12px;
  border: 1px solid var(--border-color);
  padding: 14px 4px 27px 26px;
}
.article-card-link-side .arrow-icon {
  position: absolute;
  inset: auto 20px 20px auto;
  width: 21px;
  height: 21px;
}
.article-card-link-side:where(:any-link, :enabled, summary):hover .thumbnail {
  -webkit-transform: scale(1.05);
  transform: scale(1.05);
}
.article-card-link-side .article-card-title{
  font-size: 1.4rem;
  line-height: 1.3;
  font-weight: 500;
  margin-block: 0 30px;
}
@media screen and (max-width: 1023px) {
  .topic-content{
    flex-direction: column;
  }
  .section-topic-side{
    max-width: 1023px;
    width: 100%;
    padding-left: 0;
    margin-top: 60px;
  }
  .article-card-link-side{
    padding: 14px 4px 27px 0;
  }
}
/* topics */
.section-topic-deco{
  position: absolute;
  top: 0;
  left: 0;
  width: 18.5vw;
}
.topic-category{
  margin-bottom: 80px;
  font-size: 2.2rem;
  font-weight: bold;
}
.category-list-ttl{
  font-size: 1.6rem;
  color: var(--color--pl);
  margin-bottom: 10px;
}
.category-list-ttl span{
  font-size: 2.8rem;
  display: inline-block;
  padding-right: 20px;
  font-family: Arial;
  font-weight: bold;
}

.topic-category span:not(:last-of-type){
  display: inline-block;
  padding-right: 43px;
}
.main-category{
  margin-bottom: 0;
}
.main-category:not(:first-of-type){
  margin-top: 20px;
}

.article-list-topics{
  grid-template-columns: repeat(2, 1fr);
  margin-top: 75px;
}
.article-list-topics .topic-tag{
  grid-area: 3 / 1 / 3 / 3;
  padding-right: 35px;
  padding-bottom: 10px;
}
.category-list .arrow-l-icon{
  background-size: 11px auto;
  width: 72px;
}
.sub-category{
  background: var(--gradation--rd);
  padding-bottom: 30px;
  /* display: none; */
}
.sub-category.js_open{
  display: block;
}
.category-list ul li{
  margin: 0;
  list-style: none;
  position: relative;
  /* padding-left: 2.2em; */
}
.category-list ul li::before{
  content: "";
  position: absolute;
  right: 30px;
  top: 50%;
  width: 10px;
  height: 10px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg) translateY(-50%);
}
.category-list ul li::after {
  position: absolute;
  left: 10%;
  content: '';
  width: 82%;
  height: 1px;
  background: #fff;
  bottom: -1px;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: transform 0.3s; /*Ã¨Å¾Å¸Ã§â€°â„¢Ã¯Â½Â½Ã¯Â½Â¢Ã§Â¸ÂºÃ¯Â½Â®Ã¨Â­Å½Ã£â€šâ€¹Ã¤Â¿Â£*/
  }
.category-list ul li:hover::after {
  transform: scale(1, 1);
  }
.category-list ul li a{
  color: #fff;
  text-decoration: none;
  padding-block: 20px;
  display: inline-block;
  padding-left: 2.2em;
  width: calc(100% - 2.2em);
}
.category-list ul li a:hover{
  color: #fff;
}
.category-list ul li.current_cat_list::after{
	transform: scale(1);
}
.topics-pagination{
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 387px;
  margin: 115px auto 0;
}
.topics-pagination a{
  text-decoration: none;
  color: var(--color--pl);
  font-family: var(--en-font);
}
.topics-pagination a:hover{
  text-decoration: underline;
}
.topics-pagination .pagination-icn-prev,
  .topics-pagination .pagination-icn-next{
  width: 20px;
}
.topics-pagination .pagination-icn-prev{
  margin-right: 15px;
}
.topics-pagination .pagination-icn-next{
  margin-left: 15px;
}
.btm_pic{
  margin-top: 150px;
}
.main-category .segment-link {
  min-height: 96px;
  height: auto;
  padding-block: 10px
}
@media screen and (max-width: 1023px) {
  .topic-category{
    font-size: 2rem;
  }
  .js_current_parent::after {
    width: calc(100% - 14px);
  }
  .article-list-topics{
    grid-template-columns: repeat(1, 1fr);
    margin-top: 0;
  }
  .article-list-topics .topic-tag{
    margin-left: 17px;
  }
  .category-list ul li::after {
    left: 4%;
    width: 92%;
  }
  .topic-btm-article-list{
    grid-template-columns: repeat(2, 1fr);
  }
  .topic-btm-article-list .article-card:nth-of-type(3){
    display: none;
  }
  .topic-btm-article-list .article-card-link{
    display: block;
  }
  .topic-btm-article-list .article-card-title{
    margin: 0 0 0 17px;
  }
  .topic-btm-article-list .article-card-date{
    margin: 40px 0 0 17px;
  }
  .order_2{
    order: 2;
  }
  .order_1{
    order: 1;
  }
}
@media screen and (max-width: 576px) {
  .topic-category{
    font-size: 1.4rem;
  }
  .section-topic-deco{
    width: 38.5vw;
  }
}