@charset "utf-8";

/**********************
        リセット
**********************/

html,body,h1,h2,h3,h4,p,ul,li,dl,dt,dd,table,tr,th,td,::before,::after{
margin: 0;
padding: 0;
line-height: 1.0;
}
ul {
list-style: none; 
}
a {
text-decoration: none; 
color: inherit;
}
img {
border: none;
vertical-align: bottom;
/*Fluid Image*/
max-width: 100%;
height: auto;
}

body{
font-family: 'Zen Maru Gothic', "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
color:#000;
}

/**********************
        共通設定
**********************/
h2{
    font-size:40px;
    margin-bottom:20px;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight:bold;
}

h2::before{
    border-top:6px double;
    content: "";
    width: 5em;
    margin-right: 1em;
}
  
h2::after {
    border-top: 6px double;
    content: "";
    width: 5em;
    margin-left: 1em;
}


/**********************
        container
**********************/
.container{
    max-width:1200px;
    margin: 0 auto;
    padding:0 10px;
}

/**********************
        header
**********************/
.header{
    padding:30px 10px 10px;     
    display: flex;
    justify-content:space-between;
    height:66px;
    line-height:66px;
    position: fixed;
    z-index:30;
    left:0;
    right:0;
    top:0;
    bottom:0;
    background-color:rgba(255, 255, 255, 0.8);
}

h1{
    background:url(../img/Logo.webp) no-repeat left top; 
    height:66px;
    padding-left:80px;
    font-size:25px;
    display: flex;
    align-items: flex-end;
    position: relative;
}

.header a{
    display: block;
}

h1::before{
    content:"点と点を線でかたちへ";
    position: absolute;
    bottom:32px;
    font-size:15px;
}

/**********************
        spnav
**********************/
.spnav{
    display:none;
}

/**********************
        pcnav
**********************/
.pcnav{
    display: flex;
    justify-content:flex-end;
    align-items: flex-end;
    height:66px;
    font-weight:bold;
}

.pcnav li{
    padding-left:30px;
    line-height:66px;
}

.pcnav a{
    padding-top:18px;
    font-size:25px;
}

.pcnav a:after{
    display: block;
    content:"";
    height:3px;
    margin-top:-15px;
    background-color: #6074B7;
    transform: scale(0);
    transition:400ms;
}

.pcnav a:hover::after{
    transform: scale(1);
}

/**********************
        KeyVis
**********************/
#home .keyVis{
    position: relative;
    margin:150px 0 160px;
    width: auto;
    min-height:calc(100vh - 150px);
    background:url(../img/かめりあ.png) no-repeat center center;
    background-size:cover;
    position: relative;
}

#home .keyVis-text p{
    writing-mode: vertical-rl;
    font-size:30px;
    background: #fff;
    height:fit-content;
    padding:10px;
    letter-spacing:5px;
}

#home .keyVis-text :nth-child(1){
    position: absolute;
    right:5%;
}

#home .keyVis-text :nth-child(2){
    position: absolute;
    right:15%;
}

#home .keyVis-text :nth-child(3){
    position: absolute;
    right:25%;
}

/**********************
        Philosophy
**********************/
#home .text-sp{
    display:none;
}

#home .philosophy{
    text-align: center;
}

#home .philosophy p{
    margin-bottom:10px;
    line-height:1.5;
}

#home .philosophy p:nth-of-type(1){
    margin-bottom:50px;
}

#home .philosophy p:nth-of-type(2){
    margin-bottom:15px;
    font-size:25px;
    font-weight: bold;
}

#home .philosophy p:nth-of-type(3){
    margin-bottom:40px;
    font-size:25px;
    font-weight: bold;
}

#home .philosophy p:nth-of-type(4),#home .philosophy p:nth-of-type(5),#home .philosophy p:nth-of-type(6),#home .philosophy p:nth-of-type(7){
    font-size:18px;
}

#home .philosophy p:nth-of-type(5){
    margin-bottom:20px;
}

/**********************
        works
**********************/
.works{
    margin:200px 0;
}

.text-small{
    text-align: center;
}

