/* CSS Document */
article {
  margin-top: 0;
  background-color: #F7F2E8; }

#top-img {
  background-image: url("../img/top-tile-right01.png");
  background-repeat: no-repeat;
  background-size: auto;
  background-position: right -100px top 105px;
  position: relative;
  min-height: 830px; }
  @media screen and (max-width: 1399px) {
    #top-img {
      min-height: 700px; } }
  @media screen and (max-width: 991px) {
    #top-img {
      min-height: 570px; } }
  @media screen and (max-width: 767px) {
    #top-img {
      background-size: 40%;
      background-position: left -100px bottom 0; } }
  @media screen and (max-width: 575px) {
    #top-img {
      background-position: left -70px bottom 110px; } }
  #top-img::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    display: inline-block;
    width: 1300px;
    height: 800px;
    background-image: url("../img/top-main01.png");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left top;
    vertical-align: middle; }
    @media screen and (max-width: 1599px) {
      #top-img::before {
        width: 1060px;
        height: 700px; } }
    @media screen and (max-width: 1399px) {
      #top-img::before {
        width: 990px;
        height: 650px; } }
    @media screen and (max-width: 1199px) {
      #top-img::before {
        width: 920px;
        height: 580px;
        left: -100px;
        top: -10px; } }
    @media screen and (max-width: 991px) {
      #top-img::before {
        width: 740px;
        height: 460px; } }
    @media screen and (max-width: 575px) {
      #top-img::before {
        width: 530px;
        height: 340px;
        left: -80px;
        top: 55px; } }
  #top-img::after {
    content: '';
    position: absolute;
    bottom: 0;
    right: 0;
    display: inline-block;
    width: 750px;
    height: 470px;
    background-image: url("../img/top-main02.png");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: right bottom;
    vertical-align: middle; }
    @media screen and (max-width: 1399px) {
      #top-img::after {
        width: 570px;
        height: 350px; } }
    @media screen and (max-width: 1199px) {
      #top-img::after {
        width: 510px;
        height: 300px; } }
    @media screen and (max-width: 991px) {
      #top-img::after {
        width: 440px;
        height: 270px; } }
    @media screen and (max-width: 767px) {
      #top-img::after {
        width: 370px;
        height: 210px; } }
  #top-img div.container {
    display: flex;
    justify-content: flex-end;
    padding-top: 25rem; }
    #top-img div.container h2 {
      font-size: 38px;
      font-size: 3.8rem;
      color: #534741;
      position: relative;
      z-index: 2;
      right: -5rem; }
      @media screen and (max-width: 1399px) {
        #top-img div.container h2 {
          font-size: 30px;
          font-size: 3rem;
          right: 0; } }
      @media screen and (max-width: 991px) {
        #top-img div.container h2 {
          font-size: 25px;
          font-size: 2.5rem; } }
      @media screen and (max-width: 767px) {
        #top-img div.container h2 {
          font-size: 30px;
          font-size: 3rem; } }
      @media screen and (max-width: 575px) {
        #top-img div.container h2 {
          font-size: 20px;
          font-size: 2rem; } }
      #top-img div.container h2 span {
        display: inline-block;
        background-color: #fff;
        padding: 1rem;
        letter-spacing: 5px;
        margin-bottom: 1.5rem; }
        @media screen and (max-width: 991px) {
          #top-img div.container h2 span {
            margin-bottom: 1rem; } }
        @media screen and (max-width: 575px) {
          #top-img div.container h2 span {
            margin-bottom: 0.5rem; } }

#top-img + div {
  background-image: url("../img/top-tile-right02.png"), url("../img/top-tile-left01.png");
  background-repeat: no-repeat;
  background-size: auto;
  background-position: right top,left -100px bottom 20px; }
  @media screen and (max-width: 767px) {
    #top-img + div {
      background-size: 35%, 50%; } }

#concept {
  padding: 4rem 0; }
  #concept div {
    display: flex; }
    #concept div h2 {
      font-size: 14px;
      font-size: 1.4rem;
      color: #8C2126;
      font-weight: normal;
      writing-mode: vertical-rl;
      font-weight: 400;
      letter-spacing: 2px; }
      @media screen and (max-width: 991px) {
        #concept div h2 {
          margin: 0; } }
      #concept div h2 span {
        font-family: "Josefin Sans", sans-serif;
        font-size: 48px;
        font-size: 4.8rem; }
        @media screen and (max-width: 767px) {
          #concept div h2 span {
            font-size: 40px;
            font-size: 4rem; } }
    #concept div dl {
      margin: 6rem; }
      @media screen and (max-width: 767px) {
        #concept div dl {
          margin: 4rem; } }
      @media screen and (max-width: 575px) {
        #concept div dl {
          margin: 2rem; } }
      #concept div dl dt {
        font-size: 32px;
        font-size: 3.2rem;
        color: #8C2126;
        line-height: normal;
        margin-bottom: 2rem;
        font-weight: 500; }
        @media screen and (max-width: 767px) {
          #concept div dl dt {
            font-size: 28px;
            font-size: 2.8rem; } }
        @media screen and (max-width: 575px) {
          #concept div dl dt {
            font-size: 20px;
            font-size: 2rem; } }
      #concept div dl dd {
        text-align: justify;
        line-height: normal;
        line-height: 3.5rem; }
        @media screen and (max-width: 575px) {
          #concept div dl dd {
            line-height: 2.5rem;
            font-size: 14px;
            font-size: 1.4rem; } }

