@charset "utf-8";

/* 
font-family: "Oswald", sans-serif; 
*/
:root {
    --color-white: #FFFFFF;
    --color-black: #212121;


    --color-ivory: #F8F4EE;
    --color-brown: #8D6E63;
    --color-green: #5F7F65;
    --color-terracotta: #C66A47;
    --color-gray: #333333;
    --color-blue: #446C80;

    --ease-normal: all 0.08s linear;
    --ease-fast: all 0.04s linear;
    --ease-slow: all 0.12s linear;

    --size-normal: 1em;
    --size-large: 1.13em;
    --size-xlarge: 1.27em;
    --size-xxlarge: 1.42em;
    --size-xxxlarge: 1.60em;
    --size-xxxxlarge: 1.80em;
    --size-small: 0.89em;
    --size-xsmall: 0.79em;
    --size-xxsmall: 0.70em;
    --size-xxxsmall: 0.62em;

    --weight-normal: 500;
    --weight-bold: 700;
    --weight-xbold: 900;

    --line-hight-normal: 1.8;
    --line-hight-narrow: 1.6;
    --line-hight-wide: 2.0;

    --bordr-radius-normal: 0.48rem;
    --bordr-radius-narrow: 0.24rem;
    --bordr-radius-wide: 0.72rem;
}

/* ------------ SET ------------ */
html,
body {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 16px;
    line-height: var(--line-hight-normal);
    color: var(--color-black);
    font-weight: var(--weight-normal);
}

* {
    font-size: inherit;
}

table {
    border-spacing: 0;
    border-collapse: collapse;
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
}

p {
    margin-bottom: 1.6em;
    letter-spacing: 0.04em;
    /*文字間隔*/
}

a {
    color: var(--color-black);
    transition: all 0.2s ease;
}

a:hover {
    color: var(--color-terracotta);
}

@media screen and (max-width: 1024px) {

    
}

@media screen and (max-width: 560px) {

    html,
    body {

        font-size: 15px;
    }

}





/* ------------ HEADER ------------ */
header {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    padding: 1rem 2rem;
    /*固定*/
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background-color: var(--color-white);
    z-index: 10000;
    gap: 1rem;
}


header h1,
header .logo {
    display: block;
    width: 300px;
    z-index: 1;
}



header nav .menu {
    list-style: none;
    display: flex;
    gap: 2em;
    align-items: center;
    justify-content: flex-end;
}

header nav .menu a {
    display: block;
    text-decoration: none;
    font-weight: bold;
    line-height: var(--line-hight-narrow);
    /*enとjaの行間調整*/
}

header nav .menu a .en {
    display: block;
    font-size: 0.6em;
    color: var(--color-green);
}

header nav .menu a .ja {
    font-size: var(--size-normal);
    display: block;
    color: var(--color-black);
}

header nav .menu a:hover .ja {
    color: var(--color-terracotta);
}

header .menu a.contact,
header .menu a.tel {
    background-color: var(--color-brown);
    color: var(--color-white);
    display: block;
    padding: 10px 20px;
    font-size: 0.8em;
    border-radius: 5px;
    /*角丸*/
}

header .menu a.contact:hover,
header .menu a.tel:hover {
    background-color: var(--color-terracotta);
}

header .hamb {
    display: none;
}

header .tel-2 {
    display: none;
}

/*HEADERタブレット*/
@media screen and (max-width: 1024px) {

    header h1,
    header .logo {
        width: 180px;
    }

    header {
        font-size: var(--size-xsmall);
    }

    header .menu a.contact {
        display: none;
    }

}