.work-list{
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap:30px;
    margin-top:50px;
    text-align: start;
}

.work-list-inner{
    margin-bottom:50px;
}

.work-list-inner__text li{
    display: inline-block;
    padding: 5px 10px;
    margin: 3px 6px 3px 0;
    background: #ddd;
}

.work-list-inner .ph{
    margin-bottom:20px;
}

.work-list-inner__text h3{
    font-size:20px;
    font-weight: bold;
    margin-bottom:10px;
}

/**********************
        footer
**********************/
.footer{
    background-color: #ddd;
    padding:50px 0 0;
    text-align: center;
}

.logo{
    background:url(../img/Logo.webp) no-repeat left top; 
    height:66px;
    padding-left:80px;
    font-size:25px;
    display: flex;
    align-items: flex-end;
    position: relative;
    font-weight: bold;
    width:fit-content;
    margin: 0 auto 30px;
}

.logo::before{
    content:"点と点を線でかたちへ";
    position: absolute;
    bottom:32px;
    font-size:15px;
    font-weight: bold;
}

.address p{
    line-height: 1.5;
}

.footer-nav{
    width: fit-content;
    margin: 0 auto 30px;
}

.footer-foot{
    padding:10px;
}

/********************************************************** company ***********************************************************/
/**********************
        company
**********************/
#company .text-sp{
    display: none;
}

#company .company-text-sp{
    display: none;
}

#company .company-text-sp-short{
    display: none;
}

#company .company{
    margin:200px 0 160px;
}

#company .text-small{
    text-align: center;
}

#company .company-text{
    margin:50px 0 100px;
    text-align: center
}

#company .company-text :nth-child(2){
    margin-bottom:15px;
}

#company .company-text p{
    line-height:2;
}

/* キャッチコピー */
#company .company-catch{
    display: flex;
    justify-content:center;
}

#company .company-catch-text-wrap{
    display: flex;
    padding-right:30px;
}

#company .company-catch-text p{
    line-height:2;
}

#company .company-catch-text :nth-child(2),#company .company-catch-text :nth-child(3),#company .company-catch-text :nth-child(4){
    padding-left:1em;
}

#company p.company-catch-copy{
    font-size:30px;
    position: relative;
    margin-bottom:30px;
}

/* ceo */
#company .company-description-ceo{
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom:50px;
}

#company .company-description-ceo::before{
    border-top:6px double;
    content: "";
    width: 100px;
    margin-right: 16px;
}
  
#company .company-description-ceo::after {
    border-top: 6px double;
    content: "";
    width: 100px;
    margin-left: 16px;
}

#company .ceo .ceoph{
    position: relative;
}

#company .ceo .ceoph::before{
    content:"2006年撮影";
    position: absolute;
    top:100%;
    right:0;
    font-size:12px;
}

#company .ceo{
    margin:160px 0;
}

#company .ceo-inner{
    display: flex;
    justify-content:center;
}

#company .ceo-inner p{
    line-height:2;
}

#company .ceo-text{
    padding-left:30px;  
}

#company .ceo-text-wrap{
    display: flex;
}

#company .ceo-text p:nth-child(1){
    font-size:20px;
    position: relative;
    margin-bottom:50px;
}

#company .ceo-text p:nth-child(1)::after{
    content:"okumura nobuyuki";
    position: absolute;
    left:0;
    top:35px;
}

#company .ceo-text p:nth-child(2){
    font-size:18px;
    border-bottom:1px solid #333;
    width: fit-content;
    margin-bottom:10px;
}

/* 表 */
#company .company-description-office{
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom:50px;
}

#company .company-description-office::before{
    border-top:6px double;
    content: "";
    width: 132px;
    margin-right: 16px;
}
  
#company .company-description-office::after {
    border-top: 6px double;
    content: "";
    width: 132px;
    margin-left: 16px;
}

#company .office{
    margin:160px 0;
}

#company .company-list{
    width:fit-content;
    margin:0 auto;
}

#company .company-list table{
    border-collapse: separate;
    border-spacing: 0;
}

#company .company-list td,#company .company-list th {
border: 1px solid #aaa;
border-bottom: 0;
border-right: 0;
padding:15px;
}

