@charset "UTF-8";
/*変数*/
:root {
  --black: #222222;
  --white:#FDFDFD;
  --gray_line:#cacaca;
  --gray:#ECECEC;
  --white90: rgba(255,255,255,0.9);
  --yellow:#FCCA3D;
  --yellow75:rgba(252, 202, 61 , 0.75);
  --yellow80: rgba(252, 202, 64, 0.8);
  --red:rgb(217, 28, 28); }

/*変数ここまで*/
html {
  font-size: 62.5%;
  overscroll-behavior: none;
  background: var(--white); }

body {
  overflow-x: hidden;
  -webkit-text-size-adjust: none;
  opacity: 0;
  animation: Fadein .6s ease-in .2s forwards;
  color: var(--black);
  font-family: "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif; }
  body.no-scroll {
    overflow: hidden; }

.han {
  font-family: YakuHanJP, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif; }

.eng {
  font-family: 'inter', YakuHanJP, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif; }

.bold {
  font-weight: bold;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.material-icons-outlined {
  font-family: 'Material Icons' !important;
  vertical-align: middle; }

@keyframes Fadein {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
@keyframes Fadeinslide {
  0% {
    opacity: 0;
    transform: translate(0, 16px); }
  100% {
    opacity: 1;
    transform: translate(0, 0px); } }
@keyframes Fadeinwidth {
  0% {
    opacity: 0;
    width: 0; }
  100% {
    opacity: 1;
    width: 100%; } }
@keyframes Fadeoutslide {
  0% {
    opacity: 0;
    transform: translate(0, 0px); }
  100% {
    opacity: 1;
    transform: translate(0, 0px); } }
@keyframes Fadeinnav {
  0% {
    display: none;
    opacity: 0; }
  1% {
    display: block;
    opacity: 0; }
  100% {
    display: block;
    opacity: 1; } }
.sa.slidein {
  opacity: 0; }
  .sa.slidein.show {
    animation: Fadeinslide .8s ease-out 0s forwards; }

div, span, p, h1, h2, h3, h4, h5, h6, header, footer, aside, figure {
  box-sizing: border-box; }

h1, h2, h3, h4, h5, h6 {
  font-weight: 700;
  letter-spacing: 0.025em; }

span.yellowmark {
  display: inline-block;
  line-height: 1.5;
  position: relative; }
  span.yellowmark::before {
    content: "";
    display: block;
    position: absolute;
    background-color: var(--yellow);
    top: -2px;
    bottom: -2px;
    left: -4px;
    right: -4px;
    z-index: -1; }

span.yellowmarker {
  background-color: var(--yellow); }

.center {
  text-align: center; }

.underline span.line {
  display: inline-block;
  border-bottom: 4px solid; }
@media screen and (min-width: 960px) {
  .underline span.line {
    display: inline-block;
    border-bottom: 2px solid; } }

.h_xl {
  font-size: 3.2rem; }
  .h_xl.eng {
    font-size: 3.2rem; }
  @media screen and (min-width: 960px) {
    .h_xl {
      font-size: 6.4rem; }
      .h_xl.eng {
        font-size: 7.2rem; } }

.h_l {
  font-size: 2.8rem;
  line-height: 1.5; }
  @media screen and (min-width: 960px) {
    .h_l {
      font-size: 5.6rem; } }

.h_m {
  font-size: 2rem;
  line-height: 1.5; }
  @media screen and (min-width: 960px) {
    .h_m {
      font-size: 4rem; } }

.h_s {
  font-size: 1.6rem;
  line-height: 1.5; }
  @media screen and (min-width: 960px) {
    .h_s {
      font-size: 2.4rem; }
      .h_s.eng {
        font-size: 3rem; } }

.h_xs {
  font-size: 1.4rem;
  line-height: 1.5; }
  @media screen and (min-width: 960px) {
    .h_xs {
      font-size: 1.8rem; } }

.body_lead_l {
  font-size: 2rem;
  line-height: 1.85;
  font-weight: 700; }
  @media screen and (min-width: 960px) {
    .body_lead_l {
      font-size: 2.4rem; } }

.body_lead {
  font-size: 1.3rem;
  line-height: 1.9;
  font-weight: 700; }
  @media screen and (min-width: 960px) {
    .body_lead {
      font-size: 1.8rem; } }

.body, p {
  font-size: 1.3rem;
  line-height: 2;
  font-weight: 500; }
  @media screen and (min-width: 960px) {
    .body, p {
      font-size: 1.5rem; } }

.body_cap {
  font-size: 1.1rem;
  line-height: 2;
  font-weight: 500; }
  @media screen and (min-width: 960px) {
    .body_cap {
      font-size: 1.3rem; } }

span.lb {
  display: inline-block; }

.for_sp {
  display: inline; }
  .for_sp.block {
    display: block; }
  @media screen and (min-width: 960px) {
    .for_sp {
      display: none; }
      .for_sp.block {
        display: none; } }

.for_pc {
  display: none; }
  @media screen and (min-width: 960px) {
    .for_pc {
      display: inline; }
      .for_pc.block {
        display: block; } }

.bgwhite {
  background-color: var(--white); }

.bgyellow {
  background-color: var(--yellow); }

.bggray {
  background-color: var(--gray); }

.bgcheck_gray {
  background-image: linear-gradient(0deg, transparent calc(100% - 1px), #e8e8e8 calc(100% - 1px)), linear-gradient(90deg, transparent calc(100% - 1px), #e8e8e8 calc(100% - 1px));
  background-size: 16px 16px;
  background-repeat: repeat;
  background-position: center center;
  background-color: var(--gray);
  border: 1px solid var(--gray); }

.large_width {
  max-width: 888px;
  margin-left: auto;
  margin-right: auto; }
  @media screen and (min-width: 960px) {
    .large_width {
      max-width: 1280px; } }

.basic_width {
  max-width: 640px;
  margin-left: auto;
  margin-right: auto; }
  @media screen and (min-width: 960px) {
    .basic_width {
      max-width: 1080px; }
      .basic_width.pad16 {
        max-width: calc(1080px + 80px); } }

.small_width {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto; }

.pad16 {
  padding-left: 16px;
  padding-right: 16px; }
  @media screen and (min-width: 960px) {
    .pad16 {
      padding-left: 40px;
      padding-right: 40px; } }
  @media screen and (min-width: 960px) {
    .pad16.pcnopad {
      padding-left: 0px;
      padding-right: 0px; } }

a {
  text-decoration: none;
  color: var(--black); }
  a.textlink {
    text-decoration: underline; }
  @media screen and (min-width: 960px) {
    a:hover {
      opacity: .8;
      transition: .4s; } }

.relative {
  position: relative; }

button, input, select, textarea, pre, th, td, li, dt, dd {
  font-family: inherit; }

a.btn {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 56px;
  max-width: 480px;
  font-weight: 700;
  position: relative; }
  a.btn .btn_inner {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    line-height: 1;
    letter-spacing: 0.025em; }
    a.btn .btn_inner span {
      display: block; }
      a.btn .btn_inner span.icon {
        width: 24px;
        height: 24px;
        position: absolute;
        top: 0;
        bottom: 0;
        margin: auto;
        right: 16px; }
        a.btn .btn_inner span.icon img {
          display: block;
          height: 24px;
          object-fit: contain; }
  a.btn.btn_black {
    background: var(--black);
    color: var(--white); }
    a.btn.btn_black .btn_inner span.icon svg {
      fill: var(--white); }
  a.btn.btn_yellow {
    background: linear-gradient(to left, #FFD800, var(--yellow)); }
  a.btn.btndef {
    filter: drop-shadow(0px 0px 8px rgba(0, 0, 0, 0.125)); }
  @media screen and (min-width: 960px) {
    a.btn {
      height: 72px;
      max-width: 600px; }
      a.btn .btn_inner {
        font-size: 1.6rem; }
        a.btn .btn_inner span {
          display: block; }
          a.btn .btn_inner span.icon {
            width: 32px;
            height: 32px;
            position: absolute;
            top: 0;
            bottom: 0;
            margin: auto;
            right: 24px; }
            a.btn .btn_inner span.icon img {
              height: 32px; }
      a.btn:hover {
        opacity: 0.8; }
      a.btn.btndef:hover {
        filter: drop-shadow(0px 0px 12px rgba(0, 0, 0, 0.2)); } }

.btnarea_single {
  margin-top: 32px; }
  .btnarea_single a.btn {
    margin-left: auto;
    margin-right: auto; }
  @media screen and (min-width: 960px) {
    .btnarea_single {
      margin-top: 48px; } }

header {
  box-sizing: border-box;
  height: 40px;
  padding: 0 0 0 16px;
  filter: drop-shadow(0px 0px 8px rgba(0, 0, 0, 0.125));
  position: fixed;
  top: 0;
  width: 100vw;
  z-index: 999;
  background-color: rgba(255, 255, 255, 0);
  transition: filter .8s, background-color .6s;
  background-color: var(--white);
  filter: drop-shadow(0px 0px 8px rgba(0, 0, 0, 0.125)); }
  header.inmain {
    background-color: transparent; }
  header .header_inner {
    display: flex;
    align-items: center;
    justify-content: space-between; }
    header .header_inner h1.logo {
      height: 32px;
      width: 80px;
      display: flex;
      align-items: center;
      justify-content: flex-start; }
      header .header_inner h1.logo a {
        display: block;
        height: 32px; }
        header .header_inner h1.logo a img {
          width: 100%;
          height: 32px;
          object-fit: contain; }
    header .header_inner .header_right {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      width: 100%; }
      header .header_inner .header_right nav.header_nav {
        display: flex;
        align-self: center;
        justify-content: flex-end;
        gap: 16px;
        padding-right: 24px;
        font-weight: 500; }
        header .header_inner .header_right nav.header_nav a {
          display: block;
          font-size: 1.3rem;
          letter-spacing: 0.05em; }
      header .header_inner .header_right a.header_btn {
        width: 100%;
        min-width: 80px;
        max-width: 160px;
        height: 40px;
        padding: 0 0 0 8px; }
        header .header_inner .header_right a.header_btn .btn_inner {
          font-size: 1.1rem;
          line-height: 1.35;
          gap: 4px; }
          header .header_inner .header_right a.header_btn .btn_inner span.for_pc {
            display: none; }
          header .header_inner .header_right a.header_btn .btn_inner span.icon {
            width: 20px;
            height: 20px;
            position: static; }
            header .header_inner .header_right a.header_btn .btn_inner span.icon .material-icons {
              font-size: 20px; }
      header .header_inner .header_right .humburger {
        width: 56px;
        cursor: pointer; }
        header .header_inner .header_right .humburger .humburger_inner {
          position: relative;
          height: 20px; }
          header .header_inner .header_right .humburger .humburger_inner span, header .header_inner .header_right .humburger .humburger_inner::before, header .header_inner .header_right .humburger .humburger_inner::after {
            transition: top .2s, bottom .2s , transform 0.8s;
            display: block;
            content: "";
            height: 2px;
            width: 32px;
            background-color: var(--black);
            position: absolute;
            left: 0;
            right: 0;
            margin: auto; }
          header .header_inner .header_right .humburger .humburger_inner::before {
            top: 0; }
          header .header_inner .header_right .humburger .humburger_inner span {
            top: 0;
            bottom: 0; }
          header .header_inner .header_right .humburger .humburger_inner::after {
            bottom: 0; }
  header .humburger_nav {
    display: none;
    position: fixed;
    top: 40px;
    /*header高さ*/
    left: 0;
    width: 100vw;
    height: calc(100dvh - 40px);
    /*header高さを引く*/
    overflow: scroll;
    background-color: var(--white90); }
    header .humburger_nav .humburger_inner {
      width: 100%;
      max-width: 800px;
      padding: 10dvh 16px;
      margin: 0 auto; }
      header .humburger_nav .humburger_inner a {
        display: block; }
      header .humburger_nav .humburger_inner .hamburger_inner_large {
        width: 100%;
        display: flex;
        justify-content: space-between;
        gap: 40px;
        flex-wrap: wrap; }
        header .humburger_nav .humburger_inner .hamburger_inner_large a.large {
          font-size: 2rem;
          letter-spacing: 0.025em;
          font-weight: 700;
          width: 100%;
          margin-bottom: 0.5em; }
        header .humburger_nav .humburger_inner .hamburger_inner_large .left, header .humburger_nav .humburger_inner .hamburger_inner_large .right {
          flex-grow: 1; }
          header .humburger_nav .humburger_inner .hamburger_inner_large .left a.large:last-child, header .humburger_nav .humburger_inner .hamburger_inner_large .right a.large:last-child {
            margin-bottom: 0; }
    header .humburger_nav .humburger_nav_sns {
      display: flex;
      align-items: center;
      gap: 8px;
      margin: 40px 0; }
      header .humburger_nav .humburger_nav_sns a {
        display: block;
        width: 32px;
        height: 32px;
        background-color: var(--black);
        border-radius: 16px;
        padding: 4px; }
    header .humburger_nav .humburger_nav_small {
      font-weight: 500;
      font-size: 1.2rem;
      display: flex;
      gap: 16px;
      flex-direction: column; }
  header.toggled {
    filter: drop-shadow(0px 0px 8px rgba(0, 0, 0, 0));
    background-color: var(--white90); }
    header.toggled .header_inner .header_right .humburger .humburger_inner::before {
      top: 9px;
      transform: rotate(33deg);
      transform-origin: center; }
    header.toggled .header_inner .header_right .humburger .humburger_inner span {
      transform: rotate(33deg); }
    header.toggled .header_inner .header_right .humburger .humburger_inner::after {
      bottom: 9px;
      transform: rotate(-33deg);
      transform-origin: center; }
    header.toggled .humburger_nav {
      display: block;
      opacity: 0;
      animation: Fadeinnav .4s ease-in 0s forwards; }
  header.bgwhite {
    background-color: var(--white90); }
  @media screen and (min-width: 960px) {
    header {
      height: 64px;
      padding: 0 0 0 40px; }
      header .header_inner h1.logo {
        height: 64px;
        width: 120px; }
        header .header_inner h1.logo a {
          height: 40px; }
          header .header_inner h1.logo a img {
            height: 40px; }
      header .header_inner .header_right nav.header_nav {
        gap: 16px;
        padding-right: 24px; }
        header .header_inner .header_right nav.header_nav a {
          font-size: 1.3rem; }
      header .header_inner .header_right a.header_btn {
        min-width: 240px;
        max-width: 320px;
        height: 64px;
        padding: 0 16px; }
        header .header_inner .header_right a.header_btn .btn_inner {
          font-size: 1.4rem; }
          header .header_inner .header_right a.header_btn .btn_inner span.for_pc {
            display: block; }
          header .header_inner .header_right a.header_btn .btn_inner span.for_sp {
            display: none; }
      header .header_inner .header_right .humburger {
        width: 88px; }
        header .header_inner .header_right .humburger .humburger_inner {
          height: 24px; }
          header .header_inner .header_right .humburger .humburger_inner span, header .header_inner .header_right .humburger .humburger_inner::before, header .header_inner .header_right .humburger .humburger_inner::after {
            height: 2px;
            width: 40px; }
      header .humburger_nav {
        top: 64px;
        /*header高さ*/
        height: calc(100dvh - 64px);
        /*header高さを引く*/ }
        header .humburger_nav .humburger_inner {
          max-width: 800px;
          padding: 20dvh 64px; }
          header .humburger_nav .humburger_inner .hamburger_inner_large {
            width: 100%;
            display: flex;
            justify-content: space-between;
            gap: 40px;
            flex-wrap: wrap; }
            header .humburger_nav .humburger_inner .hamburger_inner_large a.large {
              font-size: 3.2rem; }
            header .humburger_nav .humburger_inner .hamburger_inner_large .left, header .humburger_nav .humburger_inner .hamburger_inner_large .right {
              flex-grow: 1; }
              header .humburger_nav .humburger_inner .hamburger_inner_large .left a.large:last-child, header .humburger_nav .humburger_inner .hamburger_inner_large .right a.large:last-child {
                margin-bottom: 0; }
        header .humburger_nav .humburger_nav_sns {
          display: flex;
          align-items: center;
          gap: 8px;
          margin: 40px 0; }
          header .humburger_nav .humburger_nav_sns a {
            width: 40px;
            height: 40px;
            border-radius: 20px;
            padding: 4px; }
        header .humburger_nav .humburger_nav_small {
          font-size: 1.5rem;
          gap: 32px;
          flex-direction: row; }
      header.toggled {
        filter: drop-shadow(0px 0px 8px rgba(0, 0, 0, 0));
        background-color: var(--white90); }
        header.toggled .header_inner .header_right .humburger .humburger_inner::before {
          top: 11px; }
        header.toggled .header_inner .header_right .humburger .humburger_inner::after {
          bottom: 11px; } }

.flexitem {
  display: flex;
  justify-content: space-between; }
  .flexitem.rowreverse {
    flex-direction: row-reverse; }
  .flexitem.aligncenter {
    align-items: center; }
  .flexitem .flex_content {
    width: calc((100% - 40px ) / 2); }
    .flexitem .flex_content img {
      display: block;
      margin: 0 auto; }
  .flexitem .flex_item_img {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%; }
    .flexitem .flex_item_img .img {
      width: 100%;
      max-width: 400px; }
    .flexitem .flex_item_img img, .flexitem .flex_item_img svg {
      width: 100%; }
  .flexitem .textarea p:last-child {
    margin-bottom: 0; }
  .flexitem.nosp {
    display: block; }
    .flexitem.nosp .flex_content {
      width: 100%; }
    .flexitem.nosp .flex_item_img {
      padding: 0 32px; }
    .flexitem.nosp .textarea {
      margin-top: 40px; }
  @media screen and (min-width: 960px) {
    .flexitem .flex_item_img .img {
      max-width: 480px; }
    .flexitem.nosp {
      display: flex;
      justify-content: space-between; }
      .flexitem.nosp .flex_content {
        width: calc((100% - 40px ) / 2); }
      .flexitem.nosp .textarea {
        margin-top: 0px; } }

.project_list {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px; }
  .project_list .project_item {
    position: relative;
    width: 100%; }
    .project_list .project_item a {
      display: flex;
      align-items: stretch;
      padding: 24px 16px 8px 16px; }
      .project_list .project_item a .project_item_inner {
        width: 100%; }
      .project_list .project_item a .tag {
        position: absolute;
        top: 0;
        right: 0;
        font-size: 1.1rem;
        padding: 4px;
        text-align: center;
        font-weight: 700;
        width: 120px; }
      .project_list .project_item a .titlearea h3 {
        margin-bottom: 0px; }
      .project_list .project_item a .titlearea .copy {
        margin-top: 16px; }
      .project_list .project_item a .detailbtn {
        width: 100px;
        margin-top: 16px;
        margin-left: auto; }
        .project_list .project_item a .detailbtn svg {
          fill: var(--black); }
  @media screen and (min-width: 960px) {
    .project_list .project_item {
      width: calc((100% - 8px )/2); }
      .project_list .project_item a {
        padding: 64px 24px 32px 40px; }
        .project_list .project_item a .tag {
          font-size: 1.5rem;
          padding: 12px;
          width: 160px; }
        .project_list .project_item a .titlearea h3 {
          margin-bottom: 8px; }
        .project_list .project_item a .titlearea .copy {
          margin-top: 40px; }
        .project_list .project_item a .detailbtn {
          width: 140px;
          margin-top: 24px;
          margin-left: auto; }
          .project_list .project_item a .detailbtn svg {
            fill: var(--black); }
        .project_list .project_item a:hover {
          opacity: 1;
          background-color: var(--yellow); }
          .project_list .project_item a:hover .detailbtn .cls-1 {
            transform: translate(8px, 0); } }

@keyframes changein {
  0% {
    opacity: 0;
    transform: translate(0, -32px); }
  100% {
    opacity: 1;
    transform: translate(0, 0px); } }
@keyframes changeout {
  0% {
    opacity: 1;
    transform: translate(0, 0px); }
  100% {
    opacity: 0;
    transform: translate(0, 32px); } }
.changecopy_wrap {
  display: flex; }
  .changecopy_wrap.center {
    justify-content: center; }
    .changecopy_wrap.center ul {
      border-bottom: 2px solid;
      padding-left: 0.25em;
      padding-right: 0.25em;
      position: relative;
      width: 3em; }
      .changecopy_wrap.center ul li {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        margin: auto;
        opacity: 0; }
        .changecopy_wrap.center ul li.show {
          animation: changein .8s ease-out 0s forwards; }
        .changecopy_wrap.center ul li.remove {
          animation: changeout .8s ease-out 0s forwards; }

ul.pointlist li.pointlist_item {
  background-color: var(--white);
  margin-bottom: 16px;
  padding: 24px 16px; }
  ul.pointlist li.pointlist_item:last-child {
    margin-bottom: 0; }
  ul.pointlist li.pointlist_item h3 {
    margin-bottom: 1.5em;
    text-align: center; }
@media screen and (min-width: 960px) {
  ul.pointlist li.pointlist_item {
    margin-bottom: 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    padding: 64px 40px; }
    ul.pointlist li.pointlist_item h3 {
      flex: 2;
      max-width: 320px;
      margin-bottom: 0;
      text-align: left; }
    ul.pointlist li.pointlist_item p {
      flex: 3; } }

section#top_main {
  position: relative;
  padding-bottom: 140px;
  box-sizing: border-box;
  width: 100vw;
  height: calc(100vh - 64px);
  min-height: 400px;
  max-height: 640px;
  overflow: hidden; }
  section#top_main .mainmov {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto; }
    section#top_main .mainmov video, section#top_main .mainmov img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      z-index: -100;
      position: relative;
      opacity: 0.75; }
    section#top_main .mainmov::after {
      content: '';
      display: block;
      position: absolute;
      top: 0;
      right: 0;
      width: 100%;
      height: 100%;
      background-color: rgba(0, 0, 0, 0.5);
      background-image: radial-gradient(#111 30%, transparent 31%), radial-gradient(#111 30%, transparent 31%);
      background-size: 4px 4px;
      background-position: 0 0, 2px 2px;
      opacity: 0.5; }
  section#top_main .main_title {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    margin: auto;
    display: flex;
    justify-content: center;
    align-items: center; }
    section#top_main .main_title .main_title_inner .maincopy {
      color: var(--white);
      font-size: clamp(2rem, calc(0.205rem + 6vw), 4.8rem);
      line-height: 1;
      text-align: center;
      font-weight: 700; }
      section#top_main .main_title .main_title_inner .maincopy .copyline {
        display: flex;
        text-align: center;
        margin: 0 auto;
        background-color: var(--yellow75);
        padding: 16px;
        opacity: 0; }
        section#top_main .main_title .main_title_inner .maincopy .copyline.copyline2 {
          display: inline-block;
          margin: 0 auto;
          padding: 16px 0px 16px 0.5em; }
        section#top_main .main_title .main_title_inner .maincopy .copyline:nth-child(1) {
          animation: Fadeinslide .8s ease-out .4s forwards; }
        section#top_main .main_title .main_title_inner .maincopy .copyline:nth-child(2) {
          animation: Fadeinslide .8s ease-out .8s forwards; }
        section#top_main .main_title .main_title_inner .maincopy .copyline span {
          display: block; }
        section#top_main .main_title .main_title_inner .maincopy .copyline ul {
          position: relative;
          width: 3.5em; }
          section#top_main .main_title .main_title_inner .maincopy .copyline ul::after {
            display: block;
            content: "";
            height: 2px;
            width: 0%;
            background: var(--white);
            position: absolute;
            bottom: -4px;
            left: 0;
            animation: borderwidth .8s ease-out 0.4s forwards; }
          section#top_main .main_title .main_title_inner .maincopy .copyline ul li {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            margin: auto;
            opacity: 0;
            transform: translateY(-16px);
            transition: transform .4s, opacity .4s; }
            section#top_main .main_title .main_title_inner .maincopy .copyline ul li.show {
              opacity: 1;
              transform: translateY(0px); }
            section#top_main .main_title .main_title_inner .maincopy .copyline ul li.show-off {
              opacity: 0;
              transform: translateY(16px); }
    section#top_main .main_title .main_title_inner .mainlead {
      text-align: center;
      color: var(--white);
      font-size: 1.4rem;
      line-height: 1.75;
      margin-top: 32px;
      opacity: 0;
      animation: Fadeinslide .8s ease-out 1.6s forwards; }
  @media screen and (min-width: 960px) {
    section#top_main {
      padding-bottom: 140px;
      height: calc(100vh - 32px);
      min-height: 720px;
      max-height: 960px; }
      section#top_main .main_title .main_title_inner .maincopy {
        font-size: 7.6rem; }
      section#top_main .main_title .main_title_inner .mainlead {
        font-size: 2rem; } }