/*HEADERスマホ*/
@media screen and (max-width: 560px) {
    header .menu a.tel {
        display: none;
    }

    header {
        padding: 10px;

    }


    header h1,
    header .logo {
        width: 200px;
    }


    header nav .menu {
        gap: 20px;

    }

    header .hamb {
        display: block;
        background-color: var(--color-brown);
        height: 100%;
        aspect-ratio: 1;
        position: absolute;
        right: 0;
        top: 0;
        cursor: pointer;
    }

    header .hamb span {
        display: block;
        height: 2px;
        background-color: #ffffff;
        left: 24%;
        right: 24%;
        position: absolute;
        transition: all 0.4s ease;

    }

    header .hamb span.line1 {
        top: 32%;
    }

    header .hamb span.line2 {
        top: 50%;
        transform: translate(0, -50%);
    }

    header .hamb span.line3 {
        bottom: 32%;
    }

    header.show .hamb span.line1 {
        transform: translate(0, -50%) rotate(225deg);
        top: 50%;
    }

    header.show .hamb span.line2 {
        left: 50%;
        right: 50%;
    }

    header.show .hamb span.line3 {
        transform: translate(0, 50%) rotate(-225deg);
        bottom: 50%;
    }





    header nav {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        background-color: #ffffff;
        display: flex;
        justify-content: center;
        align-items: center;
        padding-top: 110px;
        transform: translate(0, -100%);
        transition: all 0.4s ease;
    }

    header.show nav {
        transform: translate(0, 0);
    }

    header nav .menu {
        flex-direction: column;
        gap: 3rem;
        text-align: center;
    }

    header a.tel-2 {
        text-decoration: none;
        display: block;
        background-color: var(--color-brown);
        color: var(--color-white);
        font-size: var(--size-xlarge);
        position: absolute;
        left: 0;
        top: 100%;
        width: 100vw;
        height: 50%;
        text-align: center;

    }
header nav .menu a .en {

    font-size: 0.8em;

}

header nav .menu a .ja {
    font-size: var(--size-xlarge);
    
}

}





/* ------------ FOOTER ------------ */
footer {
    background-color: var(--color-black);
    color: var(--color-white);
    font-size: var(--size-small);
    text-align: center;
    padding: 10px;
}

/* ---------- footer ---------- */
.wrap-footer-company {
    background-color: var(--color-ivory);
    padding-top: 6em;
    padding-bottom: 5em;
    position: relative;
}


.block-footer-company-inner .contact-button {
    text-decoration: none;
    background-color: var(--color-brown);
    color: var(--color-white);
    display: block;
    padding: 10px 20px;
    font-size: var(--size-normal);
    border-radius: 5px;
    /*角丸*/
    text-align: center;
}

.block-footer-company-inner .contact-button:hover {
    background-color: var(--color-terracotta);
}



.block-footer-company-inner {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--size-xxxxlarge);
}

.block-footer-left a {
    position: relative;
}

.block-footer-company-inner .contact-button.mail::before {
    content: '';
    display: block;
    background-image: url(../images/icon-mail.svg);
    background-size: contain;
    width: 70%;
    height: 70%;
    position: absolute;
    left: 5vw;
    top: 50%;
    transform: translate(0, -50%);


}

.block-footer-company-inner .contact-button.tel::before {
    content: '';
    display: block;
    background-image: url(../images/icon-tel.svg);
    background-size: contain;
    width: 70%;
    height: 70%;
    position: absolute;
    left: 5vw;
    top: 50%;
    transform: translate(0, -50%);


}

.block-footer-left .tel,
.block-footer-left .title-company,
.block-footer-left .title-company .logo {
    margin-bottom: var(--size-xxxxlarge);

}

.block-footer-company-inner .map {
    max-width: 500px;
    width: 100%;
    height: 100%;
}

@media screen and (max-width: 1024px) {

    .block-footer-company-inner .contact-button.mail::before,
    .block-footer-company-inner .contact-button.tel::before {
        width: 50%;
        height: 50%;
        left: 1vw;



    }

}

@media screen and (max-width: 560px) {
    .block-footer-company-inner {
        grid-template-columns: repeat(1, 1fr);

    }

    .block-footer-company-inner .contact-button.mail::before,
    .block-footer-company-inner .contact-button.tel::before {

        left: 10vw;



    }



}

/* ------------ FOOTER-map ------------ */

