@charset "UTF-8";

body{
    text-align: center;                                          /* テキストの位置を指定 */
    font-family: 'HGMARUGothicMPRO','Hiragino Maru Gothic Pro';  /* テキストのフォントを指定 */
    font-size: 16px;                                             /* テキストのサイズを指定 */
    color: rgb(0, 0, 0);                                       /* 文字の色を指定 */
    margin: 0;
}

header {
    position: fixed;                            /* 固定 */
    top: 0;                                     /* ページの上端に設置 */
    z-index: 100;                               /* 重なり順を指定 */
    width: 100%;                                /* */
    height: 70px;                               /* 高さを指定 */
    color: white;                             /* */
    background-color: rgb(47, 79, 79);         /* 背景色を指定 */
    align-content: center;                      /* */
    border-bottom: 4px solid rgb(35, 89, 150);
}

.header_logo{
    padding-top: 10px;
    font-weight: 600; 
}

.header_subTitle{
    padding-top: 10px;
    font-weight: 600;
}

.header_name{
    position: fixed;
    right: 20px;
    top: 50px;
}

main{
    margin-top: 80px;
}

.area_philosophy .part_vision{
    text-align: left;
}

.area_philosophy .part_mission{
    text-align: left;
}

.area_illustration{
    height: 200px;
}
.base {
    perspective: 900px; /* z軸の原点(0)までの距離を設定 (画面の900px前に視点を移動) */
    height: 120px; width: 120px;
    position: absolute; /* 全て重ねる */
    top: 20%;
    left: 70%;
}

.obj {
    transform-style: preserve-3d; /* 子要素を立体的に表示 */
    height: 120px; width: 120px;
    position: absolute; /* 全て重ねる */
}

.left { /* 左の面 */
    transform-origin: left; /* 原点を左の辺に置く */
    transform: rotateY(90deg); /* Y軸を90度回転 */
    height: 120px; width: 120px;
    position: absolute; /* 全て重ねる */
}

.right { /* 右の面 */
    transform-origin: right; /* 原点を右の辺に置く */
    transform: rotateY(-90deg); /* Y軸を-90度回転 */
    height: 120px; width: 120px;
    position: absolute; /* 全て重ねる */
}

.top { /* 上の面 */
    transform-origin: top; /* 原点を上の辺に置く */
    transform: rotateX(-90deg) /* X軸を-90度回転 */;
    height: 120px; width: 120px;
    position: absolute; /* 全て重ねる */
}

.bottom { /* 下の面 */
    transform-origin: bottom; /* 原点を下の辺に置く */
    transform: rotateX(90deg); /* X軸を90度回転 */
    height: 120px; width: 120px;
    position: absolute; /* 全て重ねる */
}

.back { /* 後ろの面 */
    transform: translateZ(-200px); /* 面を後ろに移動するだけ */
    height: 120px; width: 120px;
    position: absolute; /* 全て重ねる */
    transform: translateZ(-120px)
}

.obj > div {
    box-sizing: border-box; /* 枠線が面からはみ出ないようにする */
    border: 1px dotted rgb(47, 79, 79);  /* 幅10ピクセルの点線 */
    height: 120px; width: 120px;
    position: absolute; /* 全て重ねる */
    background-color: transparent;
}

@keyframes spin{
    from {transform:  rotateX(0deg) rotateY(0turn)}
    to {transform: rotateX(360deg) rotateY(1turn)} /* Y軸で360度回転 */
}

.obj {
  /* オブジェクトは奥に作成されているので、その真ん中(z軸-100px)を回す */
    transform-origin: 50% 50% -100px;
    animation: 25s spin linear infinite;
}

.category_main{
    font-size: 30px;
    padding-bottom: 10px;
}

.area_carousel{
    background:rgb(47, 79, 79);              /*背景色*/
    box-shadow: 0 3px 4px rgba(0, 0, 0, 0.32);  /*影*/
    padding-top: 20px;
    padding-bottom: 20px;
    margin-bottom: 30px;
    margin-left: 6%;
    margin-right: 6%;
    padding-right: 4%;
    padding-left: 4%;
    font-size: 20px;
    color: aliceblue;
    overflow: hidden;
    position: relative;
}

.part_carousel{
    will-change: transform;
    gap: 5%;                                  /* 子要素同士の間に隙間を作成 */
    padding-bottom: 20px;
    display: flex;
    position: relative;
    transition: transform 0.5s ease-in-out;   /* */
}

.carousel_block {
    transition: all 0.5s ease; 
    cursor: pointer;
    border: none;
    background: none;
    min-width: calc(90% / 3);
    padding-right: 0%;
    padding-left: 0%;
}

.carousel_block:hover{
    box-shadow: 10px 10px 10px rgba(0,0,0,0.5);
    transform: translateY(-10px);
    transition-duration: 0.5s;
}

.carousel_block:active{
    box-shadow: 0 0 0 rgba(0,0,0,0);
    transform: translateY(10px);
    transition-duration: 0.2s;
}

.carousel_block img{
    height: 80%;
    width: 100%;
}

.carousel_block p{
    margin-top: 0px;
    margin-bottom: 0px;
    color: aliceblue;
}