section#top_00 {
  padding-top: 40px;
  padding-bottom: 40px; }
  section#top_00 .sec0_inner {
    position: relative;
    z-index: 100;
    padding-bottom: 32px; }
    section#top_00 .sec0_inner h2 {
      color: var(--white); }
    section#top_00 .sec0_inner ul.sec0list_wrap {
      display: flex;
      justify-content: center;
      gap: 16px;
      flex-wrap: wrap;
      margin-top: 40px; }
      section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item {
        opacity: 0;
        border-radius: 2px;
        width: 100%;
        max-width: 400px;
        margin-left: auto;
        margin-right: auto;
        background-color: var(--white90);
        padding: 24px; }
        section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item h3 {
          display: flex;
          align-items: center; }
          section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item h3 .num {
            font-size: 6.4rem;
            line-height: 1;
            color: var(--yellow);
            font-weight: 700;
            width: 0.75em;
            text-align: center;
            margin-right: 0.25em; }
          section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item h3 .text {
            font-size: 1.5rem; }
            section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item h3 .text span.small {
              display: block; }
            section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item h3 .text span.big {
              font-size: 2rem;
              margin-top: 4px;
              display: block; }
        section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item .img {
          height: 104px;
          margin: 16px auto; }
          section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item .img img {
            width: 100%;
            height: 104px;
            object-fit: contain; }
        section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item h4 {
          margin: 24px 0 16px 0;
          text-align: center; }
        section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item .arrow {
          display: flex;
          align-items: center;
          justify-content: center; }
          section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item .arrow img {
            width: 32px; }
      section#top_00 .sec0_inner ul.sec0list_wrap.show li:nth-child(1) {
        animation: Fadeinslide .8s ease-out 0s forwards; }
      section#top_00 .sec0_inner ul.sec0list_wrap.show li:nth-child(2) {
        animation: Fadeinslide .8s ease-out .4s forwards; }
      section#top_00 .sec0_inner ul.sec0list_wrap.show li:nth-child(3) {
        animation: Fadeinslide .8s ease-out .8s forwards; }
  @media screen and (min-width: 960px) {
    section#top_00 {
      padding-top: 72px;
      padding-bottom: 88px; }
      section#top_00 .sec0_inner ul.sec0list_wrap {
        flex-wrap: nowrap; }
        section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item {
          margin-left: initial;
          margin-right: initial; }
          section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item h3 {
            display: flex;
            align-items: center; }
            section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item h3 .num {
              font-size: 6.4rem; }
            section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item h3 .text {
              font-size: 1.8rem; }
              section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item h3 .text span.small {
                display: block; }
              section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item h3 .text span.big {
                font-size: 2.4rem;
                margin-top: 4px;
                display: block;
                word-break: keep-all; }
          section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item .img {
            height: 120px;
            margin: 16px auto; }
            section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item .img img {
              width: 100%;
              height: 120px;
              object-fit: contain; }
          section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item h4 {
            margin: 24px 0 16px 0;
            text-align: center; }
          section#top_00 .sec0_inner ul.sec0list_wrap li.sec0item .arrow {
            display: flex;
            align-items: center;
            justify-content: center; } }