#feature {
  padding-bottom: 12rem; }
  @media screen and (max-width: 767px) {
    #feature {
      padding-bottom: 8rem; } }
  @media screen and (max-width: 575px) {
    #feature {
      padding-bottom: 4rem; } }
  #feature div.container {
    padding: 0 4rem;
    text-align: center; }
    @media screen and (max-width: 991px) {
      #feature div.container {
        padding: 0; } }
    @media screen and (max-width: 575px) {
      #feature div.container {
        padding: 0 2rem; } }
    #feature div.container h2 {
      text-align: center;
      font-size: 14px;
      font-size: 1.4rem;
      color: #8C2126;
      font-weight: normal;
      font-weight: 400;
      letter-spacing: 2px;
      position: relative; }
      #feature div.container h2::before {
        position: absolute;
        top: calc(50% - 10px);
        width: 37%;
        height: 6px;
        content: '';
        border-top: solid 1px #8C2126;
        border-bottom: solid 1px #8C2126;
        left: 0; }
        @media screen and (max-width: 767px) {
          #feature div.container h2::before {
            width: 30%; } }
        @media screen and (max-width: 575px) {
          #feature div.container h2::before {
            width: 20%; } }
      #feature div.container h2::after {
        position: absolute;
        top: calc(50% - 10px);
        width: 37%;
        height: 6px;
        content: '';
        border-top: solid 1px #8C2126;
        border-bottom: solid 1px #8C2126;
        right: 0; }
        @media screen and (max-width: 767px) {
          #feature div.container h2::after {
            width: 30%; } }
        @media screen and (max-width: 575px) {
          #feature div.container h2::after {
            width: 20%; } }
      #feature div.container h2 span {
        font-family: "Josefin Sans", sans-serif;
        font-size: 37px;
        font-size: 3.7rem; }
    #feature div.container ul {
      display: flex;
      justify-content: space-around;
      margin: 3rem 0 2rem 0; }
      @media screen and (max-width: 575px) {
        #feature div.container ul {
          flex-wrap: wrap;
          justify-content: center;
          margin: 1rem; } }
      @media screen and (max-width: 991px) {
        #feature div.container ul li {
          padding: 0 1rem; } }
      @media screen and (max-width: 767px) {
        #feature div.container ul li {
          padding: 0 0.5rem; } }
      @media screen and (max-width: 575px) {
        #feature div.container ul li {
          padding: 0 1rem;
          width: 50%; } }

#link-button {
  position: relative;
  margin-bottom: 9rem; }
  @media screen and (max-width: 575px) {
    #link-button {
      padding: 1.5rem;
      margin-bottom: 4rem; } }
  #link-button::before {
    content: '';
    background-image: url("../img/top-tile-right03.png"), url("../img/top-link-btn.png");
    background-repeat: no-repeat;
    background-size: auto,cover;
    background-position: right -100px top 100px,center center;
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 12%;
    z-index: 0; }
    @media screen and (max-width: 767px) {
      #link-button::before {
        background-size: 50%,cover; } }
    @media screen and (max-width: 575px) {
      #link-button::before {
        right: 0;
        left: 0;
        height: 95%; } }
  #link-button ul {
    position: relative; }
    #link-button ul li:nth-child(1) {
      background-color: #C79E82; }
      #link-button ul li:nth-child(1) a {
        background-image: url("../img/top-siding.jpg");
        background-repeat: no-repeat;
        background-size: cover;
        background-position: center center;
        display: block;
        color: #fff;
        text-align: center;
        padding: 2.5rem 0 3rem;
        transition: 0.3s; }
        @media screen and (max-width: 575px) {
          #link-button ul li:nth-child(1) a {
            padding: 1.5rem 0; } }
        #link-button ul li:nth-child(1) a h3 {
          font-family: "Grape Nuts", cursive;
          font-size: 20px;
          font-size: 2rem;
          display: inline-block;
          font-weight: normal;
          line-height: 4rem;
          margin-bottom: 1.5rem;
          color: #fff;
          border: none;
          padding: 0; }
          #link-button ul li:nth-child(1) a h3 span {
            background: #8C2126;
            font-family: "Noto Sans JP", sans-serif;
            font-size: 31px;
            font-size: 3.1rem;
            padding: 0.5rem 2rem; }
            @media screen and (max-width: 575px) {
              #link-button ul li:nth-child(1) a h3 span {
                font-size: 28px;
                font-size: 2.8rem; } }
        #link-button ul li:nth-child(1) a:hover {
          opacity: 0.5; }
    #link-button ul li:nth-child(2) {
      background-color: #C79E82; }
      #link-button ul li:nth-child(2) a {
        background-color: #C79E82;
        display: block;
        border: 10px solid #8C2126;
        margin-top: 5rem; }
        @media screen and (max-width: 575px) {
          #link-button ul li:nth-child(2) a {
            margin-top: 2rem; } }
        #link-button ul li:nth-child(2) a img {
          transition: 0.3s; }
        #link-button ul li:nth-child(2) a:hover img {
          opacity: 0.5; }
