:root {
  --font-bold: "A1ゴシック B",A1 Gothic B,sans-serif;
  --blue: #099EE8;
  --gray: #999;
}

#content {
  overflow: hidden;
}

small {
  max-width: 636px;
  display: block;
  margin-top: 23px;
  margin: 23px auto 0;
  padding: 0 18px;
  font-size: 11px;
  text-align: right;
  letter-spacing: 0.03em;
  color: var(--gray);
  @media (width <= 800px) {
    margin: 18px auto 0;
    padding: 0 24px;
  }
}

hr {
  width: 100%;
  margin: 74px auto 0;
  border: none;
  border-top: solid 2px #E6E6E6;
  @media (width <= 800px) {
    margin-top: 57px;
  }
}

.part1-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  h2, h3, h4, h5, p {
    max-width: 636.5px;
    margin: 0 auto;
    padding: 0 18px;
    text-align: center;
    @media (width <= 800px) {
      padding: 0 24px;
    }
  }
  section + section {
    margin-top: 100px;
  }
  & + section {
    margin-top: 100px;
    @media (width <= 800px) {
      margin-top: 85px;
    }
  }
  h1 {
    width: 100%;
    padding: 26px 0 21px;
    background: var(--blue);
    color: #fff;
    text-align: center;
    font-size: 34px;
    line-height: 1.6;
    letter-spacing: 0.02em;
    @media (width <= 800px) {
      padding: 28px 0 26px;
      font-size: 28px;
      line-height: 1.5;
    }
    span {
      display: block;
      font-size: 20px;
      @media (width <= 800px) {
        font-size: 17px;
        margin-bottom: 3px;
      }
    }
  }
  h2 {
    padding: 70px 11px 0;
    font-size: 30px;
    letter-spacing: 0.02em;
    line-height: 1.6;
    color: var(--blue);
    @media (width <= 800px) {
      padding: 56px 11px 0;
      font-size: 24px;
      line-height: 1.5;
    }
  }
  h2 + p {
    margin-top: 57px;
    @media (width <= 800px) {
      margin-top: 47px;
    }
  }
  h2 + .graph {
    margin-top: 69px;
    @media (width <= 800px) {
      margin-top: 57px;
    }
  }
  p {
    text-align: left;
  }
  p + div {
    margin-top: 66px;
    @media (width <= 800px) {
      margin-top: 53px;
    }
  }
  p + .graph {
    margin-top: 46px;
    @media (width <= 800px) {
      margin-top: 39px;
    }
  }
  p + .graph-title-container {
    @media (width <= 800px) {
      margin-top: -15px;
    }
  }
  p + .seikatsusha-ttl {
    margin-top: -14px;
  }
  h3 + .graph-image {
    margin-top: 51px;
  }
  h3 + h4 {
    margin-top: 62px;
  }
  h4 {
    font-size: 24px;
    @media (width <= 800px) {
      font-size: 18px;
    }
  }
  h5 {
    margin: 0 auto;
    background: var(--blue);
    font-size: 16px;
    color: #fff;
  }
  div + p {
    margin-top: 62px;
    @media (width <= 800px) {
      margin-top: 68px;
    }
  }

  .graph + p {
    margin-top: 44px;
    @media (width <= 800px) {
      margin-top: 38px;
    }
  }

  .graph-title-container {
    padding: 0 18px;
    @media (width <= 800px) {
      padding: 0 24px;
    }
    + .graph-image {
      margin-top: 51px;
      @media (width <= 800px) {
        margin-top: 25px;
      }
    }
    + h4 {
      margin-top: 62px;
      @media (width <= 800px) {
        margin-top: 48px;
      }
    }
  }

  .graph-title {
    max-width: 280px;
    margin: 0 auto;
    padding: 3.5px 0;
    border-bottom: solid 1px #000;
    border-top: solid 1px #000;
    font-size: 15px;
    text-align: center;
    &.middle {
      max-width: 600px;
      padding: 13px 0px;
      font-size: 24px;
      @media (width <= 800px) {
        padding: 9px 0px;
        font-size: 18px;
      }
    }
    &.wide {
      max-width: 756px;
      padding: 13px 0px;
      font-size: 24px;
      margin: 68px auto 0;
      @media (width <= 800px) {
        padding: 9px 0px;
        font-size: 18px;
      }
    }
  }

  .graph-image {
    max-width: 600px;
    margin: 0 auto;
    padding: 0 18px;
    text-align: center;
    @media (width <= 800px) {
      padding: 0 24px;
    }
    &.wide {
      max-width: 636px;
      img {
        width: 100%;
      }
    }
    img {
      @media (width <= 800px) {
        width: 100%;
      }
    }
  }

  .graph {
    width: 100%;
    text-align: center;
    h3 {
      margin-bottom: 31px;
      @media (width <= 800px) {
        margin-bottom: 38px;
      }
    }
    h4 {
      margin-top: 33px;
      font-size: 22px;
      @media (width <= 800px) {
        font-size: 20px;
      }
    }
    .annotation {
      margin: 24px auto 21px;
      font-size: 13px;
      text-align: center;
      letter-spacing: 0.05em;
      @media (width <= 800px) {
        font-size: 12px;
        letter-spacing: 0.03em;
        line-height: 1.6;
      }
    }
    .graph-image {
      margin-top: 0;
    }
  }

  .consumer-trend {
    width: 100%;
    max-width: 636px;
    margin: 37px auto -27px;
    img {
      width: 100%;
      max-width: 636px;
      margin: 0 auto;
    }
    small {
      margin-top: 10px;
    }
  }

}

