body { margin:0; padding:0; font-family: 'Josefin Sans', 'noto-sans-cjk-jp', sans-serif; font-size:1.6em; line-height:200%; letter-spacing : 0.01em; font-weight:normal; color: #333; width: 100%; max-width: 100%; background-color: #fafafa;}
html {font-size: 62.5%/* font-size 1em = 10px on default browser settings */; scroll-behavior: smooth;}
p, li { text-align:justify; text-justify:inter-ideograph;}
strong, b { font-weight:bold;}
em { font-style:normal;}
hr { display:none;}
th { font-weight:normal;}
a:link, a:active { color:#333; text-decoration: none;}
a:hover, a:visited { color:#333; text-decoration: underline;}
a:visited { color:#333;}
caption {}



.fadein {
    opacity: 0;
    transform: translate(0,30px);
    transition: .5s ease-in-out;
}
.active {
    opacity: 1 !important;
    transform: translate(0,0);
}

	
/* header --------------------*/
.header__wrap { position: fixed; width: 100%; height: 90px; z-index: 999;}
.header { height: 100%; width: 90%; display: flex; justify-content: end; align-items: center; margin: 0 auto; position: relative;}
.header h1 { position: absolute; top: 50%; left: 0; transform: translateY(-50%); width: 180px;}
.header h1 img { width: 100%; vertical-align: middle;}
.header a { text-decoration: none; margin-bottom: 20px;}
.header__menu { padding-right: 20px;}
.header__menu ul { display: flex; margin-right: -20px;}
.header__menu ul a { font-size: 1.4rem; font-family: 'Josefin Sans',sans-serif; letter-spacing: 0.1em; font-weight: 400; text-decoration: none; padding: 8px 12px 4px; color: #333;}
.header__menu ul a:hover { background-color: #62CCDA; transition: all .3s; color: #fafafa;}
.openBtn-wrap { display: none;}
#g-nav { display: none;}


/* mainVisual ----------------*/
.mainVisual-wrap { width: 100%; height: 100vh; margin-bottom: 100px;}
.mainVisual { width: 60%; height: 100vh; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);}
.mainVisual img { width: 100%; height: 100%; object-fit: contain;}
.mainVisual__scroll { position: fixed; right: 20px; bottom: 40px; height: 80px; z-index: -1; writing-mode: vertical-rl; letter-spacing: 0.1rem;}
.mainVisual__scroll::after { content: ""; position: absolute; top: 0; right: 8px; width: 1px; height: 30px; background: #333; animation: pathmove 1.4s ease-in-out infinite; opacity:0;}
@keyframes pathmove{
	0%{ height:0; top:50px; opacity: 0;}
	30%{ height:30px; opacity: 1;}
	100%{ height:0; top:90px; opacity: 0;}
}

#container{ position: relative; z-index:1; background-color: #fafafa; padding-bottom: 120px;}


/* works ---------------------*/
#works { padding-top: 100px; margin-top: -80px;}
.works { gap: 5%; width: 90%; max-width: 1100px; margin: 0 auto 180px;}
.works__title { position: relative; margin-bottom: 60px;}
.works__title p { font-size: 1.6rem; font-weight: 500; text-align: center;}
.works__title h1 { font-size: 4.8rem; font-weight: 400; letter-spacing: 0.1em; text-align: center; margin-bottom: 10px;}
.works__contents { display: flex; flex-wrap: wrap; gap: 5%; margin-bottom: 20px;}
.works__item { margin-bottom: 60px; width: 30%; position: relative; aspect-ratio: 3 / 2; background-size: cover; background-position: top center; background-repeat: no-repeat;}
.works__item a { text-decoration: none;}
.works__item-thum { margin-bottom: 15px; aspect-ratio: 3 / 2; box-shadow: 2px 2px 10px rgba(119,119,119,0.1); overflow:hidden;}
.works__item-thum img { width: 100%; height: 100%; object-fit: cover; vertical-align: bottom; transition:0.4s all}
.works__item-name { font-family: "noto-sans-cjk-jp", YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, sans-serif; line-height: 1.5; font-size: 1.4rem; font-weight: 500;}
.works__item-kind { color: #333; margin-bottom: 5px; font-size: 1.6rem; font-weight: 400; width: fit-content;}
.works__item-kind::after { content: ""; display: block; border-bottom: 1px solid #62CCDA; padding-top: 2px; width: 100%;}
.works__item-mask { position: absolute; background: rgba(30, 30, 30, 0.6); opacity: 0;/* 最初は透明（非表示） */ top: 0; transition: opacity .3s ease;/* ゆっくりopacityのみへ変化させる */ width: 100%; aspect-ratio: 3 / 2;}
.works__item:hover .works__item-mask { opacity: 1;/* hoverしたら透過しない(表示させる)*/ }
.works__item:hover .works__item-kind { opacity: 0.7;}
.works__item:hover .works__item-name { opacity: 0.7;}
.works__item:hover .works__item-thum img { transform:scale(1.05,1.05); transition:0.4s all;}
.works__item-guide { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 99; margin-right: 20px; color: #fff; font-weight: 300;}
.works__item-guide::after { content: ''; display: block; width: 80px; height: 6px; border-bottom: solid 1px; border-right: solid 1px; transform: skew(45deg); position: absolute; top: 20px; left: -20px;}
.works__item-intro { position: absolute; bottom: 20px; left: 20px; z-index: 99; width: 80%;}
.works__item-intro p { color: #fff; line-height: 1.5;}
.works__item-intro p:last-child { font-size: 1.4rem; font-weight: 300;}
.works__item-intro p:first-child { font-size: 1.8rem; margin-bottom: 5px;}
.works__item-intro span { font-family: 'raleway',serif; color: #fff; margin-right: 5px; font-weight: 300;}
.works__btn { width: 280px; height: 60px; margin: 0 auto; border: 1px solid #62CCDA;}
.works__btn p { text-align: center; padding: 24px 0 20px; margin: 0 auto; position: relative; text-decoration: none; color: #62CCDA;}
.works__btn p::after { content: ''; display: block; width: 30px; height: 5px; border-bottom: solid 1px; border-right: solid 1px; transform: skew(45deg); position: absolute; top: 24px; left: 220px;}
.works__btn a { text-decoration: none;}
.works__btn:hover p { color: #fff;}
.works__btn:hover { background: #62CCDA; transition: 0.3s all;}

.works__mv { width: 90%; max-width: 720px; margin: 0 auto 80px;}
.works__mv-image { margin-bottom: 40px;}
.works__mv-image img { width: 100%; box-shadow: 5px 5px 10px 5px rgb(0 0 0 / 3%);}
.works__mv-image a { width: 100%; height: 100%;}
.works__mv-title { margin-bottom: 10px; display: flex; align-items: baseline;}
.works__mv-title h1 { font-size: 1.8rem; line-height: 0.9; margin-right: 20px;}
.works__mv-title p { font-family: 'raleway',serif;}
.works__mv-title p a { text-decoration: none;}
.works__mv-title p span { font-size: 16px; vertical-align: middle;}
.works__mv-category { line-height: 1.5em;}
.works__outline { width: 90%; max-width: 720px; margin: 0 auto; display: flex; justify-content: space-between; margin-bottom: 140px;}
.works__outline-image { width: 45%; max-width: 300px;}
.works__outline-image div { padding-top: 173%; background: url("../images/works01-sp.png"); background-size: cover; border-radius: 30px; border: 4px solid #eee; box-shadow: 5px 5px 10px 5px rgb(0 0 0 / 3%);}
.works__description { flex-basis: 50%; line-height: 1.8em; text-align: justify;}


.works-detail { padding-top: 180px; width: 90%; max-width: 1100px; margin: 0 auto 140px;}
.works-detail__content { width: 90%; max-width: 750px; margin: 0 auto 80px;}
.works-detail__image { width: 90%; max-width: 750px; margin: 0 auto 60px;}
.works-detail__image img { aspect-ratio: 4.95 / 3; width: 100%; height: 100%; object-fit: cover; vertical-align: bottom; margin-bottom: 10px;}
.wp-block-image img { width: 100%;}
.works-detail__head a { display: flex; align-items: baseline; text-decoration: none;}

.works-detail__head-name { font-size: 2.0rem; font-weight: 500; line-height: 1.5; position: relative;}
.works-detail__head-name::after { content: ""; background: url(../images/link-icon.png); display: inline-block; width: 15px; height: 15px; background-size: cover; margin-left: 10px; bottom: 8px; position: absolute;}
.works-detail__process { margin-bottom: 40px; font-weight: 400; line-height: 1.5em; font-family: 'noto-sans-cjk-jp', sans-serif;}
.works-detail__process span { color: #fff; margin-bottom: 10px; display: inline-block; font-family: "noto-sans-cjk-jp"; background: #62CCDA; padding: 10px 20px;;}
.works-detail__description p { line-height: 1.8em; font-weight: 300; margin-bottom: 20px; font-family: "noto-sans-cjk-jp";}
.works-detail__description p:last-child { margin-bottom: 0;}
.works-detail__link { display: flex; justify-content: center; gap: 3%;}
.works-detail__link .works__btn { margin: 0;}

/* worksのページネーション -----------------*/
.page-numbers { display: flex; justify-content: center; gap: 20px; margin-bottom: 40px;}
.page-numbers li {  width: 55px; height: 55px; text-align: center;}
.page-numbers li .page-numbers { padding: 13px; display: block; border: 1px solid #62CCDA; font-size: 1.125em; line-height: 1.5em; text-align: center; color: #62CCDA;}
.page-numbers li .current { background-color: #62CCDA;  color: #fff; }
.page-numbers li:first-of-type a, .page-numbers li:last-of-type a { border: none; font-size: 1.25em; font-weight: 100; color: #62CCDA;}
.page-numbers li a { text-decoration: none;}
.page-numbers .dots { display: block; padding: 25px; font-size: 1.25em;}


/* about ---------------------*/
#about { padding-top: 100px; margin-top: -80px;}
.about { width: 90%; max-width: 1100px; margin: 0 auto 200px; position: relative;}
.about__img { width: 30%; max-width: 400px; aspect-ratio: 1 / 1; position: absolute; z-index: 1; top: 60px;}
.about__title { position: absolute; top: -25px; right: 80px;}
.about__title p { text-align: right; margin-right: 5px;}
.about__title h1 { font-size: 4.8rem; font-weight: 400; letter-spacing: 0.1em; margin-bottom: 10px; padding-left: 10px; background-color: #fafafa;}
.about__contents { display: flex; justify-content: space-between;}
.about__description { width: 54%; margin-left: auto; padding: 80px 80px 80px 140px; position: relative; border: 1px solid #333;}
.about__name { display: flex; align-items: center; margin-bottom: 30px;}
.about__name p:first-child { font-size: 2.4rem; margin-right: 20px; letter-spacing: 0.2em;}
.about__name p:last-child { font-size: 1.6rem; font-weight: 600; letter-spacing: 0.1em;}
.about__img img { width: 100%; height: 100%; object-fit: cover; vertical-align: bottom; box-shadow: 5px 5px 10px rgba(0,0,0,0.1);}
.about__history p { font-family: 'Noto Serif JP', sans-serif;font-size: 1.4rem; font-weight: 300; line-height: 2.0em; margin-bottom: 10px;}
.about__history p:last-child { margin-bottom: 0;}
.about__history h3 { margin: 40px 0 10px; line-height: 1.5em; font-weight: 500;}


/* contact ---------------------*/
.contact { padding-top: 100px; width: 90%; max-width: 1100px; margin: -80px auto 0;}
.contact__title { margin: 0 0 60px;}
.contact__title p { font-size: 1.6rem; text-align: center;}
.contact__title h1 { font-size: 4.8rem; font-weight: 400; letter-spacing: 0.05em; margin-bottom: 10px; text-align: center;}
.contact-description { font-size: 1.4rem; line-height: 2.0em; margin-bottom: 60px; width: fit-content; margin: 0 auto;}
.contact-description span { color: red;}

/* pタグの余白を削除 */
.wpcf7-form p { margin-bottom: 0; display: flex;}
/*  フォームの幅（自由に変えてOK） */
.contactForm { }
/* 各項目の下部余白 */
.contact_item { margin-bottom: 2.5rem;}
.contact_item span { width: 75%;}
.contact_item p br { display: none;}
/* 項目名 */
.label { display: block; margin-bottom: 5px; margin-top: 5px; width: 25%;}
/* 必須タグと任意タグ共通のスタイル */
.label_tag { margin-left: 1rem;}
/* 必須タグ */
.label_must { color: red;}
/* 任意タグ */
.label_option { border: 1px solid #333; color: #333;}
/* 名前やメールアドレスなどユーザーが入力する箇所 */
.inputs { width: 100%; -webkit-box-sizing: border-box; box-sizing: border-box;}
input[type="text"],input[type="email"] { border: 0.5px solid #777; padding: 0.5rem 2rem; width: 100%; height: 50px; margin-bottom: 5px; box-sizing: border-box;}
input[type="text"]:focus { outline: 1px solid #333;}
input[type="email"]:focus { outline: 1px solid #333;}
/* お問い合わせ内容を入力する箇所 */
textarea .form-control { border: solid 1px #333; padding: .5rem;}
.wpcf7-textarea { padding: 5px; width: 100%; box-sizing: border-box; border: 0.5px solid #777;}
.wpcf7-textarea:focus { outline: 1px solid #333;}
/* ボタン */
.btnArea { text-align: center;}
.btnArea p { display: block;}
input[type="submit"]{ background: #fafafa; width: 280px; height: 60px; color: #62CCDA; text-align: center; letter-spacing: .5em; text-indent: .5em; padding: 1.4rem 0; cursor: pointer; transition: all .3s; display: block; margin: 60px auto 0; font-size: 1.6rem; border: 1px solid #62CCDA; position: relative;}
input[type="submit"]::after{ content: ''; display: block; width: 40px; height: 8px; border-bottom: solid 1px; border-right: solid 1px; transform: skew(45deg); position: absolute; top: 22px; left: 210px;}
input[type="submit"]:hover { background: #62CCDA; color: #fff; transition: 0.3s all;}
/* ローダー */
.wpcf7 .ajax-loader { display: block; margin: 0 auto;}
.screen-reader-response p { color: #333; font-weight: bold; font-size: 1.6rem;}
.screen-reader-response ul { display: none;}
.wpcf7-not-valid-tip { color: red;}
.wpcf7-response-output { color: #333; font-weight: bold; font-size: 1.6rem;}
form { margin-top: 60px;}
.wpcf7 form .wpcf7-response-output { padding: 0; border: none; text-align: center; font-weight: 400; color: #333;}
::placeholder { color: #ccc;}
.wpcf7-form .contact_notes { display: block; line-height: 1.5em; text-align: center;}
/* reCAPTCHAバッジを非表示にする */
.grecaptcha-badge {visibility: hidden;}


/* photo -----------------*/
.photo { width: 90%; max-width: 1100px; margin: -80px auto 140px; padding-top: 100px; position: relative;}
.photo__title { width: 22%; padding: 30px 110px 60px 80px; position: relative; border: 1px solid #333;}
.photo__title p:first-of-type { font-size: 1.6rem; margin-bottom: 40px;}
.photo__title h1 { font-size: 4.8rem; font-weight: 400; letter-spacing: 0.05em; margin-bottom: 20px; position: absolute; top: -25px; left: 80px; background-color: #fafafa;}
.photo__description { line-height: 2.0; font-size: 1.4rem;}
.photo__contents { width: 65%; position: absolute; top: 160px; right: 0;}
.photo__link { width: 280px; height: 60px; margin: 28% auto 0; border: 1px solid #62CCDA;}
.photo__link:hover { background: #62CCDA; transition: 0.3s all;}
.photo__link:hover a { color: #fff;}
.photo__link:hover a::before { background-image: url("../images/insta_icon.png");}
.photo__link a { text-align: center; padding: 20px 0; margin: 0 auto; position: relative; text-decoration: none; color: #62CCDA; display: block;}
.photo__link a::before { content: ""; display: inline-block; background-image: url("../images/insta_icon03.png"); width: 20px; height: 20px; background-size: contain; margin-right: 10px; vertical-align: bottom;}
.photo__link a::after { content: ''; display: block; width: 30px; height: 5px; border-bottom: solid 1px; border-right: solid 1px; transform: skew(45deg); position: absolute; top: 24px;left: 220px;}


/* footer --------------------*/
.footer__wrap { width: 100%; position: relative; background-color: #fafafa;}
.footer__btn { margin: 0 auto; width: 90%; max-width: 1100px;}
.footer__btn a { text-decoration: none; display: block; width: fit-content; padding: 22px 0 17px; line-height: 1.2;}
.footer__btn p { color: #fff; text-align: center; font-size: 1.6rem; font-weight: 400; background: #ddd; width: 80px; margin: 0 0 20px auto;}
.footer { margin: 0 auto; padding: 40px 0; position: relative; width: 90%; max-width: 1100px; border-top: 1px solid #333;}
.footer__content { display: flex; align-items: baseline;}
.footer__content h1 { font-size: 2.4rem; letter-spacing: 0.1em; font-weight: 600; font-family: 'raleway',serif; margin-right: 60px; color: #203744;}
.footer__content a {text-decoration: none;}
.footer__menu { display: flex; align-items: center; margin-bottom: 20px;}
.footer__menu a { text-decoration: none;}
.footer__menu h1 { font-size: 2.0rem; margin-right: 60px; font-weight: 400; letter-spacing: 0.1em;}
.footer__menu ul { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 15px; align-items: center;}
.footer__menu ul li a { font-size: 1.4rem; letter-spacing: 0.1em; font-weight: 400;}
.footer__menu ul li a:hover { color: #62CCDA; transition: all .3s;}
.footer__icon { text-align: right; margin-bottom: 30px;}
.footer__icon a { display: block; width: fit-content; margin-left: auto;}
.copylight { text-align: right;}
.copylight small,.copylight a { font-size: 1.2rem; letter-spacing: 0.1em; font-weight: 400;}


/* タブレット−1 ++++++++++++++++++++ */
@media print, screen and (max-width:1080px){
/* photo ----------------*/ 
    .photo__title { padding: 40px 110px 6% 6%;}
    .photo__title h1 { left: 11%;}

}

/* タブレット−2 ++++++++++++++++++++ */
@media print, screen and (max-width:880px){
    body.active { height: 100%; overflow: hidden;}
    
/* header [tab02] --------------------*/
    .header__wrap { height: 80px;}
    .header__menu { display: none;}
    
    .openBtn-wrap { display: block; width: 60px; height: 60px; position: relative; cursor: pointer; z-index: 99;}
    .openBtn { position: absolute; top: 50%; right: 0; transform: translateY(-50%);}
    .openBtn span { display: block; content: ""; width: 40px; height: 0.5px; background-color: #000; margin: 0 auto; transition: all .4s;}
    .openBtn span:first-child,.openBtn span:nth-child(2) { margin-bottom: 10px;}
    .openBtn.active span:nth-of-type(1) { transform: translate(6px,13px) rotate(-45deg); width: 100%;}
    .openBtn.active span:nth-of-type(2) { opacity: 0;}
    .openBtn.active span:nth-of-type(3) { transform: translate(6px,-8px) rotate(45deg); width: 100%;}
    .openBtn.active span{ z-index: 999; background-color: #62CCDA;}
 
    #g-nav { display: block; position: fixed; z-index: 9; top: 0; right: -120%; width: 100%; height: 100vh; background: #fff; transition: all 0.6s;}
    #g-nav.panelactive { right: 0;}
    .g-nav-list { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); list-style: none; max-width: 900px; width: 100%; text-align: center;}
    .g-nav-list li { text-align: center; margin-bottom: 60px;}
    .g-nav-list li:last-of-type { margin-bottom: 0;}
    .g-nav-list li a { color: #62CCDA; font-size: 1.8rem; letter-spacing: 0.1em; padding: 8px 15px 4px;}
    .g-nav-list li a:hover { color: #fff; transition: all .3s; background-color: #62CCDA;}
  
/* mainVisual ----------------*/
    .mainVisual__copy-pc { display: none;}
    .mainVisual__copy-sp { display: block; position: absolute; left: 50%; bottom: 58%; transform: translate(-50%, -50%); width: 65%;}
    .mainVisual__copy-sub { top: 38%;}
    .mainVisual__title { font-size: 9.0rem; left: -5px; top: 35%;}
    .mainVisual { width: 100%;}
   
  
/* works ---------------------*/
    #works { padding-top: 80px;}
    .works { margin-bottom: 230px;}
    .works__title { margin-bottom: 40px;}
    .works__contents { gap: 6%;}
    .works__item { width: 47%; margin-bottom: 40px;}
    .works__item-guide { font-size: 1.4rem;}
    .works__item-guide::after { width: 70px; top: 15px;}
   
  
    .works-detail { margin-bottom: 80px; padding-top: 140px;}
    .works-detail__content { width: 100%;}
    .works-detail__image { width: 100%;}
    .works-detail__head-name { font-size: 1.8rem;}
    .works__detail__head { margin: 0;}
    .works-detail__link { display: block;}
    .works-detail__link .works__btn { margin: 0 auto 20px;}
    .works-detail__link .works__btn:last-of-type { margin: 0 auto;}
    
    #container { padding-bottom: 80px;}
  
/* worksのページネーション -----------------*/
    .page-numbers { gap: 10px;}
    .page-numbers li { width: 40px; height: 40px;}
    .page-numbers li .page-numbers { padding: 7px; font-size: 1em;}
    .page-numbers li:first-of-type a, .page-numbers li:last-of-type a { font-size: 1.0em;}


/* about ---------------------*/
    .about { padding: 80px 5% 40px; margin: 0 auto 80px;}
    .about__title { right: 40px;}
    .about__img { top: -50px; left: 5%; width: 180px;}
    .about__description { width: 95%; box-sizing: border-box; padding: 80px 40px 40px;}

/* contact ---------------------*/
    .contact__top { display: block; margin-bottom: 60px;}
    .contact-description { width: 100%;}
  
    .wpcf7-form p { display: block;}
    .label { width: auto;}
    .wpcf7-form .contact_notes { text-align: justify;}
    .wpcf7-form .contact_notes br { display: none;}
  
/* photo ----------------*/ 
    .photo { display: block; width: auto; margin: -80px auto 40px; padding: 80px 5% 40px;}
    .photo__title { width: auto; padding: 40px;  border-bottom: none; margin-bottom: 10px;}
    .photo__title h1 { left: 7%;}
    .photo__contents { position: static; width: 100%;}
    .photo__link { margin-top: 60px;}
  
/* footer --------------------*/
    .footer h1 { margin-bottom: 40px;}
    .footer__menu { display: block; margin-bottom: 20px;}
    }


@media print, screen and (max-width:480px){
    .header h1 { width: 140px}
  
/* footer --------------------*/
    .footer__menu ul { width: 200px;} 

/* mainVisual ----------------*/
    .mainVisual__copy-sp { bottom: 62%;}
    .mainVisual__copy-sub { min-width: 200px; top: 37%;}
   
/* works ---------------------*/
    .works { margin-bottom: 100px;}
  

/* about ---------------------*/
    .about { margin: 0 auto 80px;}
    .about__title { right: 25px;}
    .about__img { top: 180px; left: 50%; transform: translateX(-50%); width: 200px;}
    .about__description { width: 100%; padding: 320px 25px 40px;}
  
/* photo ---------------------*/
    .photo__title { padding: 25px;}
    .photo__title p:first-of-type { margin-bottom: 40px; margin-top: 15px;}
}