section#top_01 {
  padding-top: 40px;
  padding-bottom: 40px; }
  section#top_01 .project_list {
    margin-top: 40px; }
  @media screen and (min-width: 960px) {
    section#top_01 {
      padding-top: 88px;
      padding-bottom: 88px; }
      section#top_01 .project_list {
        margin-top: 80px; } }

section#top_02 {
  padding-top: 340px;
  position: relative;
  z-index: -1;
  overflow: hidden; }
  section#top_02 .sec01logo {
    z-index: -2;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: opacity .8s;
    opacity: 0;
    overflow: hidden; }
    section#top_02 .sec01logo .sec01logo_inner {
      width: 80%; }
      section#top_02 .sec01logo .sec01logo_inner img {
        width: 100%;
        display: block; }
      section#top_02 .sec01logo .sec01logo_inner .sec01logo_inner_item {
        position: relative;
        transition: .8s;
        margin-bottom: 16px; }
    section#top_02 .sec01logo:has(+ .sec02_inner.show) {
      opacity: 1; }
  section#top_02 .sec02_inner {
    position: relative;
    z-index: 100;
    background-color: var(--yellow80);
    padding-bottom: 40px; }
    section#top_02 .sec02_inner::before {
      display: block;
      content: "";
      width: 100%;
      height: 104px;
      position: absolute;
      left: 0;
      right: 0;
      margin: auto;
      top: -104px;
      background: linear-gradient(rgba(252, 202, 64, 0), rgba(252, 202, 64, 0.8)); }
    section#top_02 .sec02_inner h2.changecopy_wrap {
      color: var(--white);
      text-align: center;
      line-height: 1.5; }
      section#top_02 .sec02_inner h2.changecopy_wrap div, section#top_02 .sec02_inner h2.changecopy_wrap ul, section#top_02 .sec02_inner h2.changecopy_wrap li {
        word-break: keep-all; }
      @media screen and (max-width: 960px) {
        section#top_02 .sec02_inner h2.changecopy_wrap.h_xl {
          font-size: clamp(1.8rem, calc(1.1rem + 3.5vw), 3.2rem); }
          section#top_02 .sec02_inner h2.changecopy_wrap.h_xl ul {
            min-width: 3em; } }
    section#top_02 .sec02_inner .leadbox {
      display: block; }
      section#top_02 .sec02_inner .leadbox .concept_img {
        position: relative;
        aspect-ratio: 1/1;
        flex: 1;
        width: 100%;
        max-width: 480px;
        margin: 40px auto;
        overflow: hidden; }
        section#top_02 .sec02_inner .leadbox .concept_img img {
          position: absolute;
          top: 0;
          left: 0;
          right: 0;
          bottom: 0;
          margin: auto;
          width: 100%;
          opacity: 0; }
          section#top_02 .sec02_inner .leadbox .concept_img img:nth-child(1) {
            transition: opacity .8s, transform .8s; }
          section#top_02 .sec02_inner .leadbox .concept_img img:nth-child(2) {
            transition: opacity 1.2s, transform .8s;
            transform: rotate(-20deg); }
          section#top_02 .sec02_inner .leadbox .concept_img img:nth-child(3) {
            transition: opacity 1.2s, transform .8s;
            transform: rotate(-20deg); }
        section#top_02 .sec02_inner .leadbox .concept_img.show img {
          opacity: 1;
          transform: rotate(0); }
          section#top_02 .sec02_inner .leadbox .concept_img.show img:nth-child(1) {
            transition-delay: .1s; }
          section#top_02 .sec02_inner .leadbox .concept_img.show img:nth-child(2) {
            transition-delay: 1.2s; }
          section#top_02 .sec02_inner .leadbox .concept_img.show img:nth-child(3) {
            transition-delay: 1.6s; }
      section#top_02 .sec02_inner .leadbox .textarea {
        width: 100%;
        padding-left: 16px; }
        section#top_02 .sec02_inner .leadbox .textarea p {
          margin-bottom: 1.5em; }
  @media screen and (min-width: 960px) {
    section#top_02 {
      padding-top: 560px; }
      section#top_02 .sec02_inner {
        padding-bottom: 120px; }
        section#top_02 .sec02_inner::before {
          height: 200px;
          top: -200px; }
        section#top_02 .sec02_inner .leadbox {
          display: flex;
          justify-content: space-between;
          align-items: center;
          gap: 40px;
          margin-top: 80px; }
          section#top_02 .sec02_inner .leadbox .concept_img {
            position: relative;
            aspect-ratio: 1/1;
            flex: 1; }
          section#top_02 .sec02_inner .leadbox .textarea {
            flex: 1; }
            section#top_02 .sec02_inner .leadbox .textarea p {
              margin-bottom: 1.75em; } }

