#mv {
    width: 100%;
    height: 100vh;
    min-height: 680px;
    position: relative;
}
.new-mv-ttl {
    position: absolute;
    flex-direction: column;
    display: flex;
    bottom: 50px;
    left: 30px;
    z-index: 100;
}
.new-mv-ttl h1 {
    display: flex;
    flex-direction: column;
    color: #fff;
    font-size: 74px;
    letter-spacing: 3px;
    filter: drop-shadow(2px 2px 6px #000);
}
.new-mv-ttl h1 .new-ttl-btm {
    filter: drop-shadow(0 0 3px #000);
}
.new-mv-ttl h1 .new-ttl-top {
    font-size: 42px;
    filter: drop-shadow(0 0 3px #000);
}
@media screen and (max-width: 1000px) {
    .new-mv-ttl h1 {
        font-size: 64px;
    }
    .new-mv-ttl h1 .new-ttl-top {
        font-size: 36px;
    }
    .new-mv-ttl {
        bottom: 300px;
        left: 10px;
    }
}
@media screen and (max-width: 600px) {
    .new-mv-ttl {
        bottom: auto;
        top: 110px;
        left: 10px;
    }
    .new-mv-ttl h1 {
        font-size: 38px;
    }
    .new-mv-ttl h1 .new-ttl-top {
        font-size: 24px;
    }
}


.mv-ttl {
    position: absolute;
    flex-direction: column;
    display: flex;
    top: 300px;
    left: 30px;
    z-index: 100;
}

.mv-ttl h1 {
    display: flex;
    flex-direction: column;
}

.ttl-top {
    width: fit-content;
    color: #fff;
    font-size: 24px;
    background-color: #664F33;
    padding: 5px 15px;
    letter-spacing: 8px;
}

.mv-banner {
    flex-direction: column;
    position: absolute;
    bottom: 20px;
    left: 20px;
    background-color: rgba(255, 255, 255, 0.9);
    z-index: 100;
}
.mv-banner-inner {
    width: 480px;
    height: 320px;
    padding: 15px 0 30px 0;
    flex-direction: column;
    align-items: center;
    position: relative;
}
.mv-banner p {
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 15px;
}
.mv-banner .img {
    width: 90%;
    height: 85%;
    background-color: #000;
}
.mv-banner .img img {
    height: 100%;
    object-fit: cover;
}
.mv-banner .link-box {
    position: absolute;
    z-index: 150;
    right: 0px;
    bottom: 0px;
}

@media screen and (max-width: 800px) {
    #mv {
        min-height: 600px;
    }
    .mv-banner.tb {
        display: none;
    }
    .mv-banner {
        position: static;
        width: 100%;
    }
    .mv-banner .img {
        width: 100%;
        max-width: 360px;
        height: 210px;
        margin-bottom: 20px;
    }
    .mv-banner .mv-banner-inner {
        width: 100%;
        height: auto;
        padding: 20px;
    }
    .mv-banner .link-box {
        position: relative;
    }
}

.ttl-btm {
    color: #000;
    font-size: 73px;
    border-left: 40px solid #664F33;
    background-color: #fff;
    padding: 0 20px;
    letter-spacing: 20px;
    overflow: hidden;
    position: relative;
}

.ttl-btm::before {
    content: "";
    width: 100%;
    height: 300px;
    background-color: #fff;
    position: absolute;
    left: 0;
    top: 0;
}

.ttl-btm::after {
    content: "";
    width: 100%;
    height: 300px;
    background-color: #664F33;
    position: absolute;
    right: 100vw;
    top: 0;
}

.loaded .ttl-btm::before {
    animation: mv-copy-bg 2s ease forwards;
}

.mv-ttl-border {
    margin-top: 10px;
    width: 100%;
    justify-content: flex-end;
}

.mv-ttl-border span {
    width: 5px;
    height: 7px;
    background-color: #664F33;
    margin-right: 5px;
}

.mv-ttl-border span.long {
    width: 280px;
    margin-right: 0;
}

.mv-br {
    display: none;
}

.span-sp {
    display: none;
}

@keyframes mv-copy-bg {
    0% {
        left: 0;
    }
    30% {
        left: 0;
    }
    50% {
        left: 100vw;
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}

.loaded .ttl-btm::after {
    animation: mv-copy 2s ease forwards;
}

@keyframes mv-copy {
    0% {
        right: 100vw;
    }
    30% {
        right: 0px;
    }
    45% {
        right: 0px;
        opacity: 1;
    }
    100% {
        right: -100vw;
    }
}

.ttl-border {
    position: absolute;
    top: 55%;
    left: 30px;
    display: flex;
    z-index: 100;
}

.ttl-border span {
    height: 7px;
    width: 5px;
    background-color: #664F33;
    margin-right: 5px;
}

.ttl-border span.long {
    width: 350px;
}

.slider .slick-slide img {
    height: 100vh;
    min-height: 650px;
    object-fit: cover;
}
.slider .slick-slide .mv-img-2 img {
    object-position: right;
}

.news-block {
    flex-direction: column;
    width: 100%;
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
    padding: 40px 0px;
}

.news-item {
    width: 100%;
    margin-bottom: 20px;
    position: relative;
}
.news-item.ended:before {
    display: flex;
    content: "【終了しました】";
    font-size: 16px;
    color: #fff;
    background-color: rgba(0, 0, 0, 0.7);
    position: absolute;
    z-index: 10;
    width: 100%;
    height: 100%;
    justify-content: center;
    align-items: center;
}

.news-item .news-img {
    min-width: 235px;
    background: #c5c5c5;
}

.news-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.news-text-block {
    width: 100%;
    padding: 15px 15px 15px 20px;
    background-color: #fff;
    flex-direction: column;
}

.tag {
    font-family: 'Noto Serif JP', serif;
    display: flex;
    width: 90px;
    font-size: 14px;
    padding: 3px 10px;
    color: #fff;
    justify-content: center;
    align-items: center;
    letter-spacing: 3px;
}

.tag-news {
    background-color: #912828;
}

.tag-event {
    background-color: #887134;
}

.news-text {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.news-item h3 {
    font-size: 20px;
    color: #664F33;
    border-bottom: 1px solid #000;
    padding: 5px 0;
    margin-bottom: 5px;
}

.news-item .news-date {
    font-size: 14px;
    font-weight: bold;
    margin-bottom: 5px;
}

#news .link-box {
    margin: 30px 0 0 auto;
}

#concept {
    background: url(../img/front-page/concept-bg.jpg) no-repeat center / cover;
}

#concept .content {
    padding: 0 0 0 2vw;
}

.concept-text {
    flex-direction: column;
}

#concept .ttl {
    margin-bottom: 20px;
}

