@charset "UTF-8";

/* =====================
  news contents
===================== */
@media not all and (min-width: 768px) {
  body:where(.news, .sdgs, .product, .contact, .entry, .policy) article.bg {
    padding-block: calc((100 / 750) * 141 * 1vw) calc((100 / 750) * 131 * 1vw);
  }
  .u-head .title {
    grid-template-columns: auto auto auto;
    justify-content: center;
  }
}
@media print, screen and (min-width: 768px) {
  body:where(.news, .sdgs, .product, .contact, .entry, .policy) article.bg {
    padding-block: 141px 131px;
  }
}
main article ul {
  max-inline-size: 1000px;
  margin-top: 70px;
  margin-inline: auto;
}
main article li {
  position: relative;
  border-bottom: 1px solid #d2d2d2;
  border-top: 1px solid transparent;
}
main article li:first-child {
  border-top: 1px solid #d2d2d2;
}

/* =====================
  単体
===================== */
main article label {
  cursor: pointer;
  display: block;
  padding-block: 33px;
  padding-inline: 30px 90px;
  position: relative;
}
@media not all and (min-width: 768px) {
  main article label {
    padding-block: calc((100 / 750) * 40 * 1vw);
    padding-inline: calc((100 / 750) * -5 * 1vw) calc((100 / 750) * 105 * 1vw);
  }
}

/* ==== icon ==== */
main article label::after {
  content: '';
  display: block;
  position: absolute;
  top: 50%;
  right: 30px;
  translate: 0 -50%;
  mask-repeat: no-repeat;
  mask-size: contain;
  mask-position: center;
  mask-image: var(--icon-plus);
  width: 40px;
  aspect-ratio: 1 / 1;
  transform-origin: center;
  background-color: currentColor;
  transition: rotate 600ms var(--easeInOutBack) 0s;
}
@media not all and (min-width: 768px) {
  main article label::after {
    width: calc((100 / 750) * 62 * 1vw);
    right: 0;
  }
}
main article label:has(button.on)::after {
  rotate: 0 0 1 45deg;
  background-color: var(--orange);
}
main article label[data-body='false'] {
  cursor: default;
}
main article label[data-body='false']::after {
  display: none;
}

/* ==== text ==== */
main article ul button {
  position: absolute;
  display: block;
}
main article time {
  color: #747474;
  display: block;
  margin-bottom: 0.6em;
}
@media not all and (min-width: 768px) {
  main article time {
    font-size: calc((100 / 750) * 24 * 1vw);
  }
}
main article p {
  line-height: 2.12;
}
@media not all and (min-width: 768px) {
  main article :where(p, h2) {
    line-height: 1.76;
    font-size: calc((100 / 750) * 26 * 1vw);
  }
}
main article .unit {
  display: grid;
  grid-auto-flow: row;
  overflow: hidden;
  grid-template-rows: 0fr;
}
@media not all and (min-width: 768px) {
  main article ul {
    margin-top: calc((100 / 750) * 103 * 1vw);
  }
}

/* =====================
  more
===================== */
main .more {
  display: grid;
  grid-auto-flow: column;
  justify-content: center;
  margin-inline: auto;
  font-weight: 500;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  margin-top: 60px;
}
main .more.on {
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
}
@media not all and (min-width: 768px) {
  main .more {
    font-size: calc((100 / 750) * 30 * 1vw);
    margin-top: calc((100 / 750) * 80 * 1vw);
  }
}
main .more::after {
  content: '';
  display: block;
  width: 24px;
  aspect-ratio: 1 / 1;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: center;
  background-image: url('../../img/common/icon-circle-arrow-red.svg');
  rotate: 90deg;
}
