@charset "UTF-8";

/*------------------------------
--初期スタイル調整
------------------------------*/

*,
*::before,
*::after {
    box-sizing: border-box;
}

html,body {
    height: 100%;
}

a {
    transition:  .3s ease;
}

a:hover {
    opacity: .7;
}

body {
    background-color: #ccffff;
    color: #333;
    letter-spacing: .065em;
    font-family: sans-serif;
}

img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
}

/* PC SP表示切替
-------------------------------------- */

.sp {
    display: none;
}
.pc {
    display: block;
}

@media screen and (max-width:599px) {
    .sp {
        display: block;
    }
    .pc {
        display:none;
    }
}

/*------------------------------
--ヘッダー
------------------------------*/

.top.header {
    background: #ccffff;
}

/* ロゴ */
.header__logo {
    text-align: center;
}

.header__txt-1 a {
    text-decoration: none;
    color: #009999;
}
.header__txt-2 a {
    text-decoration: none;
    color: #663333;
}
@media screen and (max-width:599px) {
    .header__txt-1{
        font-size: 27px;
    }
    .header__txt-2{
        font-size: 21px;
}

}
/* ハンバーガーメニュー
-------------------------------------- */

/* ボタン */
.header__button {
    display: none;
}

@media screen and (max-width: 599px) {
    .header__button {
        position: fixed;
        top: 0;
        right: 0;
    
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
    
        width: 80px;
        height: 80px;
    
        border: none;
        background-color: transparent;
    
        color: #000;
        
    }
}
    @media screen and (max-width: 599px) {
    .header__button span {
        display: block;
        position: relative;
        top: 0;
        margin: -10px auto 0 auto;
        width: 30px;
        height: 3px;
        background-color: #666;
        transition: .3s ease;
    }
    
    .header__button span::before,
    .header__button span::after {
        content: ' ';
        display: block;
        position: absolute;
        left: 0;
        width: 100%;
        height: 3px;
        transition: all .3s;
        background-color: inherit;
    }
    
    .header__button span::before {
        top: -9px;
    }
    
    .header__button span::after {
        top: 9px;
    }
    
    body.open .header__button {
        z-index: 11;
    }

    body.open .header__button span,
    body.top.open .header__button span {
        width: 30px;
        background-color: transparent;
    }

    body.open .header__button span::before,
    body.open .header__button span::after {
        top: 0;
        background-color: #fff;
    }
    
    body.open .header__button span::before {
        transform: rotate(45deg);
    }

    body.open .header__button span::after {
        transform: rotate(-45deg);
    }
}

/* ナビメニュー */

.header__nav {
    display: flex;
    justify-content: center;
    flex-direction: row;

    list-style: none;
    
    background-color: #009999;
    color: #fff;

    transform: none;
    padding: 20px;
    margin: 0;
}

body.top .header__nav a  {
    color: #fff;
}

.header__item:nth-child(n+2) {
    margin-top:0;
    margin-left: 2em;
}



@media screen and (max-width: 599px) {
    .header__nav {
        background-color: #009999;
    
        list-style :none;
        margin: 0;
        padding: 0;
    
        position: fixed;
        top:0;
        right: 0;
        width: 100%;
        height: 100%;
        background-color: rgba(000,000,000, .7);

        z-index: 10;
    
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
    
        font-size: 21px;
        font-family: 'Open Sans', sans-serif;
        transition: .3s ease;
        transform: translateX(100%);
    }
    
    body.open .header__nav {
        transform: translateX(0);
    }
    
    .header__nav a {
        color: #fff;
        text-decoration: none;
    }
    
    .header__nav .header__item {
        text-align: center;
        margin-top: 2em;
    }

    .header__item:nth-child(n+2) {
        margin-top:2em;
        margin-left: 0;
    }
}

/*------------------------------
--メイン
------------------------------*/
.main {
    padding: 20px;
    background: #ccffff url(../img/fv__bg__img.png) no-repeat bottom right;
    background-size: 45%;
}

@media screen and (max-width: 599px) {
    .main {
        padding: 20px;
        padding-top: 20px;

        background: #ccffff; 
    }
}

/* ページタイトル
-------------------------------------- */
.page-title {
    font-size: 42px;
    margin-bottom: 40px;

    text-align: center;

    color: #009999;
}

@media screen and (max-width: 599px) {
    .page-title {
        margin-bottom: 20px;
        font-size: 36px;
        text-align: center;
        font-family: 'Open Sans', sans-serif;
        line-height: 1;
    }
}

/*------------------------------
--indexトップページ
------------------------------*/


/*ごあいさつ*/
.index__greeting {
    font-size: 21px;
    text-align: center;
}
.greeting__contact {
    text-decoration: none;
    color: #666;
}
@media screen and (max-width: 599px) {
.index__greeting {
    font-size: 15px;
}
}


/*slide*/

/* 複数画像切り替え---------------------------------------------- */
.slider-container {
    margin: 0 auto;
	position: relative; /* コンテナ内でスライド位置を相対的に設定 */
	width: 50%; /* コンテナ幅を100%に */
	height: 500px; /* コンテナの高さを固定 */
	overflow: hidden; /* スライドがコンテナ外に出ないように非表示 */
}

/*画像の配置*/
.slide__item {
	position: absolute; /* 位置を絶対指定で重ねて配置 */
    inset: 0; /*親要素内にフルサイズで配置*/
	opacity: 0; /* 初期状態で透明に */
	background-size: contain; /* 画像をスライド全体にカバー */
    background-repeat: no-repeat; /*画像の被り禁止*/
    background-position: center;
	animation: slideAnime 18s infinite; /* 1サイクル15秒を無限ループ */
}