.concept-block h3 {
    font-size: 53px;
    letter-spacing: 15px;
    font-weight: bold;
    margin-bottom: 30px;
}

.concept-text {
    width: 45%;
    padding: 120px 0;
}

.concept-text p {
    margin-bottom: 60px;
    line-height: 1.8;
    letter-spacing: 3px;
}

#concept .img {
    width: 55%;
    max-width: 960px;
    height: auto;
}

#concept .img img {
    height: 100%;
    object-fit: cover;
    object-position: bottom left;
}

#about {
    background: url(../img/front-page/about-bg.jpg) no-repeat left center / cover;
}

.about-block {
    justify-content: space-between;
}

.about-link {
    display: flex;
    flex-direction: column;
    width: 23%;
    background-color: #E4DDD1;
    position: relative;
}

.about-link::after {
    content: "";
    position: absolute;
    width: 30px;
    height: 30px;
    background: url(../img/common/link-mark.png) no-repeat center / contain;
    right: 10px;
    bottom: 10px;
}

.about-link img {
    max-width: 80%;
    width: 120px;
    margin: 3vw auto 0 auto;
}

.about-link p {
    height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 23px;
    text-align: center;
    height: 120px;
    margin-bottom: 20px;
}

.about-link p .br-tab {
    display: none;
}

#works {
    background: url(../img/front-page/works-bg.jpg) no-repeat right center / cover;
}

.works-block {
    display: block;
    width: 100%;
    padding: 0 30px;
    margin: 0 auto 30px auto;
    position: relative;
}

