@charset "utf-8";

.buysearch-form {
  padding-top: 120px;

  @media (max-width: 750px) {
    padding-top: 80px;
  }

  > :first-child {
    margin-bottom: 20px;
    padding: 0;
    text-align: left;
    font-size: 24px;
    font-weight: bold;
  }

  .accordion {
    border: 3px solid #6FBA2C;
    border-radius: 3px;
    background-color: #f8f9f3;

    .toggle-button {
      display: block;
      position: relative;
      width: 100%;
      height: 56px;
      padding: 10px 20px;
      border: none;
      text-align: left;
      background-color: transparent;

      input {
        position: absolute;
        top: 0;
        left: 0;
        visibility: hidden;
      }

      span {
        display: inline-block;
        color: #402000;
        font-size: 20px;
        font-weight: bold;
        line-height: 36px;
      }

      i {
        position: absolute;
        top: 10px;
        right: 20px;
        width: 36px;
        height: 36px;
        border-radius: 5px;
        background-color: #6FBA2C;

        &::before,
        &::after {
          content: "";
          position: absolute;
          top: calc(50% - 1px);
          left: calc(50% - 8px);
          width: 16px;
          height: 2px;
          background-color: #fff;
          transition: transform 300ms;
        }
      }

      &:not(:has(:checked)) i::after {
        transform: rotate(90deg);
      }
    }

    &:has(.toggle-button :checked) .body {
      grid-template-rows: 1fr;

      .inner {
        padding: 20px 0;
        border-top: 3px solid #d8d8d8;
      }
    }

    .body {
      display: grid;
      grid-template-rows: 0fr;
      transition: grid-template-rows 300ms;

      .inner {
        width: auto;
        margin: 0 20px;
        overflow: hidden;
        transition: padding-top 300ms, padding-bototm 300ms;

        @media (max-width: 750px) {
          padding-top: 0;
        }
      }

      dl {
        > div {
          display: flex;
          justify-content: space-between;
          align-items: center;
          padding: 20px 0;
          border-bottom: 1px solid #d8d8d8;

          dt {
            width: 200px;
            padding-left: 20px;
            color: #402000;
            font-size: 16px;
            font-weight: bold;
          }

          dd {
            width: calc(100% - 200px);

            [type="text"] {
              width: 100%;
              max-width: 300px;
              height: 40px;
              padding: 0 10px;
              border: 1px solid #d8d8d8;
            }
          }

          @media (max-width: 750px) {
            flex-direction: column;
            align-items: left;
            gap: 20px;

            dt {
              width: 100%;
              padding: 0;
            }

            dd {
              width: 100%;
            }
          }
        }
      }
    }
  }

  .search-type {
    padding: 20px 0;

    ul {
      display: flex;
      gap: 20px;

      li {
        label {
          display: block;
          position: relative;
          width: 160px;
          height: 38px;
          text-align: center;
          border: 1px solid #6FBA2C;
          color: #6FBA2C;
          font-size: 14px;
          font-weight: bold;
          line-height: 36px;
          background-color: #fff;

          &:has(:checked) {
            color: #fff;
            background-color: #6FBA2C;
          }

          input {
            position: absolute;
            top: 0;
            left: 0;
            visibility: hidden;
          }
        }
      }

      @media (max-width: 750px) {
        flex-wrap: wrap;
        gap: 5px;

        li {
          label {
            width: auto;
            padding: 0 15px;
            font-size: 12px;
          }
        }
      }
    }
  }

  .search-type:has([value="area"]:checked) + dl.options > div:not(.area) {
    display: none;
  }

  .search-type:has([value="rail"]:checked) + dl.options > div:not(.rail) {
    display: none;
  }

  .search-type:has([value="other"]:checked) + dl.options > div:not(.other) {
    display: none;
  }

  select {
    padding: 5px;
    border-color: #d8d8d8;
    border-radius: 3px;
  }

  .range-mark {
    display: inline-block;
    padding: 0 10px;
  }

  .notice {
    margin-top: 20px;
    font-size: 14px;
    line-height: 24px;
  }

  .checkboxes {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 10px 0;

    &:not(:first-child) {
      margin-top: 20px;
    }

    li {
      width: 33.33%;

      @media (max-width: 750px) {
        width: 50% !important;
      }

      label {
        display: block;
        position: relative;
        width: 100%;
        min-height: 24px;
        padding-left: 30px;
        font-size: 16px;
        line-height: 24px;

        @media (max-width: 750px) {
          font-size: 12px;
        }

        &::before {
          content: "";
          display: block;
          position: absolute;
          top: 1px;
          left: 0;
          width: 22px;
          height: 22px;
          border: 1px solid #ccc;
          border-radius: 3px;
          box-shadow: inset 0px 2px 3px rgba(0, 0, 0, 0.2);
          background: #fff;
        }

        &:has(:checked) {
          &::before {
            border: 1px solid #6FBA2C;
            box-shadow: none;
            background-color: #6FBA2C;
          }

          &::after {
            content: "";
            display: block;
            position: absolute;
            top: 2px;
            left: 6px;
            width: 6px;
            height: 12px;
            border-bottom: 4px solid #fff;
            border-right: 4px solid #fff;
            box-sizing: content-box;
            transform: rotate(40deg);
          }
        }

        input {
          position: absolute;
          top: 0;
          left: 0;
          visibility: hidden;
        }
      }
    }

    &.madori li {
      width: 25%;
    }
  }

  .button {
    margin: 40px 0 0;
    text-align: center;

    button {
      width: 356px;
      height: 68px;
      padding-top: 2px;
      border: none;
      border-radius: 5px;
      color: #fff;
      font-size: 18px;
      font-weight: bold;
      background-color: #f49b3d;
      transition: opacity 300ms;

      @media (max-width: 750px) {
        width: 280px;
        height: 50px;
      }

      &:hover {
        opacity: .7;
      }
    }
  }

  .schools {
    display: flex;
    gap: 20px;

    > label {
      span {
        display: block;
        margin-bottom: 5px;
      }

      select {
        optgroup.hide,
        optgroup.hide option {
          display: none;
        }
      }
    }

    @media (max-width: 750px) {
      gap: 10px;

      > label {
        width: calc(50% - 5px);
      }
    }
  }

  .rails-stations {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;

    label {
      span {
        display: block;
      }

      select {
        min-width: 200px;
        padding-right: 20px;

        option:disabled {
          color: #ddd;
        }
      }

      @media (max-width: 750px) {
        width: 100%;

        select {
          width: 100%;
        }
      }
    }
  }
}