#company .company-list tr:last-child th,#company .company-list tr:last-child td {
border-bottom: 1px solid #aaa;
}

#company .company-list tr td:last-child {
border-right: 1px solid #aaa;
}

#company .company-list th{
    background-color: #ddd;
    width:150px;
}

#company .company-list td{
    width:350px;
    padding-left:30px;
}
/********************************************************** access ***********************************************************/
/**********************
        access
**********************/
#access .access{
    margin:200px 0 160px;
}

#access .text-small{
    text-align: center;
}

#access .access-inner{
    max-width:50%;
    margin:50px auto 0;
}

#access .address{
    margin-bottom:10px;
}

#access .gmap {
    height: 0;
    overflow: hidden;
    padding-bottom: 70%;
    position: relative;
}

#access .gmap iframe {
    position: absolute;
    left: 0;
    top: 0;
    right:0;
    margin: auto;
    height: 100%;
    max-width: 100%;
}



/********************************************************** メディアクエリー ***********************************************************/
@media screen and (max-width:850px){
/**********************
        header
**********************/
h1{
    font-size:20px; 
    background:url(../img/Logo.webp) no-repeat left bottom; 
    background-size:50px;
    padding-left:60px;
}

h1::before{
    font-size:15px;
    bottom:25px;
}

/**********************
        company
**********************/
#company .text-sp{
    display: block;
}

/**********************
        access
**********************/
#access .access-inner{
    max-width:70%;
}

/**********************
        footer
**********************/
.logo{
    font-size:20px;
    background:url(../img/Logo.webp) no-repeat left bottom; 
    background-size:50px;
    padding-left:60px;
}

.logo::before{
    font-size:15px;
    bottom:25px;
}
}

@media screen and (max-width:767px){
/**********************
        共通設定
**********************/
h2{
    font-size:30px;
}

/**********************
        header
**********************/
.header{ 
    display:block;
    position:static;
    background-color:transparent;
}

/**********************
        keyVis
**********************/
#home .keyVis{
    margin:44px 0 160px;
    background:url(../img/KeyVisSp.webp) no-repeat center center;
    background-size:cover;
}

#home .keyVis-text p{
    writing-mode: vertical-rl;
    font-size:25px;
    background: #fff;
    height:fit-content;
    padding:8px;
    letter-spacing:5px;
}

/**********************
        spnav
**********************/
.spnav{
    display: block;
}

.pcnav{
    display: none;
}

/* nav */
.nav{
    position:fixed;
    top:0;
    right:-120%;
    width:100%;
    height:100%;
    background-color:rgba(115, 115, 115, 0.8);
    text-align: center;
    z-index:99;
    transition:0.3s;
}

.nav ul{
    padding-top:100px;
}

.nav li{
    line-height: 80px;
}

.nav a{
    display: block;
    font-size:44px;
    font-weight: bold;
    color:#fff;
    text-shadow:2px 0 0 #4d4d4d;
}

.show.nav{
    right:0;
}

/* nav_btn */
.nav__btn{
    position:fixed;
    top:40px;
    right:5%;
    width:50px;
    height:50px;
    z-index:100;
}

.nav__btn::after{
    content:"menu";
    position: absolute;
    top:40px;
    left:6px;
    right:0;
    bottom:0;
    margin:auto;
}

.nav__btn span::before,.nav__btn span::after{
    content:'';
    transition:0.3s;
}

.nav__btn span,.nav__btn span::before,.nav__btn span::after{
    position: absolute;
    inset:0;
    margin:auto;
    display: block;
    width:35px;
    height:3px;
    background-color: #000;
}

.nav__btn span::before{
    transform: translateY(-10px);
}

.nav__btn span::after{
    transform: translateY(10px);
}

.spin.nav__btn span{
    background-color:transparent;
}

.spin.nav__btn span::before{
    transform: rotate(225deg);
}

.spin.nav__btn span::after{
    transform: rotate(-225deg);
}

.spin.nav__btn{
    background-color: transparent;
}

