@charset "UTF-8";

/* ==========================================================================
   Foundation (基本設定・変数など)
   ========================================================================== */
:root {
    --cl-bk: #333;
    --cl-wt: #fff;
    --cl-gr: #D9E7A5;
    --cl-yg: #F6F7C0;
    --cl-yl: #FCFCED;
    --cl-gl: #DADADA;
    --cl-l-gl: #F8F8F8;

    --fz-5xl: 2.8125rem; /* 45px */
    --fz-4xl: 2.5rem;    /* 40px */
    --fz-3xl: 2rem;      /* 32px */
    --fz-2xl: 1.5rem;    /* 24px */
    --fz-xl: 1.25rem;    /* 20px */
    --fz-lg: 1.125rem;   /* 18px */
    --fz-base: 1rem;     /* 16px */
    --fz-sm: 0.875rem;   /* 14px */

    --ff-serif: "Noto Serif JP", serif;
    --ff-sans-serif: "Noto Sans JP", sans-serif;


    /* pc 16px sp 14px */
    --txt-base: clamp(0.875rem, 0.8393rem + 0.1786vw, 1rem);
    /* pc 18px sp 16px */
    --txt-lg: clamp(1rem, 0.9643rem + 0.1786vw, 1.125rem);
    /* pc 20px sp 16px */
    --txt-lg-plus: clamp(1rem, 0.9286rem + 0.3571vw, 1.25rem);
    /* pc 24px sp 18px */
    --txt-xl: clamp(1.125rem, 1.0179rem + 0.5357vw, 1.5rem);
    /* pc 32px sp 18px */
    --txt-2xl: clamp(1.125rem, 0.875rem + 1.25vw, 2rem);
    /* pc 40px sp 20px */
    --txt-3xl: clamp(1.25rem, 0.8929rem + 1.7857vw, 2.5rem);
    /* pc 45px sp 24px */
    --txt-4xl: clamp(1.5rem, 1.125rem + 1.875vw, 2.8125rem);

    scroll-behavior: smooth;

    /* pc 45px sp 36px */
    --mg-base: clamp(2.25rem, 2.0893rem + 0.8036vw, 2.8125rem);
    /* pc 72px sp 48px */
    --mg-lg:clamp(3rem, 2.5714rem + 2.1429vw, 4.5rem);
}

* {
    list-style: none;
}

a {
    display: inline-block;
}

img {
    display: block;
    width: 100%;
    height: auto;
    vertical-align: baseline;
}

body {
    box-sizing: border-box;
    color: var(--cl-bk);
    font-size: var(--txt-base);
    font-family: var(--ff-sans-serif);
    line-height: 1.6;
    word-break: break-all;
    text-align: justify;
    interpolate-size: allow-keywords;
}
h2,h3,h4,h5,h6 {
    line-height: 1;
}
/* ==========================================================================
   Layout (レイアウト関連)
   ========================================================================== */
/* 大きいコンテンツ 1400px */
.l-inner {
    width: 100%;
    max-width: 1400px;
    margin-inline: auto;
    padding-inline: clamp(1rem, 7.14%, 100px);
    box-sizing: border-box;
}

/* 小さいコンテンツ 1200px */
.l-inner--sm {
    width: 100%;
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: clamp(16px, 14.28%, 200px);
    box-sizing: border-box;
}

/* ==========================================================================
   Component (再利用可能なコンポーネント)
   ========================================================================== */
.c-section__ttl {
    position: relative;
    padding-block: calc(20 / 45 * .75em);
    text-align: center;
    font-size: var(--txt-4xl);
    font-family: var(--ff-serif);
    font-weight: 700;
    line-height: 1.25;
    z-index: 3;
}

.c-section__ttl::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    display: block;
    width: calc(84.5 / 45 * 1em);
    height: 100%;
    background-image: url("../../../assets/img/common/img_ttl-bg.png");
    background-repeat: no-repeat;
    background-size: contain;
    z-index: -1;
}

.c-link {
    position: relative;
}

.c-arrow-under {
    position: relative;
    display: inline-block;
    width: 28px;
    height: 10px;
}

.c-arrow-under::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    margin: auto;
    width: 28px;
    height: 10px;
}

@media (width > 768px) {
    .c-arrow-under::after {
        width: 48px;
        height: 16px;
        clip-path: polygon(0% 30%, 50% 65%, 100% 30%, 100% 35%, 50% 70%, 0% 35%);
    }
}


.c-bottom-container {
    width: 100%;
    height: 100%;
    background-image: url(../../../assets/img/common/img_footer_bg.png);
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-position: bottom;
    background-color: var(--cl-l-gl);
}


