@charset "UTF-8";
 /* ========================================
   @media screen and (min-width: 768px), print
 ======================================== */
@media screen and (min-width: 768px),print {
  #concept {
    max-width: 1920px;
    width: 100%;
    margin: 0 auto;
  }
  /* fv
  -------------------------------------*/
  .fv {
    background: url(../images/concept/fv.jpg) no-repeat center center/cover;
    margin-top: 2.2em;
    position: relative;
    z-index: 3;
    max-width: 1920px;
    width: 100%;
    margin-inline: auto;
  }
  .fv .inner {
    width: min(95%, 1420px);
    margin-inline: auto;
    padding: 6.625rem 0;
  }
  .fv .inner h2 {
    margin-bottom: 1.6875rem;
  }
  .fv .inner .subt {
    font-size: 33px;
    line-height: 1.5151515152;
    letter-spacing: 0.05em;
    font-weight: 700;
    color: #FFFFFF;
    margin: 0 0 0 4.4rem;
  }


  /* section-wrap
  -------------------------------------*/
  .section-wrap {
    width: 1840px;
    margin-right: auto;
    background: transparent linear-gradient(180deg, rgba(244, 241, 233, 0.4) 0%, #EBE5D5 100%) 0% 0% no-repeat padding-box;
    padding: 7.8rem 11.25rem 11.4rem 16.25rem;
    position: relative;
    margin-bottom: 13rem;
  }
  .section-wrap::before {
    content: "";
    position: absolute;
    top: -21.8rem;
    left: -3.5rem;
    width: 45.813rem;
    height: 42.75rem;
    background: url(../images/concept/bg-deco.png) no-repeat;
    background-size: contain;
  }
  .section-wrap .ttl-box {
    position: relative;
    margin-bottom: 7.6rem;
  }
  .section-wrap .en-ttl {
    position: absolute;
    top: -19rem;
    right: -2.4rem;
    z-index: 4;
  }
  .section-wrap .en-lead {
    font-size: 18px;
    line-height: 1.4444444444;
    letter-spacing: 0.12em;
    font-weight: 500;
    text-align: right;
    margin: 0 3.6rem 1rem 0;
    position: relative;
    z-index: 5;
  }
  .section-wrap .en-txt {
    font-size: 14px;
    line-height: 1.4285714286;
    letter-spacing: 0.12em;
    font-weight: 300;
    text-align: right;
    margin: 0 3.6rem 0 0;
    position: relative;
    z-index: 5;
  }

  /* section共通
  -------------------------------------*/
  .section {
    position: relative;
    margin-bottom: 13.4rem;
  }
  .section .content::after {
    position: absolute;
    bottom: -1.3rem;
    right: -1rem;
    content: "";
    width: 99.7%;
    height: 20px;
    background: #A78F43;
  }
  .section .content .photo img {
    width: 100%;
    height: auto;
  }
  .section .sec-enttl {
    font-size: 170px;
    line-height: 0.9411764706;
    letter-spacing: 0em;
    font-weight: 600;
    color: #FFFFFF;
    text-align: right;
    margin: 0 6.4rem 0 0;
    position: relative;
    z-index: 6;
  }
  .section .photo {
    position: absolute;
    z-index: 5;
  }
  .section .content {
    background: #FFFFFF;
    padding: 80px 100px 70px;
    position: relative;
    top: -0.8rem;
  }
  .section .content .top-frame {
    display: flex;
    margin-bottom: 2.5rem;
  }

  .section .content h2 {
    font-size: 40px;
    line-height: 1;
    letter-spacing: 0.05em;
    font-weight: 700;
    color: #A78F43;
    margin-bottom: 3.4rem;
  }
  .section .content .txt {
    font-size: 16px;
    line-height: 2.125;
    letter-spacing: 0.05em;
    font-weight: 500;
    margin-bottom: 2.13rem;
  }
  .section .content .photo-frame img {
    width: 100%;
    height: auto;
  }

  .section .bottom {
    background: #FFFFFF;
    width: 874px;
    padding: 2.7rem 0 0;
    text-align: center;
    margin-inline: auto;
    position: relative;
    border-top: 5px solid #A78F43;
  }
  .section .bottom .lead {
    font-size: 20px;
    line-height: 2;
    letter-spacing: 0.05em;
    font-weight: 700;
    margin-bottom: 0.95rem;
  }
  .section .bottom .txt {
    font-size: 16px;
    line-height: 2.5;
    letter-spacing: 0.05em;
    font-weight: 500;
  }
  .section .bottom .txt span {
    border-bottom: 1px solid #A78F43;
    padding: 0 0 0.2rem;
  }
  .section .btn {
    width: 420px;
    margin-inline: auto;
    text-align: center;
    font-size: 16px;
    line-height: 1.375;
    letter-spacing: 0em;
    font-weight: 500;
    background: url(../images/concept/btn-bg.png) no-repeat center center/contain;
  }
  .section .btn a {
    display: block;
    padding: 1.5rem 0;
    position: relative;
  }
  .section .btn a::after {
    content: ">";
    position: absolute;
    top: 46%;
    right: 9%;
    transform: translateY(-50%);
    font-size: 18px;
  }
  .section .txt02 {
    font-size: 16px;
    line-height: 2.5;
    letter-spacing: 0.05em;
    font-weight: 500;
    text-align: center;
    margin-bottom: 3.2rem;
  }
  .section .txt02 span {
    border-bottom: 1px solid #A78F43;
    padding: 0 0 0.2rem;
  }

  /* family */
  .family .btn {margin-top: -2.95rem;}
  .family .content::before {
    position: absolute;
    top: 1.3rem;
    right: -1.3rem;
    content: "";
    width: 20px;
    height: 100%;
    background: #A78F43;
  }
  .family .photo {
    top: -3rem;
    left: -16.2rem;
  }
  .family .top {
    width: 556px;
    margin-left: auto;
  }
  .family .bottom {
    top: -3.9rem;
  }
  .family .content .photo-frame {
    width: min(95%, 1100px);
    margin-inline: auto;
  }

  /* space */
  .space .content::before {
    position: absolute;
    top: 1.3rem;
    left: -1.3rem;
    content: "";
    width: 20px;
    height: 100%;
    background: #A78F43;
  }
  .space .content::after {
    position: absolute;
    bottom: -1.3rem;
    right: 1rem;
    content: "";
    width: 99.7%;
    height: 20px;
    background: #A78F43;
  }
  .space .sec-enttl {
    text-align: left;
    margin: 0 0 0 6rem;
  }
  .space .photo {
    right: -16.3rem;
    top: -2.8rem;
  }
  .space .top {
    margin-right: auto;
    /* padding: 0 0 0 3vw; */
  }
  .space .content h2{
    line-height: 1.5;
    margin: -0.8rem 0 2.6rem;
  }
  .space  .content .top-frame {
    flex-direction: row-reverse;
    margin-bottom: 0;
  }
  .space .bottom {
    position: relative;
    width: 975px;
    padding: 1rem 0 0;
    z-index: 5;
    top: 3.5rem;
  }
  .space .bottom h3 {
    background: #a78f43;
    color: #FFFFFF;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0.05em;
    display: inline-block;
    padding: 0.063rem 0.782rem;
    position: relative;
    top: -2.2rem;
  }
  .space .content .photo-frame {
    margin-inline: auto;
    width: min(95%, 1100px);
    margin-bottom: 2rem;
    margin-top: 96px;
  }
  .space .bottom .lead {
    margin-bottom: 1.6rem;
  }
  .space .btn {
    background: url(../images/concept/btn-bg02.png) no-repeat center center/contain;
  }
  .space .btn a::after {
    right: 7%;
  }
  
  /* performance */
  .performance .content::before {
    position: absolute;
    top: 1.3rem;
    right: -1.3rem;
    content: "";
    width: 20px;
    height: 100%;
    background: #A78F43;
  }
  .performance .photo {
    top: -3rem;
    left: -16.2rem;
  }
  .performance .content .top-frame {
    /* margin-bottom: 0; */
  }
  .performance .top {
    width: 556px;
    margin-left: auto;
  }
  .performance .content .photo-frame {
    width: min(95%, 1100px);
    margin-inline: auto;
    margin-bottom: 2.2rem;
    margin-top: -2.7rem;
  }
  .performance .bottom  {
    position: relative;
    width: 975px;
    padding: 2rem 0 0;
    margin-top: 2.4rem;
    z-index: 5;
    margin-bottom: 4.8rem;
  }
  .performance .txt02 {
    line-height: 2.125;
    margin-bottom: 2.8rem;
  }
  .performance .btn {
    background: url(../images/concept/btn-bg02.png) no-repeat center center/contain;
  }
  .performance .btn a::after {
    right: 7%;
  }

  /* link
  -------------------------------------*/
  .link {
    background: #436788;
    padding: 0 0 6.2em;
    margin: -13rem 0 0;
    height: 19.4rem;
    max-width: 1920px;
    width: 100%;
    margin-inline: auto;
  }
  .link .link-box {
    background: #FFFFFF;
    top: -13rem;
    padding: 3.2rem 3.8rem 3rem;
    width: min(95%, 1100px);
    margin-inline: auto;
    position: relative;
  }
  .link .link-box .logo {
    text-align: center;
    margin-bottom: 1.9rem;
    width: 241px;
    margin-inline: auto;
  }
  .link .link-box .list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.2rem;
  }
  .link .link-box img {
    width: 100%;
    height: auto;
  }

}