/* グリッドレイアウト用のCSS */
.content-grid {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  row-gap: 42px;
  max-width: 792px;
  margin: 62px auto 0;
  padding: 0 18px;
  transition: padding-bottom 0.5s ease-out;
  @media (width <= 800px) {
    margin: 51px auto 0;
    padding: 0 24px 50px;
    row-gap: 27px;
  }
  &[data-category="highest"] {
    padding-bottom: 63px;
    @media (width <= 800px) {
      padding-bottom: 24px;
    }
    .load-more-container {
      @media (width <= 800px) {
        bottom: 0;
      }
    }
  }
  &[data-category="high"] {
    margin-bottom: -5.5%;
    @media (width <= 800px) {
      margin-bottom: -163px;
    }
    .load-more-container {
      bottom: 4.5%;
      @media (width <= 800px) {
        bottom: 163px;
      }
    }
  }
  &[data-category="low"] {
    margin-bottom: -12.4%;;
    @media (width <= 800px) {
      margin-bottom: -335px;
    }
    .load-more-container {
      bottom: 8.4%;
      @media (width <= 800px) {
        bottom: 297px;
      }
    }
  }
  .grid-item {
    flex: 0 0 33.333%;
    max-width: 33.333%;
    overflow: hidden;
    transition: max-height 0.5s ease-out, opacity 0.5s ease-out;
    @media (width <= 800px) {
      flex: 0 0 100%;
      max-width: 100%;
    }
  }
}

.grid-item {

  h5 {
    width: fit-content;
    padding: 0 3px;
    line-height: 1.25;
  }

  img {
    width: 100%;
    height: auto;
    margin-top: 1px;
  }

  .graph-image {
    padding: 0;
    @media (width <= 800px) {
      max-width: 427px;
      margin-top: -1px;
      padding: 0 13.5px;
    }
  }
}

.part-head  {
  background-image: url('../../img/digital-analog2025/part1/part1-bg.png');
  @media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi),(min-resolution: 2dppx) {
    background-image: url('../../img/digital-analog2025/part1/part1-bg@2x.png');
  }
  background-position: center;
  min-height: 450px;
  @media (width <= 800px) {
    padding-bottom: 19.7%;
    background-size: 100% auto;
    background-position: bottom;
    background-image: url('../../img/digital-analog2025/part1/part1-bg-sp.jpg');
    @media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi),(min-resolution: 2dppx) {
      background-image: url('../../img/digital-analog2025/part1/part1-bg-sp@2x.jpg');
    }
  }
  .left {
    width: 61.4%;
    @media (width <= 800px) {
      width: 100%;
      min-height: 398px;
    }
    > p {
      padding-right: 132px;
      @media (width <= 800px) {
      padding-right: 0;
      }
    }
  }
}

.clip-path {
  clip-path: polygon(0 0, 100% 0, calc(100% - 78px) 100%, 0% 100%);
  @media (width <= 800px) {
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 47px), 0% 100%);
  }
}


.graph-hr {
  width: calc(100% - 52px);
  margin: 0 auto 60px;
  border-top: dotted 2px #AFAFAF;
  @media (width <= 800px) {
    margin: 0 auto 49px;
  }
}