/* スライド個別設定 */
.slide__item:nth-of-type(1) { background-image: url(../img/work_22.jpg); animation-delay: 0s; }
.slide__item:nth-of-type(2) { background-image: url(../img/work_17.jpg); animation-delay: 3s; }
.slide__item:nth-of-type(3) { background-image: url(../img/work_3.jpg); animation-delay: 6s; }
.slide__item:nth-of-type(4) { background-image: url(../img/work_4.jpg); animation-delay: 9s; }
.slide__item:nth-of-type(5) { background-image: url(../img/work_5.jpg); animation-delay: 12s; }
.slide__item:nth-of-type(6) { background-image: url(../img/work_6.jpg); animation-delay: 15s; }

/*タイミング設定*/
@keyframes slideAnime {
	0%, 30%, 100% { opacity: 0; } /* 非表示のタイミング */
	10%, 20% { opacity: 1; } /* 表示されるタイミング */
}

@media screen and (max-width: 599px) {

.slider-container {
	width: 70%; /* コンテナ幅を100%に */
	height: 300px; /* コンテナの高さを固定 */
	overflow: hidden; /* スライドがコンテナ外に出ないように非表示 */
}

/*画像の配置*/
.slide__item {
	position: absolute; /* 位置を絶対指定で重ねて配置 */
    inset: 0; /*親要素内にフルサイズで配置*/
	opacity: 0; /* 初期状態で透明に */
	background-size: contain; /* 画像をスライド全体にカバー */
}

}

/* メインコピー 4/16該当なし
-------------------------------------- */

.main-copy {
    font-size: 7.5vw;
    top: 50%;
}
.main-copy span {
    font-size:3vw;
    display: inline;
}
@media screen and (min-width:768px) {
    .main-copy {
        position: absolute;
        left: 50%;
        top: 36%;
        margin: 0;
        transform: translate(-50%, -50%);
    
        font-family: 'Open Sans', sans-serif;
        font-size:15vw;
        font-weight: 700;
        line-height: 1;
    }
    
    .main-copy span {
        font-size: 6vw;
        display: block;
    }
}



/*------------------------------
--Profile
------------------------------*/
body .profile {
    background-color: #ccffff;
}

.profile .main {
    background-color: #fff;
}

body.profile .header__nav a  {
    color: #fff;
}
.profile__content {
    display: flex;
    flex-direction: row-reverse;

    margin: 0 auto;
    max-width: 600px; 
    text-align: left;
}
.profile__portrait {
    width: 30%;

    text-align: left;
}
.profile__txt {
    width: 70%;
}

.profile__txt h5{
    margin-bottom: .5em;

    font-size: 18px;
}
.profile__photo img {
    
    width: 80px;
    height: 80px;
    
}
.profile__name {
    margin-left: 40px;
    font-size: 30px;

    text-align: left;
}

.profile__home {
    font-size: 18px;
    font-weight: normal;

    margin-bottom: 20px;
    margin-left: 40px;
}

.profile p {
    font-size: 13px;
}

@media screen and (max-width:599px) {
    .profile__content {
        display:flex;
        flex-direction: column;
    }
    .profile__portrait {
        width: 100%;
        text-align: center;
    }
    .profile__txt {
        width: 100%;
    }

    .profile__name {
        margin: 20px auto;
        font-size: 30px;
        text-align: center;
    }
    
    .profile__home {
        font-size: 18px;
        font-weight: normal;
    
        margin: 20px auto;
        text-align: center;
    }
    .profile__txt h5{
        font-size: 16px;
        margin-top: 0;
        padding: .5em;

        background-color: #009999;
        color: #fff;
    }
}
/*------------------------------
--Works
------------------------------*/
.works {
    text-align: center;
}
.works .header {
    background-color: #fff;
}
.works .header__nav a {
    color: #fff;
}

.works__txt {
    padding:16px;
}
.works__h3 {
    font-size: 21px;
    border-top: 1px solid #666;
    padding-top: 20px;
}

.works__list {
    list-style-type: none;

    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 20px;

}
.works__list img {
    width: 50%;
    height: auto;
}
.works__note {
    font-size: 9px;
}
@media screen and (max-width: 599px) {
    .works__list {
        list-style: none;
        margin: 0 auto;
        padding: 0;
    
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 20px;
        
    }

    .works__list li img {
        display: block;
        width: 100%;
    }
}
/*contactは現在サーバーのメールフォームを使用中*/
/*------------------------------
--Contact

.contact .header__nav a {
    color: #fff;
}
.contact__txt {
    text-align: left;
}
.contact__mail {
    text-decoration: none;
    color: #666;
}
.contact__form {
    text-align: left;
    margin-block: 40px;
}

.form__item {
    margin-block: 30px;
}
label {
    display: block;
    margin-bottom: 10px;

    font-size: 21px;
}

input[type=text],
input[type=email],
textarea{
    width: 75%;
    height: 2em;
    border-radius: 5px 5px 5px 5px;
    border: 1px solid #666;
}
textarea {
    max-width: 500px;
    height: 10em;
}
------------------------------*/

/*------------------------------
--フッター
------------------------------*/

body {
    display: flex;
    flex-direction: column;
}

.footer {
    padding: 20px;
    margin-top: auto;
    text-align: center;

    background-color: #009999;
}

.footer small {
    font-size: 11px;
    color: #fff;
}