/* ========================================
@media screen and (min-width:768px) and (max-width:1460px) 
======================================== */
@media screen and (min-width:768px) and (max-width:1460px) {
  .fv .inner {
    width: 75.532vw;
    margin-inline: auto;
  }
  .fv .inner h2 img {
    width: 34.947vw;
  }
  .fv .inner .subt {
    font-size: clamp(1.25rem, 0.348rem + 1.88vw, 2.063rem);
  }
   .family .photo{
  top: -2rem;
 }
   .space .photo{
  top: -1.2rem;
 }

}

/* ========================================
@media screen and (min-width:768px) and (max-width:1880px)
======================================== */
@media screen and (min-width:768px) and (max-width:1880px) {
  .section-wrap {
    width: auto;
    padding: 7.8rem 8.25rem 11.4rem 8.25rem;
  }
  .section-wrap::before {
    width: 38.989vw;
    height: 36.383vw;
    top: -18.511vw;
    left: -2.979vw;
  }
  .section-wrap .en-ttl {
    position: absolute;
    top: -16.17vw;
    right: -2.021vw;
    z-index: 4;
    width:48.457vw;
  }
  .section-wrap .en-ttl img {
    width: 100%;
    height: auto;
  }

  .section .photo img {
    width: 54.064vw;
  }
  .section .sec-enttl {
    font-size: 9.043vw;
  }
  .section .content {
    background: #FFFFFF;
    padding: 4.255vw 2.319vw 3.723vw;
    position: relative;
    top: -0.638vw;
  }
  .section .content::after {
    height: 1.064vw;
    bottom: -1vw;
    right: 0;
  }
  .section .content h2 {
    font-size: 2.128vw;
    margin-bottom: 1.6rem;
  }
  .section .content .txt {
    /* font-size: 0.851vw; */
    margin-bottom: 1.7rem;
  }
  .section .bottom {
    width: 51.489vw;
    border-top: 0.3vw solid #A78F43;
    top: -3vw;
  }
  .section .bottom .lead {
    /* font-size: 1.064vw; */
  }
  .section .bottom .txt {
    /* font-size: 0.851vw; */
  }
  .section .btn {
    /* width: 22.34vw; */
    margin-inline: auto;
    text-align: center;
    /* font-size: 0.851vw; */
    line-height: 1.375;
    letter-spacing: 0em;
    font-weight: 500;
    background: url(../images/concept/btn-bg.png) no-repeat center center/contain;
  }
  .section .btn a::after {
    font-size: 0.957vw;
  }
  .section .txt02 {
    /* font-size: 0.851vw; */
  }

  .section .content {
    background: #FFFFFF;
    padding: 4.255vw 3.319vw 3.723vw;
    position: relative;
    top: -0.8rem;
  }
  .family .content::before {
    width: 1.064vw;
    right: -1vw;
    /* height: 69.7vw; */
    top: 1vw;
  }
  .family .top {
    width: 38.574vw;
    margin-left: auto;
    padding: 0 0vw 0 0;
  }
  .family .content .photo-frame {
    width: 90.57%;
    margin-inline: auto;
  }
  .family .btn {
    margin-top: 0;
  }


  .space .content::before {
    width: 1.064vw;
    left: -1vw;
    top: 1vw;
  }
  .space .content::after {
    height: 1.064vw;
    left: 0;
  }
  .space .content .top-frame {
    flex-direction: row-reverse;
    margin-bottom: 4.979vw;
}
  .space .bottom {
    width: 51.862vw;
    margin-top: 0;
    top: -3vw;
  }
  .space .bottom h3 {
    font-size: 1.064vw;
  }
  .space .content .photo-frame {
    margin-inline: auto;
    width: 55.311vw;
    margin-bottom: 2rem;
    margin-top: -2.894vw;
  }
  .performance .content::before {
    width: 1.064vw;
    right: -1vw;
    top: 1vw;
  }
  .performance h2 img {
    width: 29.734vw ;
  }
  .performance .top {
    width: 38.574vw;
    margin-left: auto;
    padding: 0 0 2vw 0;
  }
  .performance .content .photo-frame {
    width: 55.311vw;
  }
  
  .performance .bottom  {
    width: 51.862vw;
    margin-top: 0;
    margin-bottom: 1vw;
  }

}