.search-results {
  margin-top: 40px;

  .head {
    display: flex;
    justify-content: space-between;
    position: relative;
    border-bottom: 3px solid #6FBA2C;

    @media (max-width: 750px) {
      margin-top: 80px;
    }

    .view-mode {
      display: flex;
      gap: 2px;

      button {
        width: 170px;
        height: 50px;
        padding-top: 2px;
        border: none;
        border-radius: 3px 3px 0 0;
        color: #fff;
        font-size: 16px;
        background-color: #ccc;

        @media (max-width: 750px) {
          width: auto;
          height: 40px;
          padding: 2px 10px 0;
          font-size: 14px;
        }

        &::before {
          content: "";
          display: inline-block;
          width: 24px;
          height: 24px;
          margin-right: 10px;
          vertical-align: -6px;

          @media (max-width: 750px) {
            margin-right: 5px;
          }
        }

        &.normal::before {
          background: url(../images/buysearch/icon_normal.svg) no-repeat center / contain;
        }

        &.simple::before {
          background: url(../images/buysearch/icon_simple.svg) no-repeat center / contain;
        }

        &.active {
          background-color: #6FBA2C;
        }
      }
    }

    .sort-by {
      @media (max-width: 750px) {
        position: absolute;
        top: -40px;
        right: 0;
      }

      label {
        span {
          display: inline-block;
          padding: 0 10px 0 30px;
          font-size: 16px;
          font-weight: bold;
          background: url(../images/buysearch/icon_sort.svg) no-repeat center left / 24px;

          @media (max-width: 750px) {
            font-size: 14px;
          }
        }

        select {
          padding: 5px;
        }
      }
    }
  }

  .list {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 20px;

    &.simple .hide-simple {
      display: none;
    }

    &[data-page="1"] a:not(.page1) {display: none;}
    &[data-page="2"] a:not(.page2) {display: none;}
    &[data-page="3"] a:not(.page3) {display: none;}
    &[data-page="4"] a:not(.page4) {display: none;}
    &[data-page="5"] a:not(.page5) {display: none;}
    &[data-page="6"] a:not(.page6) {display: none;}
    &[data-page="7"] a:not(.page7) {display: none;}
    &[data-page="8"] a:not(.page8) {display: none;}
    &[data-page="9"] a:not(.page9) {display: none;}
    &[data-page="10"] a:not(.page10) {display: none;}

    a {
      display: flex;
      flex-wrap: wrap;
      gap: 20px 40px;
      justify-content: space-between;
      padding: 20px;
      border: 1px solid #828282;
      border-radius: 5px;
      background-color: #fff;

      @media (max-width: 750px) {
        gap: 40px;
      }

      > * {
        transition: opacity 300ms;
      }

      &:hover > * {
        opacity: .7;
      }

      .block1 {
        width: 360px;

        @media (max-width: 750px) {
          width: 100%;
        }

        .status {
          display: flex;
          flex-wrap: wrap;
          gap: 5px;

          li {
            padding: 0 10px;
            border-radius: 3px;
            font-size: 12px;
            line-height: 20px;
          }

          li.type {
            border: 1px solid #f49b3d;
            color: #fff;
            background-color: #F49B3D;
          }

          li:not(.type) {
            border: 1px solid #00A0E9;
            color: #00A0E9;
          }
        }

        .images {
          display: flex;
          flex-wrap: wrap;
          gap: 6px;
          margin-top: 10px;

          li {
            width: 100%;
            _aspect-ratio: 16 / 9;
            aspect-ratio: 4 / 3;
            padding: 3px;
            border: 1px solid #d8d8d8;

            img {
              width: 100%;
              height: 100%;
              object-fit: contain;
              object-position: center;
            }

            &:first-child img {
              object-fit: cover;
            }

            &:not(:first-child) {
              width: calc(50% - 3px);
            }
          }
        }
      }

      .block2 {
        width: calc(100% - 400px);

        @media (max-width: 750px) {
          width: 100%;
        }

        .name {
          margin: 0;
          color: #000 !important;
          font-size: 24px;
          font-weight: bold;
          line-height: 30px;

          span:first-child {
            display: inline-block;
            margin-right: 5px;
            padding: 0 10px;
            border: 1px solid #ccc;
            border-radius: 3px;
            color: #828282;
            font-size: 12px;
            font-weight: normal;
            line-height: 28px;
            background-color: #f6f6f6;
            vertical-align: 4px;
          }

          span:last-child {
            @media (max-width:750px) {
              display: block;
              margin-top: 5px;
            }
          }
        }

        .description {
          margin: 20px 0 0;
          font-size: 14px;
          line-height: 24px;
        }

        dl {
          display: flex;
          flex-wrap: wrap;
          margin: 20px 0 0;

          > div {
            display: flex;
            width: 100%;
            padding: 10px 0;
            border-bottom: 1px solid #d8d8d8;
            color: #333;
            font-size: 14px;

            &.small {width: 50%;}

            &.price {
              font-size: 20px;
            }

            dt {
              width: 70px;
              font-size: 1em;
              font-weight: bold;
            }

            dd {
              width: calc(100% - 70px);
              font-size: 1em;

              b {
                color: #FF4600;
              }
            }
          }
        }
      }

      .bottom {
        width: 100%;
        margin: 0;

        .shop {
          font-size: 14px;
          line-height: 30px;

          span {
            display: inline-block;
            margin-right: 10px;
            padding: 0 10px 1px;
            color: #fff;
            background-color: #6FBA2C;
          }
        }

        .staff {
          .body {
            display: flex;
            gap: 30px;
            min-height: 150px;

            @media (max-width: 750px) {
              flex-wrap: wrap;
              gap: 20px;
            }

            .image {
              width: 120px;

              @media (max-width: 750px) {
                width: 100%;
              }

              p {
                margin: 0;
                text-align: center;
                font-size: 12px;
                line-height: 30px;
              }

              div {
                aspect-ratio: 1 / 1;
                width: 120px;

                @media (max-width: 750px) {
                  aspect-ratio: auto;
                  width: 50%;
                  margin: 0 auto;
                }

                img {
                  width: 100%;
                  height: 100%;
                  object-fit: contain;
                  object-position: center;
                }
              }
            }

            .comment {
              width: calc(100% - 150px);
              padding: 10px;
              border: 3px solid #d8d8d8;
              background-color: #F9F9F4;

              @media (max-width: 750px) {
                width: 100%;
              }

              p {
                font-size: 14px;
                line-height: 24px;
              }
            }
          }
        }
      }
    }
  }

  .paging {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin: 40px 0 0;

    li {
      display: inline-block;
      width: 36px;
      height: 36px;
      border: 1px solid #aaa;
      border-radius: 3px;
      box-shadow: inset 0 -2px 0 rgba(0, 0, 0, 0.1);
      text-align: center;
      text-decoration: none;
      color: #414141;
      font-size: 16px;
      line-height: 34px;
      cursor: pointer;
      background: #fff;

      &.current {
        color: #fff;
        box-shadow: none;
        cursor: default;
        background-color: #aaa;
      }
    }
  }
}

