/*! Writen  by SCSS */
body {
  background: #14634a;
  color: #fff; }

.wrap {
  padding-top: 0 !important; }

.mainvisual .main_wrap {
  position: relative; }
@media screen and (max-width: 1100px) {
  .mainvisual .img {
    aspect-ratio: 1/1.2; }
    .mainvisual .img img {
      width: 100%;
      height: 100%;
      object-fit: cover; } }
@media screen and (max-width: 768px) {
  .mainvisual .img {
    /*aspect-ratio: 1/1;
    img {
    	width: 100%;
    	height: 100%;
    	object-fit: cover;
    }*/ } }
@media screen and (max-width: 480px) {
  .mainvisual .img {
    aspect-ratio: 1/1.65; } }
.mainvisual .item_wrap {
  position: absolute;
  inset: 0;
  bottom: auto;
  top: 17.5%;
  margin-inline: auto;
  text-align: center; }
  @media screen and (max-width: 480px) {
    .mainvisual .item_wrap {
      top: 22.5%; } }
  .mainvisual .item_wrap .item {
    position: relative; }
    @media screen and (max-width: 480px) {
      .mainvisual .item_wrap .item {
        margin-inline: auto; } }
    .mainvisual .item_wrap .item img {
      position: relative;
      z-index: 1; }
    .mainvisual .item_wrap .item .shadow {
      position: absolute;
      inset: 0;
      display: flex;
      justify-content: center;
      align-items: center;
      mix-blend-mode: multiply; }
  @media screen and (max-width: 480px) {
    .mainvisual .item_wrap .main_item {
      width: 75%; } }
  .mainvisual .item_wrap .item_in {
    display: grid;
    grid-template-columns: 28.17% 28.17%;
    align-items: flex-start;
    align-content: start;
    grid-auto-flow: dense;
    justify-content: center;
    column-gap: 10%;
    row-gap: clamp(20px, 3.334vw, 40px);
    margin-top: clamp(40px, 6.667vw, 80px); }
    @media screen and (max-width: 480px) {
      .mainvisual .item_wrap .item_in {
        grid-template-columns: 41.17% 56.34%;
        grid-template-columns: 1fr;
        justify-content: space-between;
        column-gap: 0; } }
    .mainvisual .item_wrap .item_in .item01 {
      grid-column: span 2; }
      @media screen and (max-width: 480px) {
        .mainvisual .item_wrap .item_in .item01 {
          grid-column: span 1;
          width: 68.67%;
          margin-inline: auto; } }
    @media screen and (max-width: 480px) {
      .mainvisual .item_wrap .item_in .item02 {
        width: 41.17%; } }
    @media screen and (max-width: 480px) {
      .mainvisual .item_wrap .item_in .item03 {
        width: 60%; } }
    .mainvisual .item_wrap .item_in .icon {
      position: absolute;
      inset: 0;
      top: auto;
      width: 13.59%;
      margin-inline: auto;
      mix-blend-mode: overlay; }
      @media screen and (max-width: 480px) {
        .mainvisual .item_wrap .item_in .icon {
          display: none; } }
.mainvisual .bar_txt {
  background: #972a53;
  color: #fff;
  font-size: clamp(20px, 3vw, 36px);
  text-align: center;
  line-height: 1.4;
  padding: 0.5em;
  letter-spacing: 0.05em; }
  .mainvisual .bar_txt sup {
    font-size: 10px;
    vertical-align: top; }

.sec01 {
  position: relative;
  padding-top: 40px; }
  .sec01::before {
    content: '';
    width: 85.25%;
    aspect-ratio: 1228/1486;
    position: absolute;
    right: 0;
    top: 0;
    mix-blend-mode: multiply;
    pointer-events: none;
    background: url("../images/bg01.png") center center/cover no-repeat;
    pointer-events: none; }
  .sec01 .merit_txt {
    text-align: center; }
    .sec01 .merit_txt .ttl {
      font-size: clamp(24px, 3.501vw, 42px);
      margin-bottom: 0.5em;
      letter-spacing: 0.1em; }
    .sec01 .merit_txt .read {
      font-size: clamp(14px, 1.667vw, 20px);
      line-height: 2.8; }
  .sec01 .img01 {
    margin: -1px 0; }

.sec02 {
  text-align: center;
  position: relative;
  padding-top: clamp(70px, 10vw, 120px);
  padding-bottom: 80px; }
  .sec02::before {
    content: '';
    width: 100%;
    height: 100%;
    background: url("../images/bg02.png") center center/cover no-repeat;
    opacity: .24;
    position: absolute;
    inset: 0;
    pointer-events: none; }
  .sec02::after {
    content: '';
    width: 100%;
    height: 20px;
    background: #972a53;
    position: absolute;
    inset: 0;
    bottom: auto;
    z-index: 1; }
  .sec02 .txt {
    font-size: clamp(18px, 2.5vw, 30px); }
    .sec02 .txt sup {
      font-size: 10px;
      vertical-align: text-top; }
  .sec02 .ttl {
    line-height: 1.4;
    font-size: clamp(20px, 4.334vw, 52px);
    letter-spacing: 0.1em; }
    .sec02 .ttl .s_txt {
      font-size: 30%;
      display: block;
      line-height: 0; }
    .sec02 .ttl sub {
      font-size: 20%; }
      @media screen and (max-width: 480px) {
        .sec02 .ttl sub {
          font-size: 10px; } }

/*# sourceMappingURL=top.css.map */