.load-more-container {
  position: absolute;
  left: 0;
  right: 0;
  width: 100%;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  background-image: linear-gradient(0deg, #ffffff 50%, transparent);
  transition: background-image 0.5s ease-out, bottom 0.5s ease-out;
  @media (width <= 800px) {
    left: 18px;
    right: 18px;
    width: calc(100% - 36px);
  }
}

.load-more-btn {
  position: relative;
  bottom: 69px;
  width: 280px;
  height: 46px;
  padding: 12px 24px;
  background: var(--blue);
  color: #fff;
  border-radius: 25px;
  font-size: 16px;
  letter-spacing: 0.03em;
  cursor: pointer;
  transition: transform 0.5s ease-out;
  @media (width <= 800px) {
    bottom: 85px;
  }

  .btn-icon {
    position: absolute;
    right: 22px;
    width: 16px;
    height: 25px;
    top: 50%;
    transform: translateY(-50%);

    svg {
      width: 100%;
      height: 100%;
      fill: currentColor;
    }

  }

}

.is-expanded {
  padding-bottom: 183px!important;
  @media (width <= 800px) {
    padding-bottom: 120px!important;
  }
  &[data-category="highest"] {
    @media (width <= 800px) {
      .load-more-container {
        bottom: -30px;
      }
    }
  }
  &[data-category="high"] {
    @media (width <= 800px) {
      margin-bottom: 0;
    }
    .load-more-container {
      bottom: 3%;
      @media (width <= 800px) {
        bottom: -30px;
      }
    }
  }
  &[data-category="low"] {
    margin-bottom: -7.2%;;
    @media (width <= 800px) {
      margin-bottom: 30px;
    }
    .load-more-container {
      bottom: 2.4%;
      @media (width <= 800px) {
        bottom: -30px;
      }
    }
  }
  .load-more-container{
    background-image: none;
  }
  .btn-icon {
    transform: translateY(-50%) scale(-1, -1);
  }
}

.note {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  margin: -13px auto 0;
  padding: 0 18px;
  background: #fff;
  @media (width <= 800px) {
    max-width: 636.5px;
    margin-top: -39px;
    padding: 0 24px;
    gap: 14px;
  }
  p {
    margin: 0;
    padding: 0;
    font-size: 11px;
    line-height: 1.8;
    letter-spacing: 0.03em;
  }
  small {
    margin: 0 0 3px;
    padding: 0;
    @media (width < 980px) {
      width: 100%;
      max-width: unset;
    }
  }
}

.legend {
  margin: 33px 0 8px;
}

.multi-graph {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 17px;
  margin: 40px 0 0;
  @media (width <= 800px) {
    margin: 36px 0 0;
    row-gap: 45px;
  }
  h5 {
    width: 140px;
  }
  img {
    width: 100%;
    margin-top: 20px;
    @media (width <= 800px) {
      margin-top: 23px;
    }
  }
  .graph-image {
    max-width: 270px;
    padding: 0;
    @media (width <= 800px) {
      max-width: 300px;
    }
  }
}

.seikatsusha-ttl {
  & + div + p{
    margin-top: 42px;
  }
  span {
    position: relative;
    display: block;
    margin-bottom: 19px;
    font-size: 18px;
    line-height: 1.9;
    &::after {
      content: '';
      position: absolute;
      bottom: -7px;
      left: 50%;
      transform: translateX(-50%);
      width: 91px;
      height: 8px;
      background-image: url('../../img/digital-analog2025/part1/title-fukidashi.svg');
    }
  }
}

.voice-container {
  max-width: 636px;
  width: 100%;
  margin: 32px auto 0;
}

.voice {
  display: flex;
  align-items: center;
  gap: 21px;
  padding: 0 18px;
  &:nth-child(odd) {
    p {
      &::before {
        content: '';
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        left: -13px;
        width: 13px;
        height: 13px;
        background-image: url(../../img/digital-analog2025/part1/fukidashi.svg);
      }
    }
  }
  &:nth-child(even) {
    flex-direction: row-reverse;
    p {
      &::after {
        content: '';
        position: absolute;
        top: 50%;
        transform: translateY(-50%) scale(-1, 1);
        right: -13px;
        width: 13px;
        height: 13px;
        background-image: url(../../img/digital-analog2025/part1/fukidashi.svg);
      }
      }
  }
  & + .voice {
    margin-top: 20px;
    @media (width <= 800px) {
      margin-top: 25px;
    }
  }
  img {
    @media (width <= 800px) {
      width: 46px;
      height: auto;
    }
  }
  p {
    position: relative;
    max-width: 399px;
    margin: 0;
    padding: 13px 22px;
    border-radius: 7px;
    background: var(--blue);
    color: #fff;
    font-size: 16px;
    letter-spacing: 0;
    line-height: 1.6;
    @media (width <= 800px) {
      font-size: 15px;
    }
  }
}


.research-trends {
  background-image: url('../../img/digital-analog2025/part1/digital-bg.jpg');
  background-size: cover;
  @media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi),(min-resolution: 2dppx) {
    background-image: url('../../img/digital-analog2025/part1/digital-bg@2x.jpg');
  }
  @media (width <= 800px) {
    background-image: url('../../img/digital-analog2025/part1/digital-bg-sp.jpg');
    @media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi),(min-resolution: 2dppx) {
      background-image: url('../../img/digital-analog2025/part1/digital-bg-sp@2x.jpg');
    }
  }
  h1 {
    padding: 40px 18px;
    background: var(--blue);
    color: #fff;
    font-size: 34px;
    text-align: center;
    line-height: 1.6;
    letter-spacing: 0.02em;
    @media (width <= 800px) {
      padding: 21px 18px;
      font-size: 28px;
    }
  }
  .research-trends-inner {
    max-width: 636px;
    margin: 60px auto 0;
    padding: 0 18px 40px;
    @media (width <= 800px) {
      margin-top: 41px;
      padding-bottom: 30px;
    }
    > p {
      margin-top: 50px;
      @media (width <= 800px) {
        margin-top: 31px;
        padding: 0 6px;
      }
    }
  }
  .research-trends-item {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: flex-end;
    gap: 12.5px;
    & + .research-trends-item {
      margin-top: 41px;
      @media (width <= 800px) {
        margin-top: 35px;
      }
    }
  }
  .right, .left {
    max-width: 260px;
    flex: 1;
  }
  .left {
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 10px;
    @media (width <= 800px) {
      gap: 5px;
    }
  }
  .research-trends-item-feature {
    width: 100%;
    span {
      display: flex;
      align-items: center;
      justify-content: center;
      height: 49px;
      background: var(--blue);
      color: #fff;
      font-size: 18px;
      @media (width <= 800px) {
        font-size: 13px;
        height: 28px;
      }
    }
  }
  .research-trends-item-content {
    background: #fff;
    display: flex;
    flex: 1;
    gap: 20px;
    padding: 33px 21px;
    @media (width < 850px) {
      flex-direction: column;
      align-items: center;
    }
    @media (width <= 800px) {
      gap: 9px;
      padding: 11px 5px 12px;
    }
    p {
      color: var(--blue);
      font-family: var(--font-bold);
      line-height: 1.5;
      letter-spacing: 0.05em;
      @media (width < 850px) {
        text-align: center;
      }
      @media (width <= 800px) {
        font-size: 15px;
      }
    }
    img {
      width: 52px;
      height: auto;
      @media (width <= 800px) {
        width: 32px;
        height: 32px;
      }
    }
  }
  .research-trends-item-arrow {
    display: flex;
    text-align: center;
    flex-direction: column;
    margin-bottom: 39px;
    color: var(--blue);
    font-size: 14px;
    gap: 4px;
    @media (width < 850px) {
      margin-bottom: 70px;
    }
    @media (width <= 800px) {
      margin-bottom: 41px;
      font-size: 12px;
    }
    img {
      @media (width <= 800px) {
        width: 36px;
        height: auto;
      }
    }
  }
}

.outro {
  padding: 94px 18px;
  text-align: center;
  @media (width <= 800px) {
    padding: 56px 18px 61px;
  }
  p {
    font-size: 24px;
    line-height: 2;
    letter-spacing: 0.04em;
    @media (width <= 800px) {
      font-size: 22px;
    }
  }
}

.link-section {
  padding: 52px 35px 49px;
  background-image:
    linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),
    url('../../img/digital-analog2025/common/part2-bg.jpg');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    background-image:
      linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),
      url('../../img/digital-analog2025/common/part2-bg@2x.jpg');
  }
  @media (width <= 800px) {
    padding: 38px 0px 47px;
  }
}

.fixed-link-inner {
  position: inherit;
  transform: translate(0, 0);
  h1 {
    width: calc(100% + 37px);
  }
  .right {
    z-index: -1;
  }
}