.c-pagetop {
    position: fixed;
    bottom: 3rem;
    right: 1rem;
    
    display: none;
    opacity: 0;
    z-index: 99999;
}
.c-pagetop__link {
    padding: .875em .875em;
    border-radius: 50%;
    background-color: #F7F6BD;
    filter: drop-shadow(0px 0px 4px rgba(0,0,0,.2));
}
.c-pagetop__link.--pk {
    margin-block-start: .5em;
    background-color: #FAD7D0;
}
.c-pagetop img {
    width: 1.68em;
    height: auto;
}
.c-pagetop.is-active {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    opacity: 1;
}
.c-pagetop {

}

/* ==========================================================================
   Project
   ========================================================================== */
/* Header / Hero */
.p-hero {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100svw;
    height: 100svh;
    font-family: var(--ff-serif);
    background-image: url("../../../assets/img/top/img_mv_sp.png");
    background-size: cover;
}

@media (width > 768px) {
    .p-hero {
        background-image: url("../../../assets/img/top/img_mv_pc.png");
    }
}

.p-hero__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2em;
}

@media (width > 768px) {
    .p-hero__inner {
        flex-direction: row;
        align-items: flex-end;
        gap: 10%;
    } 
}

.p-hero__box {
    width: clamp(150px, 43.05vw, 620px);
}
@media (width < 768px) {
    @media (orientation: landscape) {
        .p-hero {
            background-image: url("../../../assets/img/top/img_mv_pc.png");
        }
        .p-hero__inner {
            flex-direction: row;
            align-items: flex-end;
            gap: 10%;
        }
        .p-hero__box {
            width: 100%;
            height: auto;
        }
    }
}
.p-hero__txt {
    padding-block: .1em;
    text-align: center;
    font-size: 2rem;
    font-weight: 700;
    -webkit-text-stroke-width: 6px;
    -webkit-text-stroke-color: #FFF;
    paint-order: stroke fill;
    border-top: solid 2px #000;
    border-bottom: solid 2px #000;
}
@media (width > 768px) {
    .p-hero__txt {
        font-size: 2.5rem;
    }
}
.p-hero__anchor {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.25rem;
    width: 100%;
}

@media (width > 768px) {
    .p-hero__anchor {
        width: fit-content;
        gap: 1.5rem;
    }
}

.p-hero__link {
    max-width: 451px;
    width: 100%;
    text-align: center;
}

.p-hero__link a {
    display: block;
    width: 100%;
    border-radius: 20px;
    border: 4px solid #FFF;
    padding: .9em;
    font-size: var(--txt-2xl);
    font-weight: 700;
}

@media (width > 768px) {
    .p-hero__link {
        width: clamp(200px, 37.58vw, 451px);
    }
}

.p-hero__link--gr a {
    background: var(--cl-gr);
}

.p-hero__link--yg a {
    background: var(--cl-yg);
}

@media (any-hover: hover) {
    .p-hero__link a:hover {
        filter: brightness(1.05);
    }
}

/* Project Section */
.p-project__inner {
    display: flex;
    flex-direction: column;
    gap: clamp(40px, 10vw, 120px);
    padding-block: 94px 120px;
}

.p-project__lead-txt {
    margin-block-start: 25px;
    margin-inline: auto;
}

.p-project__acc {
    border-bottom: solid 2px var(--cl-bk);
    border-top: solid 2px var(--cl-bk);
}

.p-project__acc h3 {
    padding-block: 12px;
    font-size: var(--txt-2xl);
    text-align: center;
    font-family: var(--ff-serif);
}

.p-project__acc-ttl-icon {
    transition: .4s;
}

.p-project__acc[open] .p-project__acc-ttl-h3 {
    border-bottom: solid 2px var(--cl-bk);
}

.p-project__acc[open] .p-project__acc-ttl-icon {
    transform: scaleY(-1);
}

.p-project__acc-ttl {
    text-align: center;
    cursor: pointer;
    list-style: none;
}

.p-project__acc-ttl::-webkit-details-marker {
    display: none;
}

.p-project__acc-ttl-h3 {
    display: block;
    text-align: center;
}

.p-project__acc-ttl-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1em;
}

.p-project__acc-ttl-inner svg {
    flex: 0 0 auto;
    width: 28px;
    height: auto;
}

@media (width > 768px) {
    .p-project__acc-ttl-inner svg {
        width: 48px;
    }
}

.p-project__acc-cont {
    height: 0;
    overflow: hidden;
    transition: height 0.4s ease, padding 0.4s ease;
}