.block-footer-company-inner .footer-map li {
    list-style: none;
    margin-bottom: 0.5em;

}

.block-footer-company-inner .footer-map a {

    color: var(--color-brown);
}

.block-footer-company-inner .footer-map a:hover {
    color: var(--color-terracotta);
}

/* ------------ FOOTER-breadcrumbs ------------ */
.aioseo_breadcrumbs {
    display: flex;
    justify-content: flex-end;
    list-style: none;
    font-size: 0.8em;
    padding: 5px 20px;
    gap: 5px;
    flex-wrap: wrap;
}

@media screen and (max-width: 560px) {}





/* ------------ COMMON ------------ */
.container {
    padding-left: 80px;
    padding-right: 80px;
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
}

.container.narrow {
    max-width: 920px;
}

.list-news {
    margin-top: 5em;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 20px;
}

.block-button {
    text-align: right;
    margin-top: 30px;
}

.block-button a {
    background-color: var(--color-brown);
    color: var(--color-white);
    padding: 10px 40px 10px 20px;
    font-size: 0.8em;
    border-radius: 5px;
    display: inline-block;
    text-decoration: none;
    background-image: url(../images/icon-arrow.png);
    background-size: 15px;
    background-position: right 15px center;
}

.block-button a:hover {
    background-color: var(--color-terracotta);
}

@media screen and (max-width: 1024px) {
    .container {
        padding-left: 60px;
        padding-right: 60px;
    }
}



@media screen and (max-width: 560px) {
    .container {
        padding-left: 40px;
        padding-right: 40px;
    }

    .block-button {
        text-align: center;
    }
}

.block-page-title {
    margin-top: 100px;
    background-image: url(../images/block-title.jpg);
    background-size: cover;
    background-position: center;
    filter: saturate(40%);
    position: relative;
    padding-top: var(--size-xxxlarge);
    padding-bottom: var(--size-xxxlarge);
    font-weight: bold;
    width: 100%;
    height: 12em;
    display: flex;           /* Flexboxを有効化 */
    flex-direction: column;  /* 子要素を縦に並べる */
    justify-content: center; /* 垂直方向の真ん中 */
    align-items: center;     /* 水平方向の真ん中 */
}

.block-page-title::before {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: var(--color-ivory);
    mix-blend-mode: soft-light;
    opacity: 0.9;

}

.block-page-title .en {
    display: block;
    color: var(--color-gray);
    font-size: 4em;
    font-weight: bolder;
    line-height: 1.2;
    opacity: 0.2;
}

.block-page-title .ja {
    font-size: var(--size-large);
    color: var(--color-white);
    display: block;
}

.block-page {
    overflow: hidden;
    padding-bottom: 100px;
}

.inview {
    opacity: 0;
    transform: translate(0, 40px);
}

.inview.show {
    opacity: 1;
    transform: translate(0, 0);
    transition: all 0.8s ease;
}
.inview-L {
    opacity: 0;
    transform: translate(40px, 0);
}
.inview-L.show {
    opacity: 1;
    transform: translate(0, 0);
    transition: all 0.8s ease;
}
.inview-R.show {
    opacity: 1;
    transform: translate(0, 0);
    transition: all 0.8s ease;
}
.inview-R {
    opacity: 0;
    transform: translate(-40px, 0);
}



@media screen and (max-width: 560px) {
    .block-page-title {
        margin-top: 80px;

    }

    .block-button {
        text-align: center;
    }
    .block-page-title .en {
    
    
    font-size: 3em;
    
}
}

/* ------------ HOME ------------ */
.block-home-title {
    margin-bottom: 100px;
}

.block-home-title .en {
    display: block;
    color: var(--color-green);
    font-size: 0.7em;
    font-weight: bolder;
    line-height: 1.0;
}

.block-home-title .ja {
    font-size: 1.8em;
    display: block;
}


.block-home-main {
    margin-top: 100px;
    height: 800px;
    position: relative;
}