section#top_03 {
  padding-top: 40px;
  padding-bottom: 40px; }
  section#top_03 h2 {
    margin-bottom: 24px; }
  section#top_03 .pointlist {
    margin-top: 40px; }
  @media screen and (min-width: 960px) {
    section#top_03 {
      padding-top: 88px;
      padding-bottom: 88px; }
      section#top_03 h2 {
        margin-bottom: 32px; }
      section#top_03 .pointlist {
        margin-top: 80px; } }

footer {
  padding: 24px 0;
  background-color: var(--black);
  color: var(--white);
  position: relative; }
  footer a {
    color: var(--white); }
  footer div.footer_logoarea a.footer_contact {
    margin-top: 24px;
    margin-left: auto;
    margin-right: auto;
    width: 200px;
    height: 40px;
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--white);
    padding: 8px; }
    footer div.footer_logoarea a.footer_contact .inner {
      display: flex;
      align-items: center; }
      footer div.footer_logoarea a.footer_contact .inner img {
        width: 16px;
        height: 16px;
        display: block;
        margin-right: 8px; }
      footer div.footer_logoarea a.footer_contact .inner span.text {
        display: block;
        font-size: 1.2; }
  footer .footer_logo {
    max-width: 104px;
    margin-left: auto;
    margin-right: auto; }
    footer .footer_logo img {
      width: 100%; }
  footer .footer_sns {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 24px 0; }
    footer .footer_sns a.snsicon {
      width: 32px;
      height: 32px;
      display: block;
      margin: 0 8px; }
      footer .footer_sns a.snsicon img {
        width: 100%;
        height: 32px;
        object-fit: contain; }
      footer .footer_sns a.snsicon.pad {
        padding: 7px; }
        footer .footer_sns a.snsicon.pad img {
          height: 18px; }
  footer .footer_nav_b {
    display: flex;
    justify-content: center;
    flex-wrap: wrap; }
    footer .footer_nav_b a {
      margin-right: 8px;
      margin-left: 8px;
      margin-bottom: 16px;
      display: block;
      font-size: 1.1rem; }
  footer .copyright {
    margin-top: 24px;
    font-size: 1.1rem;
    line-height: 1.7; }
  @media screen and (min-width: 960px) {
    footer {
      padding: 40px 0; }
      footer div.footer_logoarea {
        display: flex;
        align-items: center;
        justify-content: space-between; }
        footer div.footer_logoarea a.footer_contact {
          margin-top: 0px;
          width: 200px;
          height: 40px;
          margin-left: initial;
          margin-right: initial;
          border-radius: 20px;
          display: flex;
          align-items: center;
          justify-content: center;
          border: 1px solid var(--white);
          padding: 8px; }
          footer div.footer_logoarea a.footer_contact .inner {
            display: flex;
            align-items: center; }
            footer div.footer_logoarea a.footer_contact .inner img {
              width: 16px;
              height: 16px;
              display: block;
              margin-right: 8px; }
            footer div.footer_logoarea a.footer_contact .inner span.text {
              display: block;
              font-size: 1.4rem; }
      footer a {
        color: var(--white); }
      footer .footer_logo {
        max-width: 120px;
        margin-left: initial;
        margin-right: initial; }
        footer .footer_logo img {
          width: 100%; }
      footer .footer_sns {
        display: flex;
        justify-content: flex-start;
        margin: 24px 0; }
        footer .footer_sns a.snsicon {
          display: block;
          margin: 0 8px 0 0; }
      footer .footer_nav_b {
        display: flex;
        justify-content: flex-start; }
        footer .footer_nav_b a {
          margin-right: 40px;
          margin-left: 0;
          font-size: 1.2rem; }
      footer .copyright {
        margin-top: 24px;
        font-size: 1.2rem;
        line-height: 1.7; } }

