@charset "UTF-8";
/**************************************/
.contributions .sticky h3 {
  /* ← レイアウトを統一 */
  display: grid;
  grid-auto-flow: column;
  /* 横方向に配置（番号 → タイトル） */
  grid-auto-columns: max-content auto;
  align-items: center; }
  .contributions .sticky h3 span {
    font: 6rem/1em "EB Garamond", serif;
    font-weight: 400;
    letter-spacing: 0.02em;
    color: #CCCCCA;
    margin-right: 20px; }
.contributions p {
  margin-bottom: 30px; }

/*min-width:1920px*/
@media (max-width: 1280px) {
  .contributions .sticky h3 {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    min-height: auto;
    position: relative !important; } }
/*max-width:1280px*/
/*max-width:1024px*/
/*max-width:768px*/
@media (max-width: 480px) {
  .contributions .sticky h3 span {
    margin: 0;
    padding: 0 10px 0 0;
    font: 4rem / 1em "EB Garamond", serif;
    font-weight: 400; } }
/*max-width:480px*/
/**************************************/
.item_flex {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  margin: 0 0 60px;
  position: relative; }
  .item_flex h4 {
    padding-right: 350px; }
    .item_flex h4 br {
      display: none; }
  .item_flex .item_txt {
    width: calc(100% - 350px); }
  .item_flex img {
    position: absolute;
    right: 0;
    top: 10px; }
  .item_flex p {
    margin: 0 0 30px; }
  .item_flex ol {
    margin: 0 0 30px;
    counter-reset: hoge; }
    .item_flex ol li {
      font: 1.8rem/1.8em "Noto Sans JP", serif;
      font-weight: 400;
      margin: 0 0 10px;
      padding: 0 0 0 2.4rem;
      position: relative; }
      .item_flex ol li:last-of-type {
        margin: 0; }
      .item_flex ol li:before {
        position: absolute;
        counter-increment: hoge;
        content: counter(hoge) "）";
        top: 0;
        left: 0%; }
  .item_flex .btn {
    margin-bottom: 0 !important; }

/*max-width:1280px*/
@media (max-width: 1024px) {
  .item_flex img {
    order: 1;
    margin: 10px 0 0; } }
/*max-width:1024px*/
@media (max-width: 768px) {
  .item_flex .item_txt {
    order: 2;
    width: 100%;
    margin: 0 auto; }
  .item_flex h4 {
    padding-right: 0; }
  .item_flex img {
    position: relative;
    top: 0;
    order: 1;
    margin: 0 0 25px; } }
/*max-width:768px*/
@media (max-width: 480px) {
  .item_flex {
    margin-bottom: 40px; }
    .item_flex img {
      order: 1;
      margin: 0 auto 25px;
      max-width: 260px; }
    .item_flex h4 br {
      display: block; }
    .item_flex ol {
      counter-reset: hoge; }
      .item_flex ol li {
        font: 1.5rem/2em "Noto Sans JP", serif;
        font-weight: 400;
        margin: 0 0 10px;
        padding: 0 0 0 2.4rem; } }
/*max-width:480px*/
/**************************************/
.accordion_all > p {
  margin: 0 0 25px; }
.accordion_all small, .accordion_all ul {
  margin: 15px 0;
  border-top: 1px solid #DBDBD8;
  padding: 15px 0 0;
  display: block;
  font: 1.6rem/2em "Noto Sans JP", serif;
  font-weight: 400;
  letter-spacing: 0.04em;
  text-align: justify;
  text-justify: inter-ideograph; }
  .accordion_all small li, .accordion_all ul li {
    padding: 0 0 0 1.6rem;
    position: relative; }
    .accordion_all small li:before, .accordion_all ul li:before {
      position: absolute;
      content: "・";
      left: 0; }
.accordion_all .item_flex_box {
  display: none; }
  .accordion_all .item_flex_box.active {
    display: flex; }
  .accordion_all .item_flex_box .item_flex p {
    font-size: 1.7rem;
    margin-bottom: 15px; }
  .accordion_all .item_flex_box .item_flex img {
    margin: 0 0 0; }

p.accordion_switch {
  font: 1.8rem/1.8em "Noto Sans JP", serif;
  font-weight: 500;
  letter-spacing: 0.05em;
  background-color: #fff;
  padding: 10px 70px 10px 15px;
  border: 1px solid #CCCCCA;
  position: relative; }
  p.accordion_switch:before {
    width: 40px;
    height: 40px;
    background-color: #B1AEAE;
    position: absolute;
    content: "";
    display: block;
    top: 6px;
    right: 5px; }
  p.accordion_switch:after {
    z-index: 5;
    position: absolute;
    content: "";
    right: 20px;
    top: 20px;
    width: 8px;
    height: 8px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    transform: rotate(135deg); }
  p.accordion_switch.active:after {
    top: 22px;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg); }

/*max-width:1280px*/
@media (max-width: 768px) {
  .accordion_all .item_flex_box .item_flex img {
    display: block;
    margin: 0 0 25px; } }
/*max-width:768px*/
@media (max-width: 480px) {
  .accordion_all small, .accordion_all ul {
    margin: 10px 0 15px;
    padding: 10px 0 0;
    font: 1.4rem/2em "Noto Sans JP", serif;
    font-weight: 400; }
    .accordion_all small li, .accordion_all ul li {
      padding: 0 0 0 1.5rem;
      position: relative; }
  .accordion_all .item_flex_box .item_flex p {
    font-size: 1.5rem;
    margin-bottom: 20px; }
  .accordion_all .item_flex_box .item_flex img {
    margin: 0 auto 20px; }

  p.accordion_switch {
    font: 1.5rem/1.8em "Noto Sans JP", serif;
    font-weight: 500;
    margin: 0 0 15px;
    letter-spacing: 0.05em;
    padding: 13px 70px 13px 15px; }
    p.accordion_switch:before {
      top: 50%;
      left: auto;
      transform: translate(0%, -50%);
      right: 10px; }
    p.accordion_switch:after {
      right: 25px;
      top: 50%;
      left: auto;
      transform: translate(0%, -50%) rotate(135deg); }
    p.accordion_switch.active:after {
      top: 50%;
      left: auto;
      transform: translate(0%, -50%) rotate(-45deg); } }
/*max-width:480px*/
/**************************************/
.contributions .btn {
  margin-bottom: 60px; }

/**************************************/
.flow_box {
  margin: 0 0 60px; }
  .flow_box ol {
    margin: 0;
    padding: 0; }

/****************************/
.code_flex {
  margin: 0 0 60px;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: flex-start; }
  .code_flex ul {
    width: calc(100% - 110px);
    max-width: 540px; }
  .code_flex li {
    font: 1.7rem/2em "Noto Sans JP", serif;
    font-weight: 400;
    letter-spacing: 0.05em;
    padding: 0 0 0 1.7rem;
    position: relative; }
    .code_flex li:before {
      position: absolute;
      content: "・";
      left: 0; }

@media (max-width: 480px) {
  .code_flex {
    margin: 0 0 60px;
    justify-content: space-between;
    align-items: flex-start; }
    .code_flex ul {
      width: calc(100% - 120px);
      max-width: 540px; }
    .code_flex li {
      font: 1.5rem/2em "Noto Sans JP", serif;
      font-weight: 400;
      letter-spacing: 0.05em;
      padding: 0 0 0 1.6rem; } }
/*max-width:480px*/
/****************************/
.btn.mb20 {
  margin-bottom: 20px; }