#property {
  padding: 140px 0 100px;
  background-color: #fff;

  p {
    margin: 0;
  }

  .inner {
    display: flex;
    flex-direction: column;
    gap: 60px;
    width: 1200px;
    max-width: 100%;
    margin: 0 auto;
  }

  .common-title {
    display: block;
    margin-bottom: 30px;
    padding: 0 0 20px;
    border-bottom: 2px solid #666;
    text-align: left;
    font-family: "Noto Sans JP", sans-serif;
    font-size: 30px;
    font-weight: normal;
    line-height: 40px;

    &::before {
      display: inline-block;
      position: relative;
      top: auto;
      left: auto;
      right: auto;
      bottom: auto;
      width: auto;
      height: auto;
      margin-right: 15px;
      border-left: 12px solid #666;
      border-top: 10px solid transparent;
      border-bottom: 10px solid transparent;
      border-right: none;
      vertical-align: 1px;
      background-color: transparent;
    }

    &::after {
      display: none;
    }

    &.center {
      text-align: center;

      &::before {
        display: none;
      }
    }
  }

  header {
    padding-bottom: 20px;
    border-bottom: 1px solid #ddd;

    h2 {
      padding: 0 0 20px;
      border-bottom: 3px solid #6FBA2C;
      text-align: left;
      font-size: 30px;
      line-height: 40px;
      font-weight: normal;

      .type {
        display: inline-block;
        margin-right: 10px;
        padding: 0 20px;
        border: 1px solid #ccc;
        border-radius: 5px;
        vertical-align: top;
        color: #666;
        font-size: 16px;
        line-height: 38px;
        background-color: #f8f8f8;
      }
    }

    .meta {
      display: flex;
      justify-content: space-between;
      margin-top: 20px;

      .tags {
        display: flex;
        gap: 0 10px;

        li {
          padding: 0 10px;
          border: 1px solid #1c4eb2;
          border-radius: 3px;
          color: #1c4eb2;
          font-size: 14px;
          line-height: 28px;
        }
      }

      .updated-at {
        font-size: 16px;
        line-height: 30px;
      }
    }
  }

  .images {
    display: flex;
    flex-direction: column;
    gap: 30px;

    .image1 {
      width: 100%;
      max-width: 800px;
      margin: 0 auto;

      div {
        aspect-ratio: 3 / 2;
        width: 100%;
        border: 1px solid #ddd;

        img {
          width: 100%;
          height: 100%;
          object-fit: contain;
          object-position: center;
        }

        p {
          margin: 10px 0 0;
          color: #666;
          font-size: 16px;
          line-height: 28px;
        }
      }
    }

    .images1 {
      display: flex;
      flex-wrap: wrap;
      gap: 20px;

      li {
        width: calc((100% - 60px) / 4);
      }
    }

    .images2 {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
      gap: 10px;

      li {
        /*width: 100px;*/
      }
    }

    .images1,
    .images2 {
      li {
        div {
          aspect-ratio: 3 / 2;
          width: 100%;
          border: 1px solid #ddd;

          img {
            width: 100%;
            height: 100%;
            object-fit: contain;
            object-position: center;
          }
        }

        p {
          margin-top: 10px;
          color: #666;
          font-size: 14px;
          line-height: 24px;
        }
      }
    }
  }

  .image-popup {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 0;
    overflow: hidden;
    opacity: 0;
    background-color: rgba(0, 0, 0, .4);
    z-index: 1000;
    transition: opacity 300ms, height 1ms 300ms;

    &.show {
      opacity: 1;
      height: 100vh;
      transition: opacity 300ms, height 1ms;
    }

    ul {
      position: absolute;
      width: 100%;
      height: 100%;

      li {
        display: none;
        width: 100%;
        height: 100%;

        &.show {
          display: flex;
          flex-direction: column;
          justify-content: space-between;
          height: 100%;
        }

        .image {
          position: relative;
          flex-grow: 1;

          img {
            position: absolute;
            top: 50%;
            left: 50%;
            width: auto;
            height: auto;
            max-width: calc(100% - 40px);
            max-height: calc(100% - 40px);
            box-shadow: 0 0 10px rgba(0, 0, 0, .2);
            transform: translate(-50%, -50%);
          }
        }

        p {
          width: 100%;
          padding: 20px;
          background-color: rgba(0, 0, 0, .6);
          text-align: center;
          color: #fff;
          font-size: 14px;
          line-height: 20px;

          @media screen and (max-width: 750px) {
            text-align: left;
          }
        }
      }
    }

    .prev,
    .next {
      position: absolute;
      top: calc(50% - 20px);
      width: 40px;
      height: 40px;
      border-radius: 50%;
      cursor: pointer;
      background-color: #0a2d54;

      &::before {
        content: "";
        display: inline-block;
        position: absolute;
        top: calc(50% - 7px);
        left: calc(50% - 6px);
        border-right: 10px solid #fff;
        border-top: 7px solid transparent;
        border-bottom: 7px solid transparent;
      }
    }

    .prev {
      left: 20px;

      @media screen and (max-width: 750px) {
        left: 10px;
      }
    }

    .next {
      right: 20px;
      transform: rotate(180deg);

      @media screen and (max-width: 750px) {
        right: 10px;
      }
    }
  }

  .movie {
    display: flex;
    justify-content: center;

    iframe {
      aspect-ratio: 16 / 9;
      width: 100%;
      max-width: 800px;
    }
  }

  .contact-buttons {
    display: flex;
    justify-content: center;
    gap: 20px;

    li {
      a {
        display: block;
        padding: 0 60px 2px;
        border-radius: 6px;
        box-shadow: inset 0 -3px 3px rgba(0, 0, 0, .3);
        color: #fff;
        font-size: 20px;
        font-weight: bold;
        line-height: 70px;
        letter-spacing: .05em;
        transition: opacity 300ms;

        &:hover {
          opacity: .8;
        }

        &.form-button {
          background-color: #FD6B6C;
        }

        &.map-button {
          background-color: #F49B3D;
        }

        &.share {
          background-color: #539FEA;
        }
      }
    }
  }

  .address-info {
    dl {
      margin-top: -20px;

      div {
        display: flex;
        padding: 20px 0;
        border-bottom: 1px solid #999;

        dt {
          width: 180px;
          font-size: 20px;
          font-weight: bold;
          line-height: 30px;
        }

        dd {
          display: flex;
          justify-content: space-between;
          width: calc(100% - 180px);
          font-size: 20px;
          line-height: 30px;

          .map-button {
            display: block;
            height: 40px;
            margin: -5px 0;
            padding: 0 20px 2px;
            border-radius: 6px;
            box-shadow: inset 0 -3px 3px rgba(0, 0, 0, .3);
            color: #fff;
            font-size: 14px;
            font-weight: bold;
            line-height: 38px;
            letter-spacing: .05em;
            background-color: #F49B3D;
            transition: opacity 300ms;

            &:hover {
              opacity: .8;
            }
          }
        }
      }
    }
  }

  .loan-simulator {
    border: 5px solid #ccc;

    .price {
      padding: 30px 0;
      border-bottom: 1px solid #ccc;
      text-align: center;
      line-height: 46px;

      .label {
        display: inline-block;
        height: 50px;
        margin-right: 15px;
        padding: 0 15px 4px;
        vertical-align: top;
        color: #fff;
        font-size: 20px;
        font-weight: normal;
        line-height: 46px;
        background: #FF4600;
      }

      .number {
        display: inline-block;
        min-width: 108px;
        padding-bottom: 4px;
        color: #FF4600;
        font-size: 40px;
        font-weight: bold;
      }

      .unit {
        display: inline-block;
        font-size: 20px;
        vertical-align: bottom;
      }
    }

    .simulator {
      display: flex;
      justify-content: center;
      gap: 20px;
      height: 126px;
      padding: 30px 0;
      border-bottom: 1px solid #ccc;

      .input {
        display: flex;
        gap: 20px;

        > p {
          padding: 10px;
          border: 3px solid #FF4600;
          border-radius: 10px;
          text-align: center;
          color: #FF4600;
          font-size: 14px;
          font-weight: bold;
          line-height: 20px;
        }

        label {
          display: flex;
          flex-direction: column;
          justify-content: center;
          gap: 2px;

          span:first-child {
            display: block;
            color: #666;
            font-size: 14px;
            line-height: 14px;
          }

          span:last-child {
            font-size: 16px;
            line-height: 46px;

            input {
              height: 36px;
              padding: 0 10px;
              text-align: right;
              font-size: 16px;

              &.loanPrice {
                width: 90px;
              }

              &.loanTerm {
                width: 60px;
              }

              &.interestRate {
                width: 90px;
              }
            }
          }
        }
      }

      .button {
        button {
          text-decoration: none;
          width: 120px;
          height: 46px;
          margin: 10px 0;
          border: none;
          border-radius: 5px;
          box-shadow: inset 0 -3px 0 0 rgba(0, 0, 0, .2);
          color: #FFF;
          font-weight: bold;
          background: #FF4600;
          transition: opacity 300ms;

          &:hover {
            opacity: .8;
          }

          &:disabled {
            background-color: #ccc;
          }
        }
      }

      .result {
        position: relative;
        padding-left: 30px;

        &::before {
          content: "";
          position: absolute;
          top: 13px;
          left: 0;
          border-left: 12px solid #FF4600;
          border-top: 20px solid transparent;
          border-bottom: 20px solid transparent;
          border-right: none;
          opacity: .5;;
        }

        label {
          display: flex;
          flex-direction: column;
          justify-content: center;
          gap: 2px;

          span:first-child {
            display: block;
            color: #666;
            font-size: 14px;
            line-height: 14px;
          }

          span:last-child {
            font-size: 16px;
            line-height: 46px;

            input {
              width: 150px;
              height: 36px;
              padding: 0 10px;
              text-align: right;
              font-size: 16px;

              &.loanTerm {
                width: 35px;
              }
            }
          }
        }
      }
    }

    .notice {
      padding: 20px 0;
      text-align: center;
      color: #666;
      font-size: 14px;
      line-height: 20px;

      &::before {
        content: "※";
      }
    }
  }

  .introduction {
    border: 2px solid #6FBA2C;
    border-radius: 5px;
    padding: 40px;

    p {
      font-size: 18px;
      line-height: 32px;
    }
  }

  .outline {
    .dls {
      display: flex;
      flex-direction: column;
      gap: 20px;

      > div {
        padding: 0 2px 2px;
        border: 2px solid #ddd;
        border-radius: 5px;
        overflow: hidden;

        dl {
          display: flex;
          flex-wrap: wrap;
          overflow: hidden;

          div {
            display: flex;
            width: 50%;
            margin-top: 2px;
            margin-bottom: -1px;

            &.large {
              width: 100%;
            }

            dt {
              width: 180px;
              padding: 1em;
              border-bottom: 1px solid #ccc;
              text-align: left;
              font-size: 16px;
              font-weight: bold;
              line-height: 1.6;
              background-color: #eee;
            }

            dd {
              width: calc(100% - 180px);
              border-bottom: 1px solid #ccc;
              font-size: 16px;
              line-height: 1.6;
              padding: 1em;
            }
          }
        }
      }
    }
  }

  .equipments {
    .tags {
      padding: 20px;
      border: 2px solid #ddd;
      border-radius: 5px;

      ul {
        margin: -10px 0 0 -10px;
        font-size: 0;

        li {
          display: inline-block;
          margin: 10px 0 0 10px;
          padding: 0 15px;
          border-radius: 10px;
          color: #626262;
          font-size: 14px;
          line-height: 30px;
          background-color: #eee;
        }
      }
    }
  }

  .access {
    .body {
      display: flex;
      gap: 40px;

      .map {
        width: calc(70% - 40px);
      }

      .address {
        width: 30%;

        dl {
          div {
            + div {
              margin-top: 28px;
            }

            dt {
              padding: 5px 10px;
              font-size: 16px;
              line-height: 24px;
              background-color: #eee;
            }

            dd {
              margin-top: 10px;
              font-size: 14px;
              line-height: 24px;
            }
          }
        }
      }
    }
  }

  .shops {
    ul {
      display: flex;
      flex-wrap: wrap;
      gap: 30px 20px;

      li {
        width: calc((100% - 60px) / 4);

        .image {
          aspect-ratio: 16 / 9;
          width: 100%;
          background-color: #f8f8f8;

          img {
            width: 100%;
            height: 100%;
            object-fit: contain;
            object-position: center;
          }
        }

        .type {
          margin-top: 10px;
          text-align: center;
          color: #626262;
          font-size: 14px;
          line-height: 1.8;
          background-color: #ddd;
        }

        .comment {
          margin-top: 10px;
          font-size: 12px;
          line-height: 1.4;
        }
      }
    }
  }

  .tel {
    .body {
      padding-top: 20px;
      text-align: center;

      a {
        display: inline-block;
        padding: 0 20px 5px 55px;
        color: #333;
        font-size: 50px;
        font-weight: bold;
        line-height: 50px;
        background: url(../images/tel.svg) no-repeat center left / auto 45px;
      }

      p {
        margin-top: 20px;
        color: #3C1A0E;
        font-size: 20px;
        font-weight: bold;
        line-height: 30px;
      }
    }
  }

  .staff {
    .body {
      display: flex;
      gap: 30px;
      min-height: 150px;

      .image {
        width: 120px;

        p {
          text-align: center;
          font-size: 12px;
          line-height: 30px;
        }

        div {
          width: 120px;
          height: 120px;

          img {
            width: 100%;
            height: 100%;
            object-fit: contain;
            object-position: center;
          }
        }
      }

      .comment {
        width: calc(100% - 150px);
        padding: 10px 15px;
        border: 3px solid #d8d8d8;
        background-color: #F9F9F4;

        p {
          font-size: 16px;
          line-height: 28px;
        }
      }
    }
  }

  .latest {
    ul {
      display: flex;
      justify-content: space-between;

      li {
        width: calc((100% - 45px) / 4);
        border: 1px solid #ddd;
        background-color: #fff;

        a {
          display: block;
          padding: 5px;
          color: #333;
          transition: opacity 300ms;

          &:hover {
            opacity: .7;
          }

          .image {
            aspect-ratio: 4 / 3;
            border: 1px solid #eee;

            img {
              width: 100%;
              height: 100%;
              object-fit: contain;
              object-position: center;
            }
          }

          .type {
            display: inline-block;
            width: 100%;
            margin-top: 5px;
            padding: 0 10px 4px;
            text-align: center;
            color: #fff;
            font-size: 16px;
            line-height: 32px;
            background-color: #0a2d54;
          }

          .type + p {
            font-size: 16px;
            font-weight: bold;
          }

          p {
            margin: 5px 10px 0;
            font-size: 14px;
            line-height: 1.5;

            strong {
              font-weight: normal;
            }
          }
        }
      }
    }
  }

  [data-js-image-popup] {
    cursor: pointer;
    transition: opacity 300ms;

    &:hover {
      opacity: .8;
    }
  }

  @media screen and (max-width: 750px) {
    padding: 100px 0;

    .inner {
      gap: 60px;
    }

    .common-title {
      padding: 0 0 10px;
      font-size: 26px;
      line-height: 36px;

      &::before {
        margin-right: 12px;
        border-left: 10px solid #666;
        border-top: 8px solid transparent;
        border-bottom: 8px solid transparent;
      }
    }

    header {
      h2 {
        padding: 0 0 15px;
        font-size: 24px;
        line-height: 36px;

        .type {
          display: inline-block;
          margin-right: 0;
          padding: 0 15px;
          font-size: 16px;
          line-height: 32px;
        }

        span:last-child {
          display: block;
        }
      }

      .meta {
        display: block;
        margin-top: 20px;

        .tags {
        }

        .updated-at {
          margin-top: 10px;
          text-align: right;
        }
      }
    }

    .images {
      .image1 {
        div {
          p {
            font-size: 14px;
            line-height: 24px;
          }
        }
      }

      .images1 {
        gap: 15px;

        li {
          width: calc((100% - 15px) / 2);
        }
      }

      .images2 {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;

        li {
          width: calc((100% - 30px) / 4);
        }
      }
    }

    .image-popup {
      img {
        max-width: calc(100% - 40px);
        max-height: calc(100% - 40px);
      }
    }

    .contact-buttons {
      flex-wrap: wrap;
      gap: 20px;

      li {
        width: 100%;
        padding: 0 20px;

        a {
          display: block;
          width: 100%;
          padding: 0 0 2px;
          text-align: center;
        }
      }
    }

    .address-info {
      dl {
        margin-top: -20px;

        div {
          display: block;
          padding: 20px 0;
          border-bottom: 1px solid #999;

          dt {
            width: 100%;
            font-size: 16px;
            font-weight: bold;
            line-height: 30px;
          }

          dd {
            display: block;
            width: 100%;
            font-size: 14px;
            line-height: 30px;

            .map-button {
              display: none;
            }
          }
        }
      }
    }

    .loan-simulator {
      .price {
        .label {
          font-size: 18px;
        }

        .number {
          font-size: 36px;
        }

        .unit {
          font-size: 18px;
        }
      }

      .simulator {
        display: flex;
        flex-direction: column;
        gap: 10px;
        height: auto;

        .input {
          flex-wrap: wrap;
          gap: 10px;
          margin: 0 auto;

          > p {
            display: none;
          }

          label {
            span:first-child {
              font-size: 14px;
              line-height: 14px;
            }

            span:last-child {
              font-size: 14px;

              input {
                &.loanPrice {
                  width: 80px;
                }

                &.loanTerm {
                  width: 50px;
                }

                &.interestRate {
                  width: 80px;
                }
              }
            }
          }
        }

        .button {
          text-align: center;
        }

        .result {
          padding-top: 30px;

          &::before {
            top: 0;
            left: calc(50% - 20px);
            border-top: 12px solid #FF4600;
            border-left: 20px solid transparent;
            border-right: 20px solid transparent;
            border-bottom: none;
          }

          label {
            width: 250px;
            margin: 0 auto;
            padding-left: 30px;
          }
        }
      }

      .notice {
        position: relative;
        padding: 20px 20px 20px 40px;
        text-align: left;

        &::before {
          position: absolute;
          top: 20px;
          left: 20px;
        }
      }
    }

    .introduction {
      padding: 20px;

      p {
        font-size: 16px;
        line-height: 24px;
      }
    }

    .outline {
      .dls {
        > div {
          padding: 0;

          dl {
            display: block;

            div {
              display: block;
              width: 100%;
              margin: 0;

              dt {
                width: 100%;
                border: none;
              }

              dd {
                width: 100%;
                border: none;
              }
            }
          }
        }
      }
    }

    .equipments {
      .tags {
        padding: 20px;

        ul {
          li {
            padding: 0 10px;
            font-size: 13px;
            line-height: 28px;
          }
        }
      }
    }

    .access {
      .body {
        flex-direction: column;
        gap: 30px;

        .map {
          width: 100%;
          aspect-ratio: 4 / 3;

          iframe {
            width: 100%;
            height: 100%;
          }
        }

        .address {
          width: 100%;
        }
      }
    }

    .shops {
      ul {
        gap: 20px;

        li {
          width: calc((100% - 20px) / 2);
        }
      }
    }

    .tel {
      .body {
        a {
          padding: 0 20px 5px 50px;
          font-size: 30px;
          line-height: 40px;
          background: url(../images/tel.svg) no-repeat center left / auto 40px;
        }

        p {
          font-size: 16px;
          line-height: 26px;
        }
      }
    }

    .staff {
      .body {
        display: flex;
        gap: 15px;
        min-height: 124px;

        .image {
          width: 80px;

          p {
            font-size: 11px;
            line-height: 24px;
            white-space: nowrap;

            span {
              display: none;
            }
          }

          div {
            width: 80px;
            height: 100px;
          }
        }

        .comment {
          width: calc(100% - 95px);
          padding: 10px 10px;
          border: 1px solid #d8d8d8;

          p {
            font-size: 14px;
            line-height: 24px;
          }
        }
      }
    }

    .latest {
      ul {
        flex-wrap: wrap;
        gap: 20px;

        li {
          width: 100%;

          a {
            padding: 15px 15px 20px;

            p {
              margin: 10px 10px 0;
            }
          }
        }
      }
    }

    h5 {
      padding-left: 15px;
      font-size: 22px;

      &::before {
        top: 7px;
      }
    }

    .box-item-tt {
      margin-bottom: 20px;
    }

    .box-item-content {
      gap: 10px;
    }
  }
}