.lower_wrap_h p.body_lead {
  max-width: 100%;
  margin-top: 1.5em;
  font-size: 1.4rem;
  font-weight: 500; }
  @media screen and (min-width: 960px) {
    .lower_wrap_h p.body_lead {
      font-size: 1.6rem; } }

.lower_wrap {
  padding-top: 64px;
  padding-bottom: 64px;
  min-height: calc(100svh - 280px); }
  .lower_wrap:has(.register_certification_linkarea) {
    padding-bottom: 0; }
  .lower_wrap:has(#seminar) {
    padding-top: 0;
    padding-bottom: 0; }
  .lower_wrap #seminar {
    padding-top: 64px;
    padding-bottom: 80px; }
  @media screen and (min-width: 960px) {
    .lower_wrap {
      padding-top: 120px;
      padding-bottom: 120px;
      min-height: calc(100svh - 280px); }
      .lower_wrap #seminar {
        padding-top: 120px;
        padding-bottom: 80px; } }
  .lower_wrap .lower_wrap_h {
    padding-top: 24px;
    padding-bottom: 40px; }
  .lower_wrap h1.aboutus_h1 {
    margin-bottom: 24px; }
  .lower_wrap h2.about_h2 {
    margin-bottom: 16px; }
    @media screen and (min-width: 960px) {
      .lower_wrap h2.about_h2 {
        margin-bottom: 32px; } }