.block-home-main p {
    color: var(--color-white);
    position: absolute;
    right: 1em;
    bottom: 1em;
    font-weight: var(--weight-normal);
    text-shadow: 0 0 8px rgba(0, 0, 0, 1);
    display: block;
    font-size: min(2.5em, 12vw);
    font-family: "Oswald", sans-serif;
    line-height: 1.9;
    margin-bottom: var(--size-normal);
}


@media screen and (max-width: 560px) {
    .block-home-main {
        margin-top: 80px;
        height: 560px;
    }

    .block-home-main p {
        right: 10px;
        bottom: 10px;
        font-size: var(--size-xxxlarge);
        line-height: 1.5;
    }


}

/* ------------ HOME-concept ------------ */

.block-home-concept {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    margin-top: 6em;

}

.block-home-concept .photo {
    background-image: url(../images/home-concept-photo.jpg);
    background-size: cover;
    background-position: center;
    
}

.block-home-concept .text {

    padding-top: 8em;
    padding-bottom: 8em;
    padding-right: 4em
}

.block-home-concept .text p {
    padding-bottom: 4em;
}

.block-home-concept .text h2 {
    font-size: 1.8em;
    margin-bottom: 1em;
    padding-bottom: 1em;
    letter-spacing: 0.2em;
    border-bottom: var(--color-green) solid 2px;
}



@media screen and (max-width: 560px) {
    .block-home-concept {
        grid-template-columns: repeat(1, 1fr);
    }

    .block-home-concept .photo {
        height: 320px;
    }

    .block-home-concept .text {
        padding-left: 0;
        padding-right: 0;
    }


}





/* ------------ HOME-PROJECT‐slider ------------ ok*/
.block-home-project .block-home-title {
    text-align: center;
    margin-top: 5em;
    padding-top: 5em;
}

.block-home-project {
    background-color: var(--color-ivory);

}

.block-home-project .block-button {
    padding-bottom: 5em;
    text-align: center;

}

.home-slider-arrow {
    width: 2.5em;
    aspect-ratio: 1;
    background-color: var(--color-brown);
    position: absolute;
    top: 50%;
    border-radius: 100vh;
    z-index: 1;
    background-position: center center;
    background-size: 50% auto;

}

.home-slider-arrow:hover {
    background-color: var(--color-terracotta);
}

.home-slider-arrow.home-slider-prev {
    left: 0;
    background-image: url(../images/icon-prev.svg);
}

.home-slider-arrow.home-slider-next {
    right: 0;
    background-image: url(../images/icon-next.svg);
}

.slick-dots {
    display: flex;
    justify-content: center;
    font-size: 0;
    gap: 10px;

}

.slick-dots li {
    width: 10px;
    aspect-ratio: 1;
    background-color: #cccccc;
    border-radius: 100vh;

}

.slick-dots li.slick-active {
    background-color: var(--color-brown);

}

.block-home-slider img {
    width: 100%;
    height: 300px;
    padding: 10px;
    object-fit: cover;


}

.block-home-slider {
    position: relative;
    overflow: hidden;
}

@media screen and (max-width: 1024px) {
    .home-slider-arrow {
        opacity: 0;


    }

    .block-home-slider {

        overflow: hidden;
    }
}

/* ------------ HOME‐news ------------ OK*/
.block-home-news {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 100px;
    padding-top: 100px;
    padding-bottom: 100px;
}

@media screen and (max-width: 560px) {
    .block-home-news {
        grid-template-columns: 1fr;
        gap: 0;
        padding-top: 50px;

    }
    .block-home-title {
    margin-bottom: 20px;
}
}

/* ------------ HOME‐概要等 ------------ */
.wrap-company {
    background-color: var(--color-brown);
    padding-top: 2em;
    padding-bottom: 5em;
    position: relative;


}

.wrap-company::before {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-image: url(../images/home-main-photo01.jpg);
    background-size: cover;
    background-position: center;
    filter: saturate(0%);
    mix-blend-mode: overlay;
    opacity: 0.2;

}
.wrap-company .block-button {
    position: relative;
    z-index: 10; /* 他の要素より大きい数字を指定 */
}