.slide-arrow {
    position: absolute;
    width: 20px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 100;
    cursor: pointer;
}

.prev-arrow {
    left: 0;
}

.next-arrow {
    right: 0;
}

.works-ct {
    width: 100%;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    padding: 10px 20px;
    color: #fff;
    font-size: 14px;
}

.new-build {
    background-color: #912828;
}

.renovation {
    background-color: #56764C;
}

.works-link {
    margin: auto 10px;
    flex-direction: column;
}

.works-link .img {
    height: 230px;
}

.works-link .img img {
    height: 100%;
    object-fit: cover;
}

.works-text {
    width: 100%;
    padding: 15px;
    color: #fff;
    background-color: #442B0E;
}

.works-text p {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.slick-prev {
    left: -50px;
    height: 40px;
}

.slick-next {
    right: -50px;
    height: 40px;
}

.slick-prev:before,
.slick-next:before {
    display: flex;
    content: "";
    width: 26px;
    height: 40px;
    opacity: 1;
}

.slick-prev:before {
    background: url(../img/common/prev.png) no-repeat center / contain;
}

.slick-next:before {
    background: url(../img/common/next.png) no-repeat center / contain;
}

#can {
    background: url(../img/front-page/can-bg.jpg) no-repeat right center / cover;
}

.can-ttl {
    font-size: 53px;
    letter-spacing: 15px;
    font-weight: bold;
    margin-bottom: 10px;
}

.can-block {
    width: 100%;
    max-width: 1100px;
    margin: auto;
    justify-content: space-between;
}

.can-link {
    display: flex;
    width: 32%;
    height: 145px;
    justify-content: center;
    align-items: center;
    background-color: #E4DDD1;
    position: relative;
    font-size: 23px;
}

.can-link::after {
    content: "";
    position: absolute;
    width: 30px;
    height: 30px;
    background: url(../img/common/link-mark.png) no-repeat center / contain;
    right: 10px;
    bottom: 10px;
}

.blog-block {
    justify-content: space-between;
    margin-bottom: 30px;
}

.blog-link {
    width: 32%;
    min-width: 230px;
    flex-direction: column;
    padding: 15px 15px 50px 15px;
    background-color: #fff;
    position: relative;
}

.blog-link .img {
    width: 100%;
    height: 180px;
    margin-bottom: 20px;
    background-color: #c5c5c5;
}

.blog-link .img img {
    height: 100%;
    object-fit: cover;
}

.blog-text-block {
    flex-direction: column;
}