.p-project__acc-cont:first-child {
    padding-block: 2.25em;
}

.p-project__acc-list {
    display: flex;
    flex-wrap: wrap;
    text-align: center;
    width: 100%;
    margin-inline: auto;
    padding-inline: 1em;
}

.p-project__acc-list time {
    display: inline-block;
    padding-inline-end: 1em;
}

.p-project__acc-list p {
    text-align-last: left;
}

@media (width > 768px) {
    .p-project__acc-list {
        max-width: 960px;
    }
}

.p-project__acc-list:first-child {
    padding-block-start: 2.25em;
}

.p-project__acc-list:not(:last-child) {
    margin-block-end: .5rem;
}

.p-project__acc-list:last-child {
    padding-block-end: 2.25em;
}

.p-project__about-txt {
    margin-block-start: 1rem;
    margin-inline: auto;
}

@media (width > 768px) {
    .p-project__about-txt {
        padding-inline: clamp(1.5em, calc(103/1200 * 100%), 103px);
        margin-block-start: 2rem;
    }
}

/* Articles Section */
.p-articles {
    padding-block: 3.5rem 6.34rem;
    background: var(--cl-yl);
}

.p-articles__ttl {
    margin-block-end: 2.98rem;
}

.p-articles__list {
    width: 100%;
}

.p-articles__card {
    width: 100%;
    max-width: calc(500px + 2rem);
    margin-inline: auto;
    font-family: var(--ff-serif);
    font-weight: 700;
}

.p-articles__card-link {
    width: 100%;
    padding-block: 1rem;
    padding-inline: 1rem;
    border-radius: 20px;
    background: var(--cl-wt);
}

@media (width > 1024px) {
    .p-articles__card {
        max-width: none;
    }
    .p-articles__card-link {
        display: grid;
        grid-template-columns: 5fr 6fr;
        gap: 3em;
        padding-inline: 1rem 2.8em;
    }
}

.p-articles__card:not(:last-child) {
    margin-block-end: 2rem;
}

.p-articles__card.coming-soon {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 160px;
    font-size: var(--txt-3xl);
    background-color: var(--cl-gl);
    border-radius: 20px;
}

@media (width > 1024px) {
    .p-articles__card.coming-soon {
        height: 280px;
    }
}

.p-articles__card-img {
    width: 100%;
    margin-inline: auto;
    margin-block-end: 2rem;
    border-radius: 20px;
    
    overflow: hidden;
}

.p-articles__card-img img {
    border-radius: 20px;
    transition: .5s;
}

@media (width > 768px) {
    .p-articles__card-img {
        width: 100%;
        height: 100%;
        max-width: 500px;
        margin-block-end: 2rem;
    }

    .p-articles__card-img img {
        height: 100%;
        object-fit: cover;
        object-position: center;
    }
}

@media (width > 1024px) {
    .p-articles__card-img {
        margin-block-end: 0rem;
    }
}

@media (any-hover: hover) {
    .p-articles__card-link:hover .p-articles__card-img img {
        transform: scale(1.05);
    }
}

.p-articles__card-body {
    flex: 1;
}

.p-articles__card-ttl {
    margin-block-end: 1.5rem;
}

.p-articles__card-ttl span {
    display: block;
}

@media (width > 768px) {
    .p-articles__card-ttl {
        margin-block-end: 3.5rem;
    }
}

.p-articles__card-ttl-num {
    margin-block: 1.3rem;
    font-size: var(--txt-xl);
}

.p-articles__card-ttl-main {
    font-size: clamp(1.5rem, 0.8929rem + 1.7857vw, 2.5rem);
}
@media (width > 768px) {
    .p-articles__card-ttl-main {
        font-size: clamp(1.25rem, 3.6vw, 2rem);
    }
}
.p-articles__card-ttl-sub {
    margin-block-start: .5em;
    font-size: var(--txt-xl);
}

.p-articles__card-txt {
    margin-block-end: 2rem;
    font-family: var(--ff-sans-serif);
    font-weight: 400;
}

.p-articles__card-bottom {
    padding-inline-end: 1rem;
    text-align: right;
    font-size: var(--txt-lg-plus);
}

@media (any-hover: hover) {
    .p-articles__card-link:hover .p-articles__card-bottom {
        text-decoration: underline;
    }
}

/* Selector Section */
.p-selector {
    padding-block: 7.5rem;
}

.p-selector__ttl {
    margin-block-end: 6.1rem;
}

.p-selector__card {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5em;
    max-width: 360px;
    margin-inline: auto;
    font-family: var(--ff-serif);
    font-weight: 700;
}