.aboutus_flex_img img {
  max-width: 300px; }

.aboutus_dl {
  display: flex;
  flex-wrap: wrap; }
  .aboutus_dl dt {
    width: 120px; }
  .aboutus_dl dd {
    width: calc(100% - 120px); }

section#top_message {
  padding-top: 40px;
  padding-bottom: 40px; }
  section#top_message h3 {
    margin-top: 1.5em;
    margin-bottom: 1em; }
  section#top_message p {
    margin-bottom: 1.5em;
    line-height: 2; }
  @media screen and (min-width: 960px) {
    section#top_message {
      padding-top: 88px;
      padding-bottom: 88px; }
      section#top_message p {
        font-size: 2rem; } }

.about_section {
  padding-top: 40px; }
  .about_section.padbottom {
    padding-bottom: 40px; }
  .about_section p {
    max-width: 100%; }
  @media screen and (min-width: 960px) {
    .about_section {
      padding-top: 64px; }
      .about_section.padbottom {
        padding-bottom: 64px; } }
  .about_section p.lead {
    font-size: 1.4rem;
    line-height: 1.75;
    margin-bottom: 0; }
    @media screen and (min-width: 960px) {
      .about_section p.lead {
        font-size: 1.5rem; } }
  .about_section h3 {
    margin-top: 40px;
    margin-bottom: 32px;
    text-decoration: underline; }
  .about_section .flex_content.img {
    margin-top: 40px;
    margin-bottom: 40px; }
    @media screen and (min-width: 960px) {
      .about_section .flex_content.img {
        margin-top: 0px;
        margin-bottom: 0px; } }
  .about_section h4 {
    margin-bottom: 24px; }

section#about_company p.body,
section#top_aboutus p.body {
  margin-bottom: 1.5em; }
section#about_company h2.about_h2,
section#top_aboutus h2.about_h2 {
  border-top: 1px solid var(--gray_line);
  padding-top: 32px; }
  @media screen and (min-width: 960px) {
    section#about_company h2.about_h2,
    section#top_aboutus h2.about_h2 {
      padding-top: 40px; } }

/*詳細*/
.modal {
  display: none;
  /* モーダルはデフォルトで非表示 */
  opacity: 0;
  position: fixed;
  z-index: 999;
  left: 0;
  top: 0;
  width: 100vw;
  height: 100dvh;
  background-color: rgba(0, 0, 0, 0.5);
  align-items: center;
  justify-content: center;
  transition: opacity .8s; }
  .modal .modal-content {
    opacity: 0;
    padding-top: 0;
    position: relative;
    filter: drop-shadow(0px 0px 8px rgba(0, 0, 0, 0.25));
    height: calc(100dvh - 32px);
    width: calc(100vw - 32px);
    max-width: 960px;
    overflow: auto;
    background-color: var(--white);
    margin: 5dvh auto;
    position: relative;
    overflow: scroll;
    background-color: #fff;
    margin: 10% auto;
    border: 1px solid #888;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
    transition: opacity .8s; }
    .modal .modal-content #modal-body {
      padding: 16px; }
  .modal .btnarea_single {
    margin-bottom: 24px; }
  .modal.show {
    display: flex;
    animation: Fadein .4s ease-out 0s forwards; }
    .modal.show .modal-content {
      animation: Fadeinslide .8s ease-out 0.2s forwards; }
  @media screen and (min-width: 960px) {
    .modal .modal-content {
      height: 80dvh;
      width: 90vw;
      max-width: 960px;
      margin: 10dvh auto;
      width: 80%; }
      .modal .modal-content #modal-body {
        padding: 56px; }
    .modal .btnarea_single {
      margin-bottom: 64px; } }

.modal-content {
  padding-top: 64px;
  /*header高さ*/ }

.det_titlearea {
  text-align: center; }
  .det_titlearea h3 {
    margin-bottom: 0.25em;
    line-height: 1.25; }
  .det_titlearea .tag {
    display: inline-block;
    padding: 4px 8px;
    font-weight: 700;
    margin: 1em auto 0 auto;
    min-width: 160px; }
  .det_titlearea .copy {
    margin-top: 24px;
    margin-bottom: 24px; }
  @media screen and (min-width: 960px) {
    .det_titlearea .copy {
      margin-top: 40px;
      margin-bottom: 40px; } }

/*本文パーツ*/
.modal-content .content h1, .modal-content .content h2, .modal-content .content h3, .modal-content .content h4, .modal-content .content h5, .modal-content .content h6, .det_content_wrap .content h1, .det_content_wrap .content h2, .det_content_wrap .content h3, .det_content_wrap .content h4, .det_content_wrap .content h5, .det_content_wrap .content h6 {
  font-family: 'inter', YakuHanJP, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif; }
.modal-content .content h1, .det_content_wrap .content h1 {
  font-size: 2.2rem;
  line-height: 1.5;
  margin: 1em 0; }
.modal-content .content h2, .det_content_wrap .content h2 {
  font-size: 2rem;
  line-height: 1.5;
  margin: 1em 0; }
.modal-content .content h3, .det_content_wrap .content h3 {
  font-size: 1.8rem;
  line-height: 1.5;
  margin: 1em 0; }
.modal-content .content h4, .det_content_wrap .content h4 {
  font-size: 1.6rem;
  line-height: 1.5;
  margin: 1em 0; }
.modal-content .content h5, .det_content_wrap .content h5 {
  font-size: 1.5rem;
  line-height: 1.5;
  margin: 1em 0; }
.modal-content .content h6, .det_content_wrap .content h6 {
  font-size: 1.3rem;
  line-height: 1.5;
  margin: 1em 0; }
.modal-content .content p, .det_content_wrap .content p {
  font-size: 1.3rem;
  line-height: 2;
  margin: 1em 0; }
@media screen and (min-width: 960px) {
  .modal-content .content h1, .det_content_wrap .content h1 {
    font-size: 2.8rem;
    line-height: 1.5; }
  .modal-content .content h2, .det_content_wrap .content h2 {
    font-size: 2.4rem;
    line-height: 1.5; }
  .modal-content .content h3, .det_content_wrap .content h3 {
    font-size: 2rem;
    line-height: 1.5; }
  .modal-content .content h4, .det_content_wrap .content h4 {
    font-size: 1.8rem;
    line-height: 1.5; }
  .modal-content .content h5, .det_content_wrap .content h5 {
    font-size: 1.6rem;
    line-height: 1.5; }
  .modal-content .content h6, .det_content_wrap .content h6 {
    font-size: 1.5rem;
    line-height: 1.5; }
  .modal-content .content p, .det_content_wrap .content p {
    font-size: 1.5rem;
    line-height: 2;
    margin: 1em 0; } }