.part_navigation {
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    align-items: center;
    display: flex;                          /* 子要素を横に並べる */
    justify-content: space-between;         /* 子要素を両端に設置 */
    pointer-events: none;                   /* 全体のクリックを無効化 */
    position: absolute;
}

.part_navigation button {
    background: transparent;                /* 背景が透明 */
    color: white;                         /* 文字が白色 */
    border: none;                           /* 要素の外枠を無くす */
    font-size: clamp(50%, 2vw, 100%);       /* 文字のサイズを指定 */
    cursor: pointer;                        /* マウスオーバー時のカーソルの形指定 */
    pointer-events: auto;                   /* ボタンだけ有効化 */
}

.prev.disabled,
.next.disabled {
    background-color: transparent;
    color: #666;
    cursor: default;
}

.area_skillSet{
    margin-bottom: 30px;
}

.area_content{
    background:rgb(47, 79, 79);              /*背景色*/
    box-shadow: 0 3px 4px rgba(0, 0, 0, 0.32);  /*影*/
    padding-top: 20px;
    padding-bottom: 20px;
    margin-bottom: 30px;
    margin-left: 6%;
    margin-right: 6%;
    padding-right: 4%;
    padding-left: 4%;
    flex-wrap: wrap;
    display: flex;
}

.part_element{
    margin-left: 16%;
    margin-bottom: 2em;
    width: 28%;
    padding-left: 1em;
    text-indent: -1em;
    text-align: left;   
    color: aliceblue;
}

.part_picture{
    width: 50%;
}

.part_picture img{
    width: 30%;
    border-radius: 50%;
}

.part_introduction{
    margin-bottom: 2em;
    text-align: left;
    color: aliceblue;
    width: 50%;
}

.btn_contact{
    height: 40px;
    margin: 0 0 0 15%;
    padding: 5px 40px;
    background:rgb(47, 79, 79);              /*背景色*/
    color: white;                            /* 文字が白色 */
    border-radius: 10px;                       /* 丸みの大きさ */
    border:  1px solid white;
    box-shadow: 0 6px 15px 0 rgb(0, 0, 0);
    cursor: pointer;
}

.btn_contact:active{
    transform: translateY(3px);
    box-shadow: 0 0 0 rgb(0, 0, 0.18);
}

.area_input{
    padding: 30px 20% 0 20%;
    display: flex;              /* Flexbox を有効化 */
    flex-direction: column;     /* 子要素を縦に並べる */
    align-items: flex-start;    /* 左詰め */
    gap: 10px;
}

.item_name,
.item_input{
	text-align: left;
	align-items: center;
    background-color: rgb(173, 208, 207);
	display: flex;
}


.item_name{
    width: 30%;
    min-height: 30px;
    padding: 20px 20px 20px 20px;
}

.part_nameKanji.item_name
.part_nameKana .item_name
.part_mail .item_name
.part_tell .item_name{
    height: 30px;
}

.part_content .item_name {
    height: 217px;
}


.icon{
    color: white;
    background-color: rgb(255, 168, 109);
    margin-left: auto;
    padding: 5px;
}

.item_input{
    margin-left: 10px;
    width: 70%;
    min-height: 30px;
    padding: 30px 20px 10px 20px;
}

.item_field{
	width: 50%;
}

.error{
	color: rgb(174, 0, 0);
	min-height: 1.2em;
}

.item_input input{
    font-size: 15px;
}

.input_error{
	background-color: rgb(255, 242, 242);  
}

.part_nameKanji .item_input input,
.part_nameKana .item_input input{
    margin-right: 5%;
    width: 70%;
    height: 25px;
}

.part_mail .item_input input{
    width: 100%;
    height: 25px;
}

.part_tell .item_input input{
    width: 100%;
    height: 25px;
}

.part_content .item_input textarea{
    width: 150%;
    height: 190px;
}

.part_nameKanji{
    width: 100%;
    display: flex;              /* Flexbox を有効化 */
}

.part_nameKana{
    width: 100%;
    display: flex;              /* Flexbox を有効化 */
}

.part_mail{
    width: 100%;
    display: flex;              /* Flexbox を有効化 */
}

.part_tell{
    width: 100%;
    display: flex;              /* Flexbox を有効化 */
}

.part_content{
    width: 100%;
    display: flex;              /* Flexbox を有効化 */
}

.area_sending{
    display: flex;              /* Flexbox を有効化 */
    flex-direction: column;     /* 子要素を縦に並べる */
    align-items:center
}

.area_sending button{
    margin-top: 20px;
    border-radius: 10px;                       /* 丸みの大きさ */
    border:  none;
    box-shadow: 0 1px 8px 0 rgb(0, 0, 0);
    width: 20%;
    height: 40px;
    cursor:pointer;
}

.btn_send{
    color: white;
    background-color: rgb(47, 79, 79);
}

.btn_return{
    color: rgb(47, 79, 79);
    background-color: rgb(255, 255, 255);
}

.btn_send:active,
.btn_return:active{
    transform: translateY(3px);
    box-shadow: 0 1px 0 0 rgb(0, 0, 0.18);
}

.area_image img{
	width: 50%;;
}