.color.nav__btn span,.color.nav__btn span::before,.color.nav__btn span::after {
    background-color: #fff;
}

/**********************
        Philosophy
**********************/
#home .philosophy p:nth-of-type(2){
    font-size:20px;
}

#home .philosophy p:nth-of-type(3){
    font-size:20px;
}

/**********************
        works
**********************/
#works .works{
    margin:96px 0 160px;
}

.work-list{
    display: grid;
    grid-template-columns: repeat(2,1fr);
}

/**********************
        company
**********************/
#company .company-text-sp{
    display: block;
}

#company .company{
    margin:96px 0 160px;
}

/* キャッチコピー */
#company .company-catch{
    display: block;
    text-align: center;
}

#company .company-catch-text-wrap{
    display: block;
    margin-bottom:20px;
    padding-right:0;
}

#company .company-catch-text :nth-child(2),#company .company-catch-text :nth-child(3),#company .company-catch-text :nth-child(4){
    padding-left:0;
}

/* ceo */
#company .ceo-inner{
    display: block;
    width: fit-content;
    margin: 0 auto;
}

#company .ceo-inner img{
    margin-bottom:5px;
}

#company .ceo-text-wrap{
    display: block;
    margin-top:20px;
}

#company .ceo-text{
    padding-left:0;  
    text-align: start;
}

/**********************
        access
**********************/
#access .access{
    margin:96px 0 160px;
}

/**********************
        footer
**********************/
/* footer-navの余分なマージンを削除 */
.footer-nav{
    margin: 0 auto 0;
}

.footer-foot{
    padding:50px 0 10px;
}

}

@media screen and (max-width:550px){
/**********************
        共通設定
**********************/
h2{
    font-size:25px;
    margin-bottom:10px;
}

h2::before{
    width: 3em;
}
  
h2::after {
    width: 3em;
}

/**********************
        header
**********************/
h1{
    font-size:18px;
    background-size:40px;
    padding-left:50px;
}

h1::before{
    font-size:13px;
}

/**********************
        keyVis
**********************/
#home  .keyVis-text :nth-child(1){
    position: absolute;
    right:5%;
}

#home  .keyVis-text :nth-child(2){
    position: absolute;
    right:20%;
}

#home  .keyVis-text :nth-child(3){
    position: absolute;
    right:35%;
}

/**********************
    Philosophy
**********************/
#home  .philosophy p:nth-of-type(1){
    font-size:13px;
}

#home .philosophy p:nth-of-type(2){
    font-size:18px;
}

#home .philosophy p:nth-of-type(3){
    font-size:18px;
}

#home .philosophy p:nth-of-type(4),#home .philosophy p:nth-of-type(5),#home .philosophy p:nth-of-type(6),#home .philosophy p:nth-of-type(7){
    font-size:16px;
}


/**********************
        works
**********************/
.work-list{
    display: block;
    width: fit-content;
    margin: 50px auto 0;
}

.text-small{
    font-size:13px;
}

.work-list-inner .ph img{
    width:100%;
}

/**********************
        company
**********************/
#company .company-text-sp-short{
    display: block;
}

/* ceo */
#company .company-description-ceo::before{
    width: 70px;
    margin-right: 16px;
}
  
#company .company-description-ceo::after {
    width: 70px;
}

/* 表 */
#company .company-description-office::before{
    width: 102px;
}
  
#company .company-description-office::after {
    width: 102px;
}

/**********************
       access
**********************/
#access .address{
    font-size:14px;
}

#access .access-inner{
    max-width:90%;
}

/**********************
       footer
**********************/
.logo{
    font-size:18px;
    background-size:40px;
    padding-left:50px;
}

.logo::before{
    font-size:13px;
}


}

@media screen and (max-width:470px){
/**********************
      Philosophy
**********************/
#home .philosophy p{
    margin-bottom:0;
}

#home .text-sp{
    display:block;
}
    

#home .philosophy-text{
    text-align: start;
}

/**********************
        company
**********************/
/* キャッチコピー */
#company p.company-catch-copy{
    font-size:25px;
}

/* 表 */
#company .company-list td{
    font-size:15px;
    padding:8px;
}
}