.close-button {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
  cursor: pointer;
  position: sticky;
  top: 0;
  right: 0; }

.close-button:hover,
.close-button:focus {
  color: black;
  text-decoration: none; }

.contactform_done_wrap {
  padding-top: 48px;
  padding-bottom: 64px; }
  .contactform_done_wrap h3, .contactform_done_wrap p {
    text-align: center; }
  .contactform_done_wrap h3 {
    font-size: 1.8rem;
    margin-bottom: 1em; }
  @media screen and (min-width: 960px) {
    .contactform_done_wrap {
      padding-top: 64px;
      padding-bottom: 96px; }
      .contactform_done_wrap h3 {
        font-size: 2rem; } }

.contactform_wrap a.btn, .form_wrap a.btn {
  margin-left: auto;
  margin-right: auto; }
.contactform_wrap .contact_item, .contactform_wrap .form_group, .form_wrap .contact_item, .form_wrap .form_group {
  margin-top: 16px;
  margin-bottom: 16px; }
  .contactform_wrap .contact_item.form_box_btn, .contactform_wrap .form_group.form_box_btn, .form_wrap .contact_item.form_box_btn, .form_wrap .form_group.form_box_btn {
    margin-top: 40px; }
  .contactform_wrap .contact_item label.label, .contactform_wrap .contact_item h2, .contactform_wrap .form_group label.label, .contactform_wrap .form_group h2, .form_wrap .contact_item label.label, .form_wrap .contact_item h2, .form_wrap .form_group label.label, .form_wrap .form_group h2 {
    font-size: 1.2rem;
    display: block;
    margin-bottom: 4px;
    font-weight: bold;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }
  .contactform_wrap .contact_item span.red, .contactform_wrap .form_group span.red, .form_wrap .contact_item span.red, .form_wrap .form_group span.red {
    color: var(--red);
    font-weight: bold;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: 1rem;
    margin-left: 4px; }
  .contactform_wrap .contact_item p.notice, .contactform_wrap .form_group p.notice, .form_wrap .contact_item p.notice, .form_wrap .form_group p.notice {
    font-size: 1.2rem;
    text-align: center;
    margin-bottom: 0; }
.contactform_wrap input[type=text],
.contactform_wrap input[type=email],
.contactform_wrap input[type=tel],
.contactform_wrap input[type=password],
.contactform_wrap select, .form_wrap input[type=text],
.form_wrap input[type=email],
.form_wrap input[type=tel],
.form_wrap input[type=password],
.form_wrap select {
  width: 100%;
  box-sizing: border-box;
  height: 40px;
  border: 1px solid var(--gray_line); }
  @media screen and (min-width: 960px) {
    .contactform_wrap input[type=text],
    .contactform_wrap input[type=email],
    .contactform_wrap input[type=tel],
    .contactform_wrap input[type=password],
    .contactform_wrap select, .form_wrap input[type=text],
    .form_wrap input[type=email],
    .form_wrap input[type=tel],
    .form_wrap input[type=password],
    .form_wrap select {
      height: 40px; } }
  .contactform_wrap input[type=text]:focus,
  .contactform_wrap input[type=email]:focus,
  .contactform_wrap input[type=tel]:focus,
  .contactform_wrap input[type=password]:focus,
  .contactform_wrap select:focus, .form_wrap input[type=text]:focus,
  .form_wrap input[type=email]:focus,
  .form_wrap input[type=tel]:focus,
  .form_wrap input[type=password]:focus,
  .form_wrap select:focus {
    border: 1px solid var(--gray_line);
    outline: none; }
.contactform_wrap textarea, .form_wrap textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--gray_line); }
.contactform_wrap input[type=checkbox], .form_wrap input[type=checkbox] {
  width: 16px;
  height: 16px;
  border: 1px solid var(--gray_line);
  margin: 0; }
.contactform_wrap input[type=submit], .form_wrap input[type=submit] {
  width: 100%;
  height: 48px;
  border-radius: 28px;
  border: none;
  background-color: var(--black);
  color: var(--white);
  display: block;
  font-size: 1.3rem;
  font-weight: bold;
  margin-top: 8px;
  margin-left: auto;
  margin-right: auto;
  cursor: pointer;
  filter: drop-shadow(0px 0px 2px rgba(0, 0, 0, 0.2)); }
  .contactform_wrap input[type=submit].back, .form_wrap input[type=submit].back {
    background-color: var(--gray);
    color: var(--black); }
  .contactform_wrap input[type=submit].yellow, .form_wrap input[type=submit].yellow {
    color: var(--black);
    background: var(--yellow); }
  .contactform_wrap input[type=submit].small, .form_wrap input[type=submit].small {
    margin: 0 auto;
    height: 48px; }
  @media screen and (min-width: 960px) {
    .contactform_wrap input[type=submit], .form_wrap input[type=submit] {
      height: 64px;
      border-radius: 32px;
      font-size: 1.5rem; }
      .contactform_wrap input[type=submit]:hover, .form_wrap input[type=submit]:hover {
        opacity: .6;
        transition: .4s; } }
.contactform_wrap .wpcf7-list-item, .form_wrap .wpcf7-list-item {
  display: block;
  margin: 1.5em 0; }
  .contactform_wrap .wpcf7-list-item label, .form_wrap .wpcf7-list-item label {
    display: flex;
    align-items: center; }
.contactform_wrap .checklist label.label, .form_wrap .checklist label.label {
  margin-bottom: 16px; }
.contactform_wrap .checklist div, .form_wrap .checklist div {
  display: flex;
  align-items: center;
  margin: 16px 0; }
  .contactform_wrap .checklist div label, .form_wrap .checklist div label {
    font-size: 1.3rem; }
    .contactform_wrap .checklist div label.padl4, .form_wrap .checklist div label.padl4 {
      margin-left: 4px; }
@media screen and (min-width: 960px) {
  .contactform_wrap .contact_item, .contactform_wrap .form_group, .form_wrap .contact_item, .form_wrap .form_group {
    margin-top: 24px;
    margin-bottom: 24px; }
    .contactform_wrap .contact_item label.label, .contactform_wrap .contact_item h2, .contactform_wrap .form_group label.label, .contactform_wrap .form_group h2, .form_wrap .contact_item label.label, .form_wrap .contact_item h2, .form_wrap .form_group label.label, .form_wrap .form_group h2 {
      font-size: 1.4rem;
      display: block;
      margin-bottom: 8px;
      font-weight: bold;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale; }
    .contactform_wrap .contact_item p, .contactform_wrap .form_group p, .form_wrap .contact_item p, .form_wrap .form_group p {
      margin-bottom: 1em; }
    .contactform_wrap .contact_item p.notice, .contactform_wrap .form_group p.notice, .form_wrap .contact_item p.notice, .form_wrap .form_group p.notice {
      font-size: 1.3rem; }
  .contactform_wrap .checklist div label, .form_wrap .checklist div label {
    font-size: 1.4rem; } }

.document_wrap h2 {
  margin-top: 2em;
  margin-bottom: 1.5em;
  font-size: 1.5rem;
  line-height: 1.75; }
  .document_wrap h2.first {
    margin-top: 0; }
  @media screen and (min-width: 960px) {
    .document_wrap h2 {
      font-size: 1.7rem; } }