.wrap-company .container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1em;
}

.wrap-company a {
    background-color: var(--color-ivory);
    color: var(--color-black);
    font-size: var(--size-normal);
    display: flex;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    height: 5em;
}

@media screen and (max-width: 560px) {
    .wrap-company .container {

        grid-template-columns: 1fr;

    }
}

/* ------------ HOME-other ------------ */

.block-home-other {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    margin-top: 6em;
    margin-bottom: 4em;

}

.block-home-other .photo {
    background-image: url(../images/home-other-photo1.jpg);
    background-size: cover;
    background-position: center;

}

.block-home-other .text {
    order: 1;
    padding-top: 4em;
    padding-bottom: 4em;
    padding-left: 4em;
}


.block-home-other .text h2 {
    font-size: var(--size-xlarge);
    margin-bottom: 1em;
    padding-bottom: 1em;
    letter-spacing: 0.2em;
    border-bottom: var(--color-green) solid 2px;
}



@media screen and (max-width: 560px) {
    .block-home-other {
        grid-template-columns: repeat(1, 1fr);
    }

    .block-home-other .photo {
        height: 320px;
    }

    .block-home-other .text {
        padding-left: 2em;
        padding-right: 2em;
        order: 0;
    }


}


/* ------------ ABOUT ------------ */
.block-about-company {
    margin-top: 7rem;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 60px;
}

.block-about-company table {

    border-top: 1px solid #212121;
}

.block-about-company table tr {
    border-bottom: 1px solid #212121;
}

.block-about-company table th,
.block-about-company table td {
    padding: 15px;
    font-weight: normal;
    text-align: left;
}

.block-about-company table th {
    white-space: nowrap;
}

.block-about-company iframe {
    width: 100%;
    height: 100%;
}

.block-about-right {
    position: relative;

}

.block-about-right-img {
    position: absolute;
    left: 0;
    top: 0;
    width: 50vw;
    height: 100%;
    background-image: url(../images/company.jpg);
    background-size: cover;
    background-position: center;
}

.block-page .block-button {
    margin-top: 6rem;
    margin-bottom: 6rem;
}

@media screen and (max-width: 560px) {

    .block-about-company {
        grid-template-columns: repeat(1, 1fr);
        gap: 60px;
    }
}

/* ------------ MESSAGE ------------ */
.block-message-company{
    display: grid;
    grid-template-columns:repeat(2, 1fr);
    gap: 5em;
    margin-bottom: 5em;
    margin-top: 5em;
}

.block-message-company img {
    width: 100%;
    object-fit: cover;
}

@media screen and (max-width: 1024px) {
    .block-message-company {
        grid-template-columns: 1fr;
        gap: 2em;
    }
    
    .block-message-company img {
        aspect-ratio: 1;
    }

}



/* ------------ concept ------------ */
.block-concept-top {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin-bottom: 5em;
    color: var(--color-white);
    border: 1px solid var(--color-white);
}

.block-concept-top a {
    text-decoration: none;
    color: var(--color-white);
    text-align: center;
    border: 1px solid var(--color-white);
    background-color: var(--color-brown);
}

.block-concept-first {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 4em;

}

.block-concept {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    margin-bottom: 5em;
    gap: 4em;
    align-items: center;


}

.block-concept img {
    width: 100%;
    aspect-ratio: 4/3;

}

.block-concept:nth-child(odd) .photo {
    order: 1;
}

.block-concept:last-child {
    margin-bottom: 0;
}

.block-concept-first-title {
    font-size: var(--size-xxxxlarge);
    text-align: center;
    margin-bottom: 2em;
}

.block-concept .text h3 {
    font-size: var(--size-xxlarge);
    margin-bottom: 10px;
}

.block-button.responsive {
    display: none;
}

