@charset "uft-8";
/* =========================
common
========================= */
:root {
    --primary-black: #121212;
    --primary-white: #F7F4F0;
    --primary-bague: #F3E2CA;
    --primary-orange: #FF6E00;
    --primary-Yellow: #F8E15B;
    --primary-camel: #B78C53;
    --primary-green: #8BF8C5;
    --primary-bulue: #CEEEF5;
    --primary-lightYellow: #FBE87B;
}
html {
    font-size: 62.5%;
}
body {
    font-family: 'Noto Sans JP',
     Arial, 
     sans-serif;
    font-style: normal;
    font-weight: 300;
    line-height: normal;
    color: var(--primary-black, #121212);
    background-color: var(--primary-white,#F7F4F0);
}
img {
    max-width: 100%;
    height: auto;
}
.Title {
    font-size: 2.5rem;
}


/* ==========================
Preloader
============================ */
.preloader {
  position: fixed;
  inset: 0;                       /* top,right,bottom,left:0 の省略 */
  background-color: var(--primary-white,#F7F4F0);      /* サイトの背景色に合わせる */
  z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;
}

.preloader__inner {
  text-align: center;
}

/* 4枚の画像を重ねる領域 */
.preloader__images {
  position: relative;
  width: 140px;             /* 画像サイズに合わせて調整 */
  height: 170px;
  margin: 0 auto 24px;
}

/* プログレス表示 */
.preloader__label {
  font-size: 1.4rem;
  margin-bottom: 8px;
}

.preloader__percent {
  font-size: 2rem;
  margin-bottom: 12px;
}

/* プログレスバー */
.preloader__bar {
  width: 200px;
  height: 1px;
  background-color: #ddd;
  margin: 0 auto;
  overflow: hidden;
}

.preloader__bar span {
  display: block;
  width: 0;
  height: 100%;
  background-color: #121212;
  transition: width 0.1s linear;
}

/* プリローダーが終わるときのフェードアウト */
.preloader.is-hidden {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.8s ease;
}

/* 4枚の画像（下からスライドアップ） */
.preloader__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;

  opacity: 0;
  transform: translateY(50px); /* 最初は下に隠す */
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.preloader__img:nth-child(3) {
    transition: opacity 0.3s ease-out, transform 0.3s ease-out;
}

.preloader__img.is-active {
  opacity: 1;
  transform: translateY(0);      /* 下からスッと上がる */
}




/* ==========================
header
============================ */
.header {
    display: flex;
    height: 101px;
    justify-content: space-between;
}
.header__btn {
    width: 86px;
    height: 53px;
    z-index: 2000;
    width: auto;
    left: auto;

    position: fixed;
    /* top: 20px;      */
    right: 0px; 
    z-index: 2000;
    left: auto;
    width: auto;

}

/* nav初期表示 */
.nav {
    background-color: rgba(252, 252, 252, 0.9);
    width: 100%;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    transform: translateX(-100%);
    transition: transform 0.7s;
}
.nav.active {
    transform: translateX(0);
}
.nav__header {
    display: flex;
    justify-content: space-between;
    height: 100px;
}
.nav__btn {
    width: 30px;
    height: 29px;
    margin-top: 12px;
    margin-right: 7%;
}
.nav__list {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    margin-top: 60px;
}
.nav__item {
    font-size: 1.8rem;
}
.visually-hidden {
    display: none;
}



/* ==========================
main
============================ */
/* メインビジュアル */
/* .hero {
    background-image: url(../img/forest_background.jpg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    height: 430px;
    position: relative;
}

.hero__sp {display: block;}
.hero__pc {display: none;}

.hero-photo {
    position: absolute;
    left: 0;
    bottom: 0;
     /* ここからアニメーション用 */
    /* opacity: 0; /* 最初は透明 */
    /* transform: translateY(10px); 少しだけ下にずらしておく */
    /* transition: opacity 1.2s ease-out, transform 1.2s ease-out; */ 
    /*   最終状態を保持  遅延（1.5秒後に開始）
    時間（1秒でフェードイン） */ 
/* } */

/* フェードインのキーフレーム
@keyframes heroPhotoFadeIn {
    0% {
        opacity: 0;
        transform: translateY(10px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}
.hero-title {
    position: absolute;
    left: 0;
    bottom: -128px;
     /* アニメ開始前は非表示 */
    /* opacity: 0;
    transform: translateY(10px);
    transition: opacity 1.2s ease-out, transform 1.2s ease-out;
} */

/* .hero-pc-title {
    position: absolute;
    left: 0;
    bottom: -128px;
     /* アニメ開始前は非表示 */
    /* opacity: 0;
    transform: translateY(10px);
    transition: opacity 1.2s ease-out, transform 1.2s ease-out;
/* } */ 
/* 

@keyframes heroTitleFadeIn {
    0% {
        opacity: 0;
        transform: translateY(10px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}
.hero-photo.is-show,
.hero-title.is-show {
    opacity: 1;
    transform: translateY(0);
} */




/* メインキャッチコピー */
/* .lead {
    margin-top: 200px;
    font-size: 2rem;
    font-weight: 300;
    line-height: normal;
    letter-spacing: 1.2px;
    text-align: center;
    position: relative;
    }
.lead::after {
    position: absolute;
    content: "";
    width: 284px;
    height: 86px;
    background-image: url(../img/YellowLine_SP.png);
    background-size: contain;
    background-repeat: no-repeat;
    left: 43%;
    transform: translateX(-1%);
    bottom: -25px;
    z-index: -1; 
} */
/* works */
/* Works セクション見出し */
/* .topWorks__head {
    text-align: center;
    margin-top: 100px;
}
.Title {
    font-size: 2.5rem;
    position: relative;
    opacity: 0;  /* 最初は非表示 */
/* }  */


/* 横棒　擬似要素 */
/* .Title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    transform-origin: left center;
    height: 1px;
    width: 0;
    background-color: var(--primary-black, #121212);
} */

/* スクロールして表示  */
/* .Title.is-show {
    animation: fadeInWorks 1s ease-out 1.5s forwards;
}
.Title.is-show::before {
    animation: lineGrow 3s ease-out forwards;
} */

/* 横棒アニメ：左端固定で右に伸びる */
/* @keyframes lineGrow {
    0%   { width: 0; }
    100% { width: 120px; }  /* ★ 横棒の長さ */
/* }  */

/* Works のフェードイン */
/* @keyframes fadeInWorks {
    0% {
        opacity: 0;
        transform: translateX(5px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
} */

/* Works＿_card */
/* .works__inner {
    margin-top: 40px;
}
.work__card {
    display: flex;
    flex-direction: column;
    align-items: center;
} */

/* .work__title {
    display: none;
}

.main__detail {
display: flex;
gap: 3px;
flex-direction: column;
margin-top: 20px;
font-size: 1.3rem;
font-weight: 500;
}

.sub__detail {
    margin-top: 10px;
    display: flex;
    gap: 5px;
    flex-direction: column;
    padding-bottom: 15px;
    font-size: 1.3rem;
}

.sub__detail a {
    text-decoration: none;
    color: #0b3d91;
}

.sub__detail a:hover {
    text-decoration: underline; */
/* } */

/* .work__figure {
    margin-top: 47px;
}
    
.morelink__wrapper {
    display: block;
    text-align: center;
    margin-top: 45px;
}

.more__link {
    display: inline-block;
    font-size: 2.1rem;
    position: relative;
}

.more__line {
    display: block;
    width: 160px;           
    height: 1px;  
    background-color: #121212;          
    margin: 10px auto 0;    
}



/* Toppage Profile */
/* .profile__head {
    text-align: center;
    margin-top: 120px;
    margin-bottom: 70px;
}  */

/* .profile__card {
    display: flex;
    text-align: center;
    flex-direction: column;
}

.profile__row {
    display: flex;
    align-items: center;
    flex-direction: column;
}

.profile__name {
    display:flex;
    flex-direction: column;
    margin-top: 25px;
}

.name__jp {
    font-size: 1.7rem;
    font-weight: 400;
    letter-spacing: 1.36px;
}

.name__en {
    font-size: 1.4rem;
    font-weight: 400;
    letter-spacing: 1.12px;
} */

/* .profile__txt {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 6px;
    margin: auto;
    margin-top: 16px;
}

.profile-action {
    display: flex;
    align-items: center;
    flex-direction: column;
    margin-top: 40px;
}

.play__link {
    display: flex;
    align-items: flex-end;
    gap: 8px;
}

.play__iconTriangle {
    display: block;
} */



/* ==========================
footer
============================ */
.footer {
    display: flex;
    text-align: center;
    flex-direction: column;
    margin-top: 120px;
    padding-bottom: 30px;
    background-color: #FFF;
}

.footer__topic {
    text-align: center;
    font-size: 2.3rem;
    letter-spacing: 0.69px;
    margin-top: 45px;
}

.name{
    margin-top: 45px;
    display: flex;
    flex-direction: column;
}

.name__topic {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.name__item {
    text-align: center;
    font-size: 1.8rem;
}

.profile__txt {
    font-size: 1.3rem;
    letter-spacing: 0.13px;
}
.copy__sp {
    margin-top: 60px;
    color: #121212;
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 100%; /* 10px */
}

.copy__pc {
    display: none;
}

/* ==========================
Topへ戻るボタン
============================ */
/* 共通設定 */
.pagetop__btn {
  position: fixed;
  z-index: 999;
  width: 45px;
  height: 45px;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
  right: 20px;
  bottom: 20px;
}

.pagetop__btn img {
  width: 100%;
  height: auto;
}

/* ボタンが表示される状態 */
.pagetop__btn.is-show {
  opacity: 1;
  pointer-events: auto;
}

/* ==========================
レスポンシブ
============================ */
/* -----メインビジュアル pc 700px -------------------------- */
/* @media screen and (min-width:700px) { */
   /* メインビジュアル */

/* .hero {
    background-image: url(../img/forest_background.jpg);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 115% auto;
    height: 430px;
    position: relative;
}

.hero__sp {display: none;} */

/* .hero__pc {
    display: block;
    position: relative;
    height: 100%;
    max-width: 960px;
    margin: 0 auto;
}

.hero-pc-photos {
    position: absolute;
    left: 50%;
    top: 15%;
    transform: translateX(-50%);
    display: flex;
    gap: 30px;
    align-items: center;
}

.hero-pc-photo--left img,
.hero-pc-photo--right img {
    opacity: 0.6;
} */

/* 絶対位置を解除 */
/* .hero-pc-photo {
    position: relative;      
    width: 260px;
    height: 365px;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 1.2s ease-out,transform 1.2s ease-out; */
/* } */

 /* ★PC版で is-show が付いたときの最終状態 */
  /* .hero-pc-photo.is-show {
    opacity: 1;
    transform: translateY(0);   /* 上に戻る */
  /* } */

/* .hero-pc-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
} */

/* .hero-pc-title {
    position: absolute;
    left: 3%;
    bottom: -100px;
    transform: translateX(-50%);
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 1.2s ease-out, transform 1.2s ease-out;
    margin-right: 50px;
}  */

/* .hero-pc-title.is-show {
    opacity: 1;
    translate: 0 0;
  } */

 /* 順番に出すディレイ設定 */
  /* .hero-pc-photo--left.is-show   { transition-delay: 0.2s; }
  .hero-pc-photo--center.is-show { transition-delay: 0.6s; }
  .hero-pc-photo--right.is-show  { transition-delay: 1.0s; }
  .hero-pc-title.is-show         { transition-delay: 1.4s; } */



/* worksPC */
/* Works セクション見出し PC */
/* .topWorks__head { */
    /* text-align: center; */
    /* margin-top: 180px; */
/* } */
/* .Title { */
    /* font-size: 3.5rem; */
    /* position: relative; */
    /* opacity: 0;  最初は非表示 */
/* } */


/* 横棒　擬似要素 */
/* .Title::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    transform-origin: left center;
    height: 1px;
    width: 0;
    background-color: var(--primary-black, #121212);
} */
/* 横棒アニメ：左端固定で右に伸びる */
/* @keyframes lineGrow { */
    /* 0%   { width: 0; } */
    /* 100% { width: 180px; }  ★ 横棒の長さ */
/* } */

/* } */
/* ----↑-メインビジュアル pc 700px ------- */


/* --- pc. 769px------------------------------------- */
@media screen and (min-width:769px) {
/* ----------- header */
.header {
    max-width: 1440px;
    height: 140px;
    margin: 0 auto;
    align-items: flex-start;
}

.site-logo img {
    width: 220px;
    height: auto;
    object-fit: cover;
}

.header__btn {
    display: none;
}

/* ------------ nav初期表示 */
.nav {
    position: static;
    width: auto;
    height: auto;
    background-color: transparent;
    transform: none;
    /* 右上に固定 */
    position: fixed;
    right: 0px; 
    z-index: 2000;
    left: auto;
    width: auto;

}

.nav.active {
    transform: none;
}

.nav__header {
    display: none;
}

.nav__btn {
    display: none;
}

.nav__list {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 50px;

    margin-top: 0;
    background: #FFF;
    padding: 17px 60px;
}

.nav__item {
    font-size: 1.8rem;
}


/* ------------ works PC */
/* .works__inner {
    margin-top: 110px;
} 

.work__card {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: center;
}

.work__figure img {
    width: 257px;
    height: 349px;
    object-fit: cover;
} 

.work__detail {
    margin-left: 70px;
    width: 380px;
}

.main__detail {
    gap: 5px;
    flex-direction: column;
    margin-top: 20px;
    font-size: 2rem;
    font-weight: 500;
}

.sub__detail {
    margin-top: 25px;
    gap: 10px;
    font-size: 1.6rem;
    font-weight: 350;
    letter-spacing: 0.96px;
} */

/* ------------ more link PC  */
/* .morelink__wrapper {
    margin-top: 70px;
}

.more__link {
    display: inline-block;
    font-size: 2.7rem;
    position: relative;
}

.more__line {
    display: block;
    width: 218px;           
    height: 1px;  
    background-color: #121212;          
    margin: 10px auto 0;    
} */

/* Toppage Profile PC*/
/* .profile__head {
    margin-top: 220px;
    margin-bottom: 160px;
}

.profile__card {
    max-width: 960px;
    margin: 0 auto;
    text-align: left;
}

.profile__row {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    gap: 35px;
    flex-direction: row;
    
} 

.profile__figure {
    order: 2;
} */

/* .profile__txt-group {
    display: flex;
    flex-direction: column;
    order: 1;
    max-width: 420px;
    text-align: left;
}

.profile__figure img {
    width: 250px;
    height: 370px;
    object-fit: cover;
}

.profile__name {
    display:flex;
    flex-direction: column;
    margin-top: 25px;
}

.name__jp {
    font-size: 2.8rem;
    letter-spacing: 1.84px;
}

.name__en {
    font-size: 2rem;
    letter-spacing: 1.6px;
} */

/* .profile__txt {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 6px;
    margin: auto;
    margin-top: 16px;
    font-size: 1.6rem;
}

.profile-action {
    display: flex;
    align-items: flex-start;
    margin-top: 60px;
    margin-left: 175px;
}

.play__link {
    display: flex;
    align-items: flex-end;
    gap: 8px;
} */

/* ------------ footer PC */
/* footer 全体の内側配置 */
.footer {
    background-color: var(--primary-white);
    padding-bottom: 0;
}

.footer__group {
    max-width: 1440px;
    display: flex;          
    justify-content: space-between;
    align-items: flex-end;
}

/* 左側の名前 */
.footer__left {
    display: flex;
    flex-direction: column;
    align-items: start;
}

.footer__topic {
    font-size: 2.2rem;
    text-align: left;       
    margin: 0;
}

.footer__topic img {
    width: 220px;
    height: auto;
    object-fit: cover;
    margin-left: 15px;
}

/* 右側のメニュー */
.name {
    margin: 0;
    background-color: #FFF;
    padding: 17px 60px;
}

.name__topic {
    display: flex;         
    flex-direction: row;
    gap: 50px;
}

.name__item {
    font-size: 1.8rem;
}

.copy__sp {
    display: none;
}

.copy__pc {
    display: block;
    margin-left: 35px;
    padding-bottom: 19px;
}


/* ------------ ページトップへ戻るボタン */
.pagetop__btn {
  bottom: 80px;
}
}
/* ----PC 769px------------ */





/* -----メインビジュアル pc ---------------------------- */
/* @media screen and (min-width: 1000px) { */
/* 横棒アニメ：左端固定で右に伸びる */
/* @keyframes lineGrow {
    0%   { width: 0; }
    100% { width: 310px; }  ★ 横棒の長さ */
/* } */
/* } */



/* -----メインビジュアル pc 1024px ---------------------- */
/* @media screen and (min-width: 1024px) { */
/* .hero-pc-photos { */
    /* gap: 60px; */
/* } */

/* メインキャッチコピーpc */
/* .lead { */
    /* margin-top: 200px; */
    /* font-size: 2.3rem; */
    /* letter-spacing: 1.62px; */
    /* } */
/* .lead::after {
    width: 600px;
    height: 125px;
    background-image: url(../img/YellowLine_PC.svg);
    /* background-size: contain; */
    /* background-repeat: no-repeat; */
    /* left: 32%;
    transform: translateX(-1%);
    bottom: -50px;
    z-index: -1;  */
/* } */




/* } */
    