.p-selector__card:not(:last-child) {
    margin-block-end: 3rem;
}

@media (width > 768px) {
    .p-selector__card {
        flex-wrap: nowrap;
        /* align-items: center; */
        align-items: stretch;
        gap: clamp(1.25rem, 0.6964rem + 2.7679vw, 3.1875rem);
        max-width: none;
    }
    .p-selector__card:not(:last-child) {
        margin-block-end: 1.8rem;
    }
}

.p-selector__img {
    width: 100%;
    margin-inline: auto;
    min-width: 240px;
    overflow: hidden;
    border-radius: 20px;
    img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
}
@media (width > 768px) {
    .p-selector__img {
        width: clamp(280px, 35%, 350px);
        margin-inline: auto;
        min-width: 272px;
    }
}
.p-selector__profile {
    padding-block-start: .5em;
}
    .p-selector__title {
        margin-block-end: .8rem;
        font-size: 1.25rem;

    }
    .p-selector__name {
        font-size: 1.5rem;
    }
    .p-selector__honorific {
        font-size: 1.25rem;
    }
@media (width > 768px) {

    .p-selector__title {
        font-size: var(--txt-lg-plus);
    }
    .p-selector__name {
        font-size: var(--txt-xl);
        font-size: 2rem;
    }
    .p-selector__honorific {
        font-size: .6em;
    }
}

@media (width > 1024px) {
    .p-selector__name-box {
        display: flex;
        flex-wrap: wrap;
    }
}

.p-selector__desc {
    margin-block-start: var(--txt-3xl);
    font-family: var(--ff-sans-serif);
    font-weight: 400;
}

/* Past Projects Section */
.p-past-projects {
    padding-block: 3.8rem 5.9rem;
    text-align: center;
}

.p-past-projects__ttl {
    margin-block-end: 2rem;
    font-size: var(--txt-xl);
    font-weight: 700;
}

.p-past-projects__sub-ttl {
    margin-block-end: 1rem;
    font-size: var(--txt-lg-plus);
    font-weight: 700;
}

.p-past-projects__box:not(:last-child) {
    margin-block-end: 3em;
}

@media (width > 768px) {
    .p-past-projects__box:not(:last-child) {
        margin-block-end: 4em;
    }
}
.p-organization {
    margin-block-start: 6.5em;
}
.p-past-projects__box-inner:not(:last-child) {
    margin-block-end: 2rem;
}

.p-past-projects__list-wrap {
    width: fit-content;
    margin-inline: auto;
    margin-block-end: .5rem;
}

.p-past-projects__li {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1.8em;
    font-weight: 700;
    font-family: var(--ff-serif);
}
.p-past-projects__li:not(:last-child) {
    margin-block-end: 1em;
}

@media (width > 768px) {
    .p-past-projects__li:not(:last-child) {
        margin-block-end: 1.5em;
    }
}

.p-past-projects__li-num {
    display: flex;
    justify-content: center;
    align-items: center;
    padding-block: .19rem .25rem;
    padding-inline: 1.62rem;
    font-size: var(--txt-base);
    background: #D9E7A5;
    border-radius: 10px;
}
.p-past-projects__li-link {
    display: inline-block;
    width: fit-content;
    padding-block-end: .05em;
    text-align: left;
    font-size: var(--txt-lg-plus);
}
.p-past-projects__li-link a {
    border-bottom: solid 1px transparent;
}
@media (any-hover: hover) {
    .p-past-projects__li-link a:hover {
        opacity: .8;
        border-bottom: solid 1px currentColor;
    }
}

.p-past-projects__box-txt {
    font-weight: 400;
    letter-spacing: .05em;
}

.p-past-projects__box-txt + .p-past-projects__box-txt {
    margin-block-start: .6em;
}

/* Footer Section */
.p-footer__inner {
    padding-block: 1rem;
    padding-inline: 1rem;
    text-align: center;
}

@media (width > 768px) {
    .p-footer__inner {
        padding-block: 1.63rem;
        text-align: center;
    }
}

/* ==========================================================================
   Utility
   ========================================================================== */
.u-dib {
    display: inline-block;
}

.u-tac {
    text-align: center;
}

.u-tal {
    text-align: left;
}

.u-pc-only {
    display: none;
}

@media (width > 1024px) {
    .u-pc-only {
        display: block;
    }
}

/* テキスト切り替え用 */
.u-pc-only2 {
    display: none;
}
@media (width > 768px) {
    .u-pc-only2 {
        display: inline;;
    }
}
.u-sp-only {
    display: inline;
}
@media (width > 768px) {
    .u-sp-only {
        display: none;
    }
}