@media screen and (max-width: 1024px) {
    .block-concept-first .block-button {
        display: none;
    }

    .block-concept-first {

        grid-template-columns: repeat(1, 1fr);

    }

    .block-button.responsive {
        display: block;
    }
}

@media screen and (max-width: 560px) {

    .block-concept {
        grid-template-columns: repeat(1, 1fr);

    }

    .block-concept:nth-child(odd) .photo {
        order: 0;
    }

    .block-concept-top {
        grid-template-columns: repeat(1, 1fr);
        margin-bottom: 2em;
    }

}


/* ------------ NEWS ------------ */
.block-news-date {
    margin-top: 5em;
    font-size: var(--size-small);
    font-weight: bold;
}

.block-news-title {
    font-size:var(--size-xxxlarge);
    margin-bottom: 20px;
}

.block-news-contents h2 {
    font-size: var(--size-xxlarge);
    border-left: 4px solid var(--color-green);
    padding-left: 0.6em;
    margin-bottom: 20px;
    margin-top: 40px;
}


.block-news-contents figure {
    text-align: center;
    margin-bottom: 1.6em;
}

.block-news-contents figure img {
    width: 640px;
}

.block-news-contents figure figcaption {
    font-size: 0.8em;
    padding-top: 10px;
}






/* ------------ CONTACT ------------ */
.block-page.container.narrow.contact {
    margin-top: 2em;
    padding-top: 5em;
    background-color: var(--color-ivory);

}

.table-contact {

    width: 100%;
    border-top: 2px solid var(--color-green);
    margin-bottom: 30px;
}

.table-contact tr {
    border-bottom: 2px solid var(--color-green);
}

.table-contact th,
.table-contact td {
    text-align: left;
    padding: var(--size-normal);
    font-weight: normal;
}

.table-contact th {
    white-space: nowrap;
    width: 12em;
}

.table-contact th .required {
    font-size: 0.6em;
    vertical-align: top;
    color: #F44336;
    padding-left: 5px;
}

.table-contact input[type="text"] {
    background-color: var(--color-white);
    width: 100%;
    padding: 10px;
    border-radius: 5px;
}

.table-contact textarea {
    background-color: var(--color-white);
    width: 100%;
    height: 120px;
    padding: 10px;
    border-radius: 5px;
}

.block-contact-submit {
    text-align: center;
    padding-top: 2em;
    margin: 1px;
}

.block-contact-submit button {
    background-color: var(--color-brown);
    color: var(--color-white);
    padding: 10px 20px;
    border-radius: 5px;
    display: inline-block;
    transition: all 0.2s ease;
    margin-bottom: 50px;
}

.block-contact-submit button:hover {
    background-color: var(--color-terracotta);
}

@media screen and (max-width: 560px) {

    .table-contact th,
    .table-contact td {
        display: block;
        padding-left: 0;
        padding-right: 0;
    }

    .table-contact th {
        padding-bottom: 0;
    }
}

/* ------------ recommend ------------ */
.block-recommend {
    margin-top: 7rem;
}

.block-recommend-title,
.block-recommend-about {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1em;
    background-color: var(--color-ivory);
    padding: 1em 2em;
}

.block-recommend-wrap {
    display: grid;
    grid-template-columns: repeat(2, 1fr);

}

.r-en {
    color: var(--color-white);
    font-size: 4em;
    transform: rotate(90deg);
    width: 5rem;



}

.block-recommend-title .number {
    font-size: 3em;
    font-weight: bold;
    color: var(--color-brown);
    margin-bottom: 0;
    padding-left: 0.2em;
}

.block-recommend-title h2 {
    font-size: var(--size-xxxlarge);
    font-weight: bold;
    display: flex;
    align-items: center;
}

.block-recommend-about h3 {
    color: var(--color-green);
    font-size: var(--size-large);
}

.block-recommend-block {
    padding: 2em;
    position: relative;


}

.block-recommend-title {
    background-color: var(--color-ivory);
}

.block-recommend-block:nth-child(2n+1) {
    padding-left: 0;
}