.document_wrap h3, .document_wrap h4 {
  margin-top: 2em;
  margin-bottom: 1.5em;
  font-size: 1.4rem;
  line-height: 1.75; }
  .document_wrap h3.first, .document_wrap h4.first {
    margin-top: 0; }
  @media screen and (min-width: 960px) {
    .document_wrap h3, .document_wrap h4 {
      font-size: 1.5rem; } }
.document_wrap p, .document_wrap li, .document_wrap dt, .document_wrap dd, .document_wrap aside {
  line-height: 2;
  word-break: break-all;
  font-size: 1.2rem;
  margin: 2em 0; }
  @media screen and (min-width: 960px) {
    .document_wrap p, .document_wrap li, .document_wrap dt, .document_wrap dd, .document_wrap aside {
      font-size: 1.4rem; } }

/*WORKSHOP SEMINAR*/
a.class_detail_item {
  width: 100%;
  border-radius: 2px;
  background-color: var(--white);
  position: relative;
  padding: 16px;
  margin-bottom: 16px;
  display: block; }
  a.class_detail_item h3 {
    font-size: 1.8rem;
    line-height: 1.7;
    margin-bottom: 4px; }
  a.class_detail_item p.date {
    font-size: 1.6rem;
    line-height: 1.5;
    margin-bottom: 8px; }
  a.class_detail_item p.place {
    font-size: 1.2rem;
    line-height: 1.5;
    margin-bottom: 16px; }
  a.class_detail_item .tag_wrap span.tag {
    display: inline-block;
    color: _color(gray_text);
    font-size: 1rem;
    line-height: 1; }
  a.class_detail_item .icon_arrow {
    display: block;
    position: absolute;
    right: 8px;
    bottom: 8px;
    width: 12px;
    height: 12px; }
    a.class_detail_item .icon_arrow img {
      width: 100%;
      height: 12px;
      object-fit: contain; }
  @media screen and (min-width: 960px) {
    a.class_detail_item {
      padding: 24px 32px;
      margin-bottom: 24px; }
      a.class_detail_item h3 {
        font-size: 2.4rem;
        margin-bottom: 8px; }
      a.class_detail_item p.date {
        font-size: 1.8rem;
        margin-bottom: 16px;
        letter-spacing: 0.05em; }
      a.class_detail_item p.place {
        font-size: 1.3rem;
        margin-bottom: 16px; }
      a.class_detail_item .tag_wrap span.tag {
        font-size: 1rem; }
      a.class_detail_item .icon_arrow {
        right: 8px;
        bottom: 8px;
        width: 12px;
        height: 12px; }
        a.class_detail_item .icon_arrow img {
          height: 12px; }
      a.class_detail_item:hover {
        opacity: 1;
        background-color: var(--yellow); } }

.class_main .program_top_title_wrap .program_top_title h2 {
  font-size: 2.8rem;
  line-height: 1.35;
  margin-bottom: 0.2em; }
.class_main .program_top_title_wrap .program_top_title h3 {
  font-size: 2rem;
  line-height: 1.4; }
.class_main .program_top_title_wrap .program_top_title .class_main_date {
  margin-top: 24px;
  font-size: 1.6rem;
  line-height: 1.5;
  font-weight: bold;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }
@media screen and (min-width: 960px) {
  .class_main .program_top_title_wrap .program_top_title h2 {
    font-size: 4.8rem;
    margin-bottom: 24px; }
  .class_main .program_top_title_wrap .program_top_title h3 {
    font-size: 3.2rem; }
  .class_main .program_top_title_wrap .program_top_title .class_main_date {
    margin-top: 40px;
    font-size: 2rem; } }

.navigator_inner .notlogin .message-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  display: flex;
  align-items: center;
  justify-items: center;
  text-align: center;
  background-color: rgba(255, 255, 255, 0.125); }
  .navigator_inner .notlogin .message-overlay p {
    text-align: center;
    width: 100%;
    margin: 0;
    font-weight: bold;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }
.navigator_inner .notlogin .sampleimg img {
  width: 100%; }

.navigator_item {
  display: flex;
  justify-content: space-between;
  margin-bottom: 24px; }
  .navigator_item:last-child {
    margin-bottom: 0; }
  .navigator_item .navigator_img {
    min-width: 80px;
    max-width: 80px;
    margin-right: 16px; }
    .navigator_item .navigator_img .navigator_img_img {
      aspect-ratio: 1/1;
      overflow: hidden; }
      .navigator_item .navigator_img .navigator_img_img img {
        width: 100%;
        height: 80px;
        object-fit: cover; }
  .navigator_item .navigator_text h3 {
    font-size: 1.5rem; }
  .navigator_item .navigator_text p {
    margin-bottom: 0px; }
  @media screen and (min-width: 960px) {
    .navigator_item {
      margin-bottom: 40px; }
      .navigator_item:last-child {
        margin-bottom: 0; }
      .navigator_item .navigator_img {
        min-width: 160px;
        max-width: 160px;
        margin-right: 24px; }
        .navigator_item .navigator_img .navigator_img_img img {
          height: 160px; }
      .navigator_item .navigator_text h3 {
        font-size: 1.6rem;
        margin-bottom: 0.5em; } }

.class_detail h2 {
  font-size: 2rem;
  margin-bottom: 16px; }
  @media screen and (min-width: 960px) {
    .class_detail h2 {
      font-size: 2.8rem; } }

#class_detail h2, #class_detail_time h2 {
  font-size: 2rem;
  margin-bottom: 16px; }
  @media screen and (min-width: 960px) {
    #class_detail h2, #class_detail_time h2 {
      font-size: 2.8rem; } }

#class_detail p {
  font-size: 1.5rem; }

.project_program_data_box .project_program_data {
  margin-bottom: 32px; }
  @media screen and (min-width: 960px) {
    .project_program_data_box .project_program_data {
      display: flex; } }
  .project_program_data_box .project_program_data h3 {
    font-size: 1.3rem;
    line-height: 2;
    margin-right: 16px;
    margin-bottom: 0; }
    @media screen and (min-width: 960px) {
      .project_program_data_box .project_program_data h3 {
        font-size: 1.5rem; } }
  .project_program_data_box .project_program_data p {
    margin-bottom: 0; }
    .project_program_data_box .project_program_data p a {
      text-decoration: underline; }

#class_detail_join a.btn {
  margin: 8px auto; }
  @media screen and (min-width: 960px) {
    #class_detail_join a.btn {
      margin: 16px auto; } }

.class_main {
  padding-top: 80px;
  padding-bottom: 32px; }
  @media screen and (min-width: 960px) {
    .class_main {
      padding-top: 128px;
      padding-bottom: 80px; } }

#project_navigator {
  padding-top: 32px;
  padding-bottom: 32px; }
  @media screen and (min-width: 960px) {
    #project_navigator {
      padding-top: 64px;
      padding-bottom: 48px; } }

#class_detail {
  padding-top: 32px;
  padding-bottom: 32px; }
  @media screen and (min-width: 960px) {
    #class_detail {
      padding-top: 48px;
      padding-bottom: 48px; } }

#class_detail_time {
  padding-bottom: 32px; }
  @media screen and (min-width: 960px) {
    #class_detail_time {
      padding-bottom: 48px; } }

#project_data_link {
  padding-top: 32px;
  padding-bottom: 32px; }
  @media screen and (min-width: 960px) {
    #project_data_link {
      padding-top: 48px;
      padding-bottom: 48px; } }

#class_detail_join {
  padding-top: 32px;
  padding-bottom: 32px; }
  @media screen and (min-width: 960px) {
    #class_detail_join {
      padding-top: 48px;
      padding-bottom: 48px; } }