/* ========================================
@media screen and (max-width: 767px)
======================================== */
@media screen and (max-width: 767px) {
  .main-title {
    margin-bottom: 0;
  }
  /* fv
  -------------------------------------*/
  .fv {
    background: url(../images/concept/fv_sp.jpg) no-repeat center center/cover;
    position: relative;
    z-index: 3;
    max-width: 100vw;
    width: 100%;
    margin-inline: auto;
  }
  .fv .inner {
    width: 89.375vw;
    margin-inline: auto;
    padding: 24vw 0 5vw;
  }
  .fv .inner h2 {
    margin-bottom: 2vw;
  }
  .fv .inner h2 img {
    width: 65.704vw;
  }
  .fv .inner .subt {
    font-size:4.831vw;
    line-height: 1.5;
    letter-spacing: 0.05em;
    font-weight: 700;
    color: #FFFFFF;
    margin: 0 0 0 7vw;
  }


  /* section-wrap
  -------------------------------------*/
  .section-wrap {
    background: transparent linear-gradient(180deg, rgba(244, 241, 233, 0.4) 0%, #EBE5D5 100%) 0% 0% no-repeat padding-box;
    position: relative;
    padding: 0 0 49.5vw;
  }
  .section-wrap .ttl-box {
    position: relative;
    padding: 22vw 0 0 0;
    margin: 0 5vw 0 0;
  }
  .section-wrap .en-ttl {
    position: absolute;
    top: -2vw;
    right: -3.1vw;
    z-index: 4;
    width: 75.37vw;
  }
  .section-wrap .en-ttl img {
    width: 100%;
    height: auto;
  }
  .section-wrap .en-lead {
    font-size:2.898vw;
    line-height: 1.41666666;
    letter-spacing: 0.12em;
    font-weight: 500;
    text-align: right;
    margin: 0 0 3vw;
    position: relative;
    z-index: 5;
  }
  .section-wrap .en-txt {
    font-size: 1.932vw;
    line-height: 1.5;
    letter-spacing: 0.12em;
    font-weight: 300;
    text-align: right;
    position: relative;
    z-index: 5;
    margin-bottom: 5vw;
  }

  /* section共通
  -------------------------------------*/
  .section {
    position: relative;
    margin-bottom: 16vw;
  }
  /* .section .content::after {
    position: absolute;
    bottom: -1vw;
    right: -2.2vw;
    content: "";
    width: 99.7%;
    height: 2.2vw;
    background: #A78F43;
  } */
  .section .content .photo img {
    width: 100%;
    height: auto;
  }
  .section .sec-enttl {
    font-size: 19.323vw;
    line-height: 0.8;
    letter-spacing: 0em;
    font-weight: 600;
    color: #FFFFFF;
    text-align: center;
    position: relative;
    z-index: 2;
  }
  .section .content-bg {
    background: #A78F43;
    width: 89.4vw;
    padding: 0 3vw 2.2vw 0;
    margin: 0 4.4vw 0 auto;
  }
  .section .content {
    background: #FFFFFF;
    padding: 8.6vw 3.4vw 5.4vw;
    margin-inline: auto;
    width: 89.4vw;
    margin: 0 0 0 -2vw;
  }
  .section .content .top-frame {
  }

  .section .content h2 {
    font-size:5.314vw;
    line-height: 1;
    letter-spacing: 0.05em;
    font-weight: 700;
    color: #A78F43;
    margin-bottom: 5.2vw;
  }
  .section .content .txt {
    font-size:3.382vw;
    line-height: 2;
    letter-spacing: 0.05em;
    font-weight: 500;
    margin-bottom: 6.8vw;
  }
  .section .content .photo-frame {
    margin: -0.8vw auto 0;
    width: 82.129vw;
  }
  .section .content .photo-frame img {
    width: 100%;
    height: auto;
  }

  .section .bottom {
    text-align: center;
    margin-inline: auto;
    position: relative;
    border-top: 1.3vw solid #A78F43;
    padding: 5.2vw 0 0 2vw;
    width: 82.129vw;
  }
  .section .bottom .lead {
    font-size:3.865vw;
    line-height: 1.875;
    letter-spacing: 0.05em;
    font-weight: 700;
    margin-bottom: 4vw;
    text-align: center;
  }
  .section .bottom .txt {
    font-size:3.382vw;
    line-height: 2.285714;
    letter-spacing: 0.05em;
    font-weight: 500;
  }
  .section .bottom .txt span {
    border-bottom: 0.2vw solid #A78F43;
    padding: 0 0 0.2rem;
  }
  .section .btn {
    width: 77.3vw;
    margin-inline: auto;
    text-align: center;
    font-size:3.382vw;
    line-height: 1.571428;
    letter-spacing: 0.05em;
    font-weight: 500;
    background: url(../images/concept/btn-bg_sp.png) no-repeat center center/contain;
  }
  .section .btn a {
    display: block;
    padding: 10vw 3vw 10vw 0vw;
    position: relative;
  }
  .section .btn a::after {
    content: ">";
    position: absolute;
    top: 46%;
    right: 9%;
    transform: translateY(-50%);
    font-size:4.348vw;
  }

  .section .txt02 {
    font-size:3.382vw;
    line-height: 2.285714;
    letter-spacing: 0.05em;
    font-weight: 500;
    text-align: center;
    margin-bottom: 4vw;
  }
  .section .txt02 span {
    border-bottom: 0.2vw solid #A78F43;
  }

  /* family */
  .family .btn {margin: -2vw 0 0 4vw;}
  /* space */
  .space .content h2{
    line-height: 1.6;
    margin-bottom: 3.3vw;
  }
  .space .content {
    padding: 7.6vw 3.4vw 5.4vw;
  }
  .space .bottom {
    margin-top: 9.6vw;
    padding: 1.8vw 0 0 0;
  }
  .space .bottom h3 {
    background: #a78f43;
    color: #FFFFFF;
    font-size:4.348vw;
    font-weight: 700;
    letter-spacing: 0.05em;
    display: inline-block;
    position: relative;
    padding: 0.7vw 4.1vw;
    position: relative;
    top: -6.8vw;
    left: 1vw;
  }
  .space .content .photo-frame {margin: 0 0.3vw 6vw;}
  .space .btn {
    background: url(../images/concept/btn-bg02_sp.png) no-repeat center center/contain;
    margin: 0 0 0 4vw;
  }
  .space .btn a {
    padding: 10vw 0vw;
  }
  .space .btn a::after {
    top: 50%;
    transform: translateY(-50%);
    right: 9%;
  }
  /* performance */
  .performance h2 img {
    width: 74.155vw;
  }
  .performance .bottom {
    margin-top: 7.8vw;
    padding: 5.8vw 0 2vw 0;
  }
  .performance .content {
    padding: 8.6vw 3.4vw 2.8vw;
  }
  .performance .content .photo-frame {margin: 0 0.3vw 5.8vw;}
  .performance .btn {
    background: url(../images/concept/btn-bg02_sp.png) no-repeat center center/contain;
    margin: 0 0 0 4vw;
  }
  .performance .btn a {
    padding: 10vw 0vw;
  }
  .performance .btn a::after {
    top: 50%;
    transform: translateY(-50%);
    right: 9%;
  }
  
    /* link
  -------------------------------------*/
  .link {
    background: #436788;
    padding: 0 0 6vw;
    margin: -13vw 0 0;
    height: 82vw;
  }
  .link .link-box {
    background: #FFFFFF;
    top: -40.8vw;
    padding: 7.2vw 6.5vw 7.2vw;
    width: 90.34vw;
    margin-inline: auto;
    position: relative;
  }
  .link .link-box .logo {
    text-align: center;
    margin-bottom: 7.2vw;
    width: 40.1vw;
    margin-inline: auto;
  }
  .link .link-box .list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 5vw;
  }
  .link .link-box img {
    width: 100%;
    height: auto;
  }


}