.block-recommend-block:nth-child(2n) {
    margin-top: 300px;
    border-left: 2px solid var(--color-brown);
    padding-right: 0;

}

.block-recommend-block:last-child {
    margin-bottom: 200px;
    border-left: 2px solid var(--color-brown);
}

.block-recommend-block img {
    position: absolute;
    right: 2em;
    top: -22px;
    width: 150px;
    height: auto;
}

@media screen and (max-width: 1024px) {

    .block-recommend-title,
    .block-recommend-about {
        grid-template-columns: 1fr;
    }

    .r-en {
        transform: rotate(0deg);
        font-size: 2.5em;
        margin: auto;


    }

    .block-recommend-wrap {
        grid-template-columns: 1fr;

    }

    .block-recommend-block:nth-child(2n) {
        margin-top: 0px;
        border-left: 0px;
        padding-right: 2em;
    }


    .block-recommend-about-text {
        order: 1;
    }

    .block-recommend-about-en {
        order: 2;

    }

    .block-recommend-block:nth-child(2n+1) {
        padding-left: 2em;
    }
}
@media screen and (max-width: 560px) {

    
    .r-en {
        transform: rotate(0deg);
        font-size: 2em;
    
    }

    .block-recommend-block:nth-child(2n) {
        padding-right: 0;
    }



    .block-recommend-block:nth-child(2n+1) {
        padding-left: 0;
    }
    .block-recommend-block {
    padding: 0;
    padding-bottom: 2em;

}
.block-recommend-block img {
    position: absolute;
    right: 0em;
    top: -15px;
    width: 120px;
    height: auto;
}
}
/* ------------ competition ------------ */
.block-competition-main {
    padding-top: 5em;
}

.block-competition-photo {
    display: grid;
    grid-template-columns: repeat(3, 1fr);

    gap: 1em;
}


.block-competition-photo figure {
    display: grid;
    grid-template-rows: auto 1fr;

}

.block-competition-photo img {
    width: 100%;
    height: 100%;
    gap: 1em;
    object-fit: cover;
    vertical-align: bottom;
    aspect-ratio: 4 / 3
}

.block-competition-photo figure.hor {
    display: grid;
    grid-template-columns: auto 1fr;

}

.block-competition-photo figure.hor figcaption {
    order: 1;

}

.block-competition-photo figure.hor img {
    order: 2;
    aspect-ratio: 3 / 4
}

.block-competition-photo figure.hor p {
    border-right: var(--color-green) solid 1px;
    writing-mode: vertical-rl;

}

.block-competition-photo figcaption {
    padding: 0.5em;
}

.block-competition-photo figure.ver p {
    border-top: var(--color-green) solid 1px;
}

.block-competition-title {
    display: grid;
    grid-template-columns: auto auto 1fr;
    gap: 2em;
    border-bottom: var(--color-green) solid 2px;
    align-items: flex-end;
    margin-bottom: 1em;


}

.block-competition .prize {
    background-color: var(--color-terracotta);
    color: var(--color-white);
    font-size: var(--size-xxxlarge);
    border-radius: 5px;
    padding: 0.2em;
}

.block-competition .name {
    font-size: var(--size-xxlarge);
}

.block-competition .year {
    display: flex;
    justify-content: flex-end;
}

.block-competition-title p {
    margin-bottom: 0.5rem;
}

.block-competition-scroll {
    margin-bottom: 8em;
    display: grid;
    grid-template-columns: repeat(6, 1fr);



}

.block-competition-scroll a {
    background-color: var(--color-brown);
    color: var(--color-white);
    text-decoration: none;
    border: 1px solid var(--color-white);
    text-align: center;
}

@media screen and (max-width: 1024px) {
    .block-competition-photo {
        grid-template-columns: repeat(2, 1fr);
    }
.block-competition-scroll {
    
    grid-template-columns: repeat(3, 1fr);
}
}

