/* font */
/* thin */
@font-face {
    font-family: "Lato";
    src: url("assets/Lato/Lato-Thin.ttf") format("truetype");
    font-weight: 100;
    font-style: normal;
}

  /* Light */
@font-face {
    font-family: "Lato";
    src: url("assets/Lato/Lato-Light.ttf") format("truetype");
    font-weight: 300;
    font-style: normal;
}

/* normal */
@font-face {
    font-family: "Lato";
    src: url("assets/Lato/Lato-Regular.ttf") format("truetype");
    font-weight: normal;
    font-style: normal;
}

/* bold */
@font-face {
    font-family: "Lato";
    src: url("assets/Lato/Lato-Bold.ttf") format("truetype");
    font-weight: bold;
    font-style: normal;
}

/* black */
@font-face {
    font-family: "Lato";
    src: url("assets/Lato/Lato-Black.ttf") format("truetype");
    font-weight: 900;
    font-style: normal;
}

/* italic */
@font-face {
    font-family: "Lato";
    src: url("assets/Lato/Lato-Italic.ttf") format("truetype");
    font-weight: normal;
    font-style: italic;
}

* {
    color: #313131;
    box-sizing: border-box;
    margin: 0px;  /*こいつ...*/
    font-family: Lato, Noto Sans JP;
}


.btn :hover {
    opacity: 0.7;
    box-shadow: none;
    transition-duration: 0.4s;
}

.no_underline {
    text-decoration: none;
}

/*ヘッダー*/
header {
    position: fixed;
    z-index: 10;
    width: 100vw;
    background-color: rgba(255, 255, 255, 0.5);
}

.header-wrap {
    font-family: Lato;
    width: 98vw;
    display: flex;
    justify-content: space-between;
    margin-top: 3vh;
}

/*ヘッダー左のロゴ*/
.header-logo {
    font-size: 2.2em;
    margin-left: 4vw;
    padding: 1vh 2vh;
    letter-spacing: 0.1rem;
}

/*ヘッダー右側のコンテンツのかたまり*/
.header-contents {
    margin-right: 2vw;
    margin-top: 1vh;
    font-weight: bold;
}

/*ヘッダー右側・個別のやつ*/
.header-content {
    float: left;
    padding: 2vh 3vh;
    font-size: 1.2em;
    letter-spacing: 0.1rem;
}

/*トップ*/
.top-wrap {
    width: 100vw;
    height: 100vh; 
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

/*トップ ロゴ*/
.logo h1 {
    font-family: Lato;
    font-size: 10em;
    text-align: center;
    max-width: 100%;
    letter-spacing: 0.25rem;
    margin-top: 0.75rem; /* 下のメッセージの分下げる */
}

/*トップ コメント*/
/* .top-belowmessage {
    
} */

#top-randomMessage {
    font-size: 1.5em;
    letter-spacing: 0.25rem;
    animation-name:fadeInAnime;
    animation-duration:1.5s;
    animation-fill-mode:forwards;
}
@keyframes fadeInAnime{
    from {
      opacity: 0;
    }
  
    to {
      opacity: 0.7;
    }
  }


/*メイン*/
.main-wrap, .contact-wrap {
    margin: 4em 9em;
}

.service-container {
    display: flex;
    flex-direction: row;
}

.article-title {
    letter-spacing: 2.8px;
    font-size: 4.5em;
    padding: 2em 0em 1em;
}

.article-contents {
    display: flex;
    align-items: center;
    width: 80vw;
    justify-content: flex-start;
    margin-left: 1rem;
}

.article-content {
    margin-right: 2em;
}

.service-contents {
    margin-bottom: 4em;
    margin-right: 2em;
    border-bottom: 0.5px rgb(117, 117, 117); /* グレイ */
}

.service-article h3 {
    margin-bottom: 1em;
    font-size: 1.6em;
}

.service-article p {
    width: 40vw;
}

.service-url {
    font-size: 14px;
    font-weight: 400;
    margin: 12px 0px 0px 0px;
    overflow-wrap: break-word;
}

img {
    border-radius: 6px;
}

/* Team */
.team-list {
    display: flex;
    flex-direction: row;
}

.team-member {
    margin-right: 4vw;
    margin-top: 1.5em;
    margin-bottom: 2em;
}

.square {
    width: 200px; /* 正方形のサイズを指定 */
    height: 200px; /* 正方形のサイズを指定 */
    display: flex; /* Flexbox を使用 */
    justify-content: center; /* 横方向に中央揃え */
    align-items: center; /* 縦方向に中央揃え */
    margin-top: 1em;
}
  
.square img {
    max-width: 100%; /* 親要素にフィットさせる */
    max-height: 100%; /* 親要素にフィットさせる */
    object-fit: contain; /* 画像を切り取らずに収める */
    object-position: center bottom; /* 中央の下部を表示 */
}

/* flip */

.flip-container {
    width: 200px;
    height: 200px;
    perspective: 1000px; /* 3D空間を有効にする */
    margin-top: 1em;
}

.flip-card {
    width: 100%;
    height: 100%;
    transition: transform 0.9s;
    transform-style: preserve-3d; /* 3D空間での要素の保持 */
    position: relative;
}

.flip-container:hover .flip-card {
    transform: rotateY(180deg); /* ホバー時に180度回転 */
}

.fp-front, .fp-back {
    width: 100%;
    height: 100%;
    position: absolute;
    backface-visibility: hidden; /* 裏面が表から見えないように */
    display: flex;
    justify-content: center;
    align-items: center;
}

.fp-front img, .fp-back img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center bottom;
}

.fp-back {
    transform: rotateY(180deg); /* 裏面を最初から180度回転させて裏側に配置 */
}

.okazawa_pic {
    margin-top: 5px;
}

.furu_pic {
    margin-bottom: 10px;
}

/*今2個の塊を縦に３つ並べてる。*/
.philosophy-lists {
    display: flex;
    flex-direction: column;
}

.philosophy-list {
    display: flex;
    justify-content: space-around;
    margin-bottom: 2em;
    padding-right: 6em;

}

.philosophy-list img {
    width: 40vw;
}

.philosophy-list h4 {
    font-size: 1.6em;
    padding-top: 6vw;
    padding-bottom: 1vw;
}

/*Company*/

table {
    width: 85%;
    border-collapse: collapse;
}

th, td {
    border: 1px solid #313131;
    padding-top: 8px;
    padding-right: 8px;
    padding-bottom: 8px;
    padding-left: 15px;
    text-align: left;
}


/*Contact*/
.contact-title {
    padding-top: 0.5em;
}
.contact-contents {
    display: flex;
    justify-content: space-around;
}

.contact-content p {
    padding: 0em 0em 0.4em;
}

.contact-mail {
    opacity: 0.7;
}

.contact-btn {
    background-color: #313131;
    color: white;
    font-size: 2em;
    padding: 0.2em 1.8em 0.4em;
    letter-spacing: 2.8px;
    border-radius: 1em;
}

.contact-btn :hover {
    background-color: white;
}

/*フッター*/
.footer-wrap {
    width: 100vw;
    height: 2.5em;
    margin-top: 8em;
    text-align: center;
}

.footer-contents p {
    font-size: 0.8em;
    font-weight: 400;
    letter-spacing: 0.5px;
}

.footer-s {
    font-family: Noto Sans JP;
    font-size: 0.5em;
    letter-spacing: 0.05rem;
}