.blog-text-block h3 {
    font-size: 20px;
    margin-bottom: 5px;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.blog-date {
    font-weight: bold;
    font-size: 14px;
    margin-bottom: 10px;
}

.blog-text {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.blog-link::after {
    content: "";
    position: absolute;
    width: 30px;
    height: 30px;
    background: url(../img/common/link-mark.png) no-repeat center / contain;
    right: 10px;
    bottom: 10px;
}

.ather-block {
    justify-content: space-between;
}

.ather-link {
    width: 48%;
    height: 270px;
    position: relative;
}

.ather-link::after {
    content: "";
    position: absolute;
    width: 30px;
    height: 30px;
    background: url(../img/common/link-mark-white.png) no-repeat center / contain;
    right: 10px;
    bottom: 10px;
}

.ather-link .ttl {
    margin: auto;
}

.ather-link h2 {
    margin: auto;
}

.structur {
    background: url(../img/front-page/ather-bg-1.jpg) no-repeat center / cover;
}

.spec {
    background: url(../img/front-page/ather-bg-2.jpg) no-repeat center / cover;
}

.ather-link .br-tab {
    display: none;
}

@media (hover: hover) and (pointer: fine) {
    .news-item:hover .news-text-block {
        background-color: #D6CFC0;
    }
    .news-item:hover .news-img {
        filter: brightness(80%);
    }
    .about-link:hover {
        background-color: #AF874C;
    }
    .works-link:hover h3 {
        background-color: #AF874C;
    }
    .works-link:hover .img {
        filter: brightness(80%);
    }
    .slick-prev:hover,
    .slick-next:hover {
        filter: invert(.5);
    }
    .can-link:hover {
        background-color: #AF874C;
    }
    .blog-link:hover {
        background-color: #D6CFC0;
    }
    .ather-link:hover {
        filter: brightness(140%);
    }
    .mv-banner .img:hover {
        opacity: 0.8;
    }
}


/*/////////////////////レスポンシブ////////////////////////////*/

@media screen and (max-width: 1320px) {
    .about-link p .br-tab {
        display: block;
    }
}

@media screen and (max-width: 1230px) {
    .ttl-top {
        font-size: 21px;
    }
    .ttl-btm {
        font-size: 6.5vw;
    }
}

@media screen and (max-width: 1120px) {
    .concept-block h3,
    .can-ttl {
        font-size: 45px;
    }
}

@media screen and (max-width: 1000px) {
    .concept-block h3,
    .can-ttl {
        font-size: 35px;
    }
    .about-link {
        width: 24%;
    }
    .about-link::after,
    .can-link::after,
    .blog-link::after,
    .ather-link::after {
        width: 20px;
        height: 20px;
    }
    .blog-block {
        width: 100%;
        overflow-x: scroll;
    }
    .blog-link {
        margin-right: 20px;
    }
}

@media screen and (max-width: 870px) {
    .tag {
        font-size: 12px;
        width: 76px;
    }
    .news-item h3 {
        font-size: 18px;
    }
    .news-item .news-date {
        font-size: 12px;
    }
    .news-text {
        font-size: 14px;
    }
    .news-block {
        padding: 20px 0;
    }
    #concept .img img {
        object-position: center bottom;
    }
    .concept-text {
        width: 70%;
        padding: 60px 2vw 60px 0;
    }
    #concept .img {
        width: 30%;
    }
    .about-link p {
        font-size: 18px;
    }
    .can-link {
        font-size: 18px;
    }
    .ather-link {
        height: 190px;
    }
    .ather-link .br-tab {
        display: block;
    }
}

@media screen and (max-width: 800px) {
    .about-block {
        flex-wrap: wrap;
    }
    .about-link {
        width: 48%;
    }
    .about-link:nth-of-type(1),
    .about-link:nth-of-type(2) {
        margin-bottom: 20px;
    }
    .about-link img {
        margin-top: 30px;
    }
    .about-link p {
        height: 85px;
    }
    .works-block {
        width: 100%;
    }
    .works-link {
        margin: 2vw;
    }
}

@media screen and (max-width: 700px) {
    .mv-ttl {
        left: 0;
    }
    .ttl-top {
        font-size: 16px;
    }
    .ttl-btm {
        font-size: 45px;
        letter-spacing: 12px;
        border-left: 8px solid #664F33;
        padding: 0 2vw;
    }
}

@media screen and (max-width: 670px) {
    .can-block {
        flex-direction: column;
    }
    .can-link {
        width: 300px;
        height: 105px;
        margin: 20px auto 0 auto;
    }
}

@media screen and (max-width: 600px) {
    .news-block {
        justify-content: space-between;
        flex-wrap: wrap;
        flex-direction: row;
        padding-bottom: 0;
    }
    .news-item {
        flex-direction: column;
        width: 48%;
    }
    .news-item .news-img {
        min-width: 0;
    }
    .news-text-block {
        padding: 20px 2vw;
    }
    .news-item h3 {
        font-size: 16px;
    }
    .news-text-block .tag {
        font-size: 11px;
        width: 100%;
        text-align: center;
    }
    .concept-text {
        width: 100%;
    }
    .concept-block h3,
    .can-ttl {
        font-size: 27px;
        letter-spacing: 12px;
    }
    .concept-text p {
        margin-top: 20px;
        margin-bottom: 30px;
    }
    .about-link img {
        width: 75px;
    }
    .ather-block {
        flex-direction: column;
    }
    .ather-link {
        width: 100%;
    }
    .spec {
        margin-top: 20px;
    }
    .works-block {
        padding: 0;
    }
}

@media screen and (max-width: 600px) {
    .mv-ttl {
        top: 110px;
        left: 0;
    }
    .ttl-top {
        font-size: 14px;
    }
    .ttl-btm {
        font-size: 30px;
    }
    .mv-ttl-border span {
        height: 5px;
    }
}