@media screen and (max-width: 560px) {
    .block-competition-photo {

        grid-template-columns: repeat(1, 1fr);

    }
.block-competition-scroll {
    
    grid-template-columns: repeat(2, 1fr);
}
    .block-competition-title {
        grid-template-columns: auto 1fr;
        gap: 1em;
    }

    .block-competition .year {
        justify-content: left;
    }
}

/* ------------ project ------------ */
.block-project {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 5em;
    padding-top: 5em;
    padding-bottom: 5em;
    text-align: center;
}
.block-project img{
width: 100%;
height: 200PX;
}

@media screen and (max-width: 1024px) {
    .block-project {
        grid-template-columns: repeat(2, 1fr);
    }

}

@media screen and (max-width: 560px) {
    .block-project {
        grid-template-columns: repeat(1, 1fr);
    }

}

/* ------------project-detail------------ */
.block-detail-point {
    display: grid;
    grid-template-columns: 20em 1fr;
    gap: 5em;
    padding-top: 5em;
}

.wp-block-gallery {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2em;
    padding-top: 5em;
    padding-bottom: 5em;
}

.block-detail-photo img {
    width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.block-detail-point .block-point h2,
.block-detail-point .subject{
    text-align: center;
}

.block-detail-point .point-text{
    background-color: var(--color-ivory);
    padding: 1em;
    margin-top: 3em;
}

@media screen and (max-width: 1024px) {
    .block-detail-point {
    grid-template-columns:1fr;
    
}
    .block-detail-photo {
    grid-template-columns: repeat(2, 1fr);
    
}

}

@media screen and (max-width: 560px) {
    .block-detail-photo {
    grid-template-columns: repeat(1, 1fr);
    
}

}
/* ------------member------------ */
.wrap-member{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6em;
    padding-top: 5em;
    padding-bottom: 5em;
}
.block-member{

    position: relative;
}
.block-member .text{
    position: absolute;
    background-color: rgba(255, 255, 255, 0.8);
    bottom: -0.5em;
    right: -1em;
    border: #212121 solid 1px;
    padding: 1em;
    width: 8em;
    aspect-ratio: 1 / 1;
    

    
}

.block-member img {
    width: 100%;
    height: 50vh ;
    object-fit: cover;
    object-position: center;

}


@media screen and (max-width: 560px) {

    .wrap-member {
        grid-template-columns: repeat(1, 1fr);

    }

    
}
/* ------------ REPORT------------ */
.block-report {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 5em;
    padding-top: 5em;
    padding-bottom: 5em;
    text-align: center;
}
.block-report img{
width: 100%;
height: 200PX;
padding-bottom: 1em;
object-fit: cover;
}

@media screen and (max-width: 1024px) {
    .block-report {
        grid-template-columns: repeat(2, 1fr);
    }

}

@media screen and (max-width: 560px) {
    .block-report {
        grid-template-columns: repeat(1, 1fr);
    }

}
/* ------------ report-1 ------------ */
.block-report-date {
    margin-top: 5em;
    font-size: var(--size-small);
    font-weight: bold;
}

.block-report-title {
    font-size:var(--size-xxxlarge);
    margin-bottom: 20px;
}

.block-report-contents h2 {
    font-size: var(--size-xxlarge);
    border-left: 4px solid var(--color-green);
    padding-left: 0.6em;
    margin-bottom: 20px;
    margin-top: 40px;
}


.block-report-contents figure {
    text-align: center;
    margin-bottom: 1.6em;
}

.block-report-contents figure img {
    width: 640px;
}

.block-report-contents figure figcaption {
    font-size: 0.8em;
    padding-top: 10px;
}
/* ------------ お問い合わせ ------------ */
.smf-item__label__text {
    position: relative;
}
.smf-item:has([data-validations~="required"]) .smf-item__label__text::after {
  position: absolute;
  top: 50%;
  right: -50px;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  width: 40px;
  height: 23px;
  border-radius: 4px;
  content: "必須";
  font-size: 12px;
  color: #fff;
  background: #ff0000;
}
