@charset "UTF-8";

/* 共通部分
-----------------------------------------*/
html {
    font-size: 100%;
}

* {
    box-sizing: border-box;
}

body {
    background-color: #fffeee;
    background-image: url(../images/bg.webp);
    background-repeat: repeat-y;
    background-position: center;
    background-size: cover;

    font-family: "Zen Kaku Gothic New", "YuGothic", "游ゴシック体", sans-serif;
    line-height: 1.7;
    color: #000000;

    margin: 0;
    padding: 0;
}

a {
    text-decoration: none;
}

h1 {
    font-size: 48px;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 900;
    font-style: normal;
    margin: 0;
    padding: 0;
}

h2 {
    font-size: 32px;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
    margin: 0;
    padding: 0;
}

h3 {
    font-size: 24px;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
    margin: 0;
    padding: 0;
}

h4 {
    font-size: 20px;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
    margin: 0;
    padding: 0;
}

p {
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 16px;
    margin: 0;
    padding: 0;
}

small {
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 400;
    font-style: normal;
    font-size: 14px;
    margin: 0;
    padding: 0;
}

/* HEADER
-----------------------------------------*/
.logo {
    width: 50px;
    margin-top: 8px;
}

.main-nav {
    display: flex;
    text-transform: uppercase;
    margin-top: 8px;
    list-style: none;
}

.main-nav li {
    margin-left: 16px;
    margin-right: 16px;
}

.main-nav a {
    color: #000000;
}

.main-nav a:hover {
    color: #432;
}

.fullsize-header {
    width: 100%;
    height: 80px;
    background-color: #ffffff;
    padding: none;
    margin: none;
}

.page-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.wrapper-header {
    max-width: 1440px;
    height: 80px;
    margin: 0 auto;
    padding: 0 3%;
}

/* FOOTER
-----------------------------------------*/
.logo {
    width: 50px;
    margin-top: 8px;
}

.footer-icon {
    display: flex;
    flex-direction: row;
    gap: 32px;

}

.footer-nav {
    display: flex;
    text-transform: uppercase;
    margin-top: 8px;
    list-style: none;
}

.footer-nav li {
    margin-left: 16px;
    margin-right: 16px;
}

.footer-nav a {
    color: #ffffff;
}

.footer-nav a:hover {
    color: #432;
}

.fullsize-footer {
    width: 100%;
    height: 240px;
    background-color: #80d3d9;
    background-image: linear-gradient(90deg, #80d3d9, #b0d0e0);
    padding: none;
    margin: none;
}

.page-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.wrapper-footer {
    max-width: 1440px;
    height: 240px;
    margin: 0 auto;
    padding: 0 3%;
}

/* MAIN
-----------------------------------------*/

.wrapper-1200 {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
    box-sizing: border-box;
}

.left-content {
    text-align: left;
}

/* TOP関連
-----------------------------------------*/
/* firstview -------------------*/
.main-copy {
    font-size: 72px;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 900;
    font-style: normal;

    display: flex;
    justify-content: flex-end;
}

.firstview {
    width: 100%;
    height: 800px;
    background-color: #fffeee;
    background-image: url(../images/top/_DSF6905_.jpg);
    background-size: cover;
    padding: none;
    margin: none;
}

/* その他 -------------------*/
.yokonarabi {
    display: flex;
    justify-content: space-between;
}

.about-color {
    background-color: #80d3d9;
}

.forpartner-text {
    margin: 0 auto;
    text-align: center;
    width: 840px;
}

.works-back {
    width: 100%;

    background: linear-gradient(45deg, #a0830b, #e9bc00, #a0550b);
    /*グラデーションを定義*/
    background-size: 200% 200%;
    /*サイズを大きくひきのばす*/
    animation: bggradient 20s ease infinite;
}

@keyframes bggradient {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

/* SERVICE関連
-----------------------------------------*/
.text-wrapper {
    max-width: 960px;
    margin: 0 auto;
    box-sizing: border-box;
}


/* WORKS関連
-----------------------------------------*/
.wrapper-works {
    margin: 0 auto;
    padding: 0 3% 0 10%;
    box-sizing: border-box;
}

/*==================================================
モーダルのためのcss
===================================*/
/*全て共通：hideエリアをはじめは非表示*/
.hide-area {
    display: none;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 1440px;
    height: 100%;
    background-color: rgba(0, 0, 0, 256.5);
    animation: fadeIn 0.3s ease;


}

/*全て共通：モーダルのボタンの色を変更したい場合*/
.modaal-close:after,
.modaal-close:before {
    background: #666;
}

.modaal-close:focus:after,
.modaal-close:focus:before,
.modaal-close:hover:after,
.modaal-close:hover:before {
    background: #000000;
}

.modaal-container {
    max-width: 1120px;
    /* 最大幅 */
    width: 70%;
    /* 画面幅の割合 */
    height: auto;
    /* 高さ自動 */
}

.modaal-image {
    margin-top: 16px;
    width: 40%;
    aspect-ratio: 2 / 3;
    border-radius: 8px;
    object-fit: cover;
    overflow: hidden;
}

.modaal-text {
    margin-top: 16px;
    width: 50%;
    display: flex;
    flex-wrap: wrap;
    align-content: stretch;
}

.work-data{
    width: 100%;
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    text-align: right;
   

}
.work-data ul {
    display: flex;
    margin-top: 8px;
    list-style: none;
    margin-bottom: 0;
}

.work-data li {
    font-size:14px;
    margin-left: 16px;
    
}



/*==================================================
モーダルのためのcss
===================================*/
/*==================================================
ギャラリーのためのcss
===================================*/
.gallery {
    columns: 3;
    /*段組みの数*/
    padding: 0;
    gap: 3%;
    /*ギャラリー左右に余白をつける*/
}

.gallery li {
    margin-bottom: 32px;
    /*各画像下に余白をつける*/
    list-style: none;

}

/*ギャラリー内のイメージは横幅100%にする*/
.gallery img {

    object-fit: cover;
    overflow: hidden;
    vertical-align: bottom;
    /*画像の下にできる余白を削除*/
}

/*　横幅900px以下の段組み設定　*/
@media only screen and (max-width: 900px) {
    .gallery {
        columns: 3;
    }
}

@media only screen and (max-width: 768px) {
    .gallery {
        columns: 2;
    }
}

/*==================================================
ギャラリーのためのcss
===================================*/





/* 要素の設定（見出し、ボタン、画像）
-----------------------------------------*/
/* 見出し -------------------*/
.wrapper-title {
    padding: 0 3%;
}

.section-title h1 {
    font-family: "helvetica", sans-serif;
    font-style: bold;
    margin: 0;
    height: 64px;
}

.section-title h4 {
    margin: 0;
}

/* ボタン -------------------*/
.button-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 24px 40px;
    margin-top: 72px;
    background-image: linear-gradient(90deg, rgba(233, 84, 100, 1), rgba(220, 83, 67, 1));
    border-radius: 8px;
    text-decoration: none;
    color: #fff;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    width: 400px;
    max-width: 100%;
    /* 画面幅を超えないように */
    box-sizing: border-box;
    /* paddingを含めた幅計算 */
}

.icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    font-size: 24px;
    color: #ffffff;
}

.content {
    flex: 1;
    display: flex;
    min-width: 0;
    /* テキストの折り返しを適切に */
}

.title {
    font-size: 20px;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 700;
    font-style: normal;
}

.button-link:hover {
    background-image: linear-gradient(90deg, rgb(0, 0, 0), rgba(0, 0, 0, 1));
    transform: scale(0.97);
}

.button-link:active {
    transform: scale(0.95);
}

/* ライン -------------------*/
.line {
    width: 100%;
    height: 80px;
    border-bottom: 1px solid #000000;
}

.line2 {
    width: 100%;
    height: 16px;
    border-bottom: 1px solid #000000;
}

/* カード -------------------*/
.card-img {
    width: 840px;
    height: 320px;
    margin-top: 80px;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    transition: all 0.3s ease;
    box-sizing: border-box;
    color: #000000;
}

.card-img img {
    width: 480px;
    height: 320px;
    display: block;
}

.card-content {
    margin-left: auto;
    margin-right: 0;
    text-align: left;
    padding: 40px;
}

/*-カード内矢印-*/
.arrow {
    position: relative;
    display: inline-block;
    width: 240px;
    height: 2px;
    margin-top: 29px;
    border-radius: 9999px;
    background-color: #000000;
}

.arrow::before {
    content: "";
    position: absolute;
    top: calc(50% - 2px);
    right: 0;
    width: 45px;
    height: 2px;
    border-radius: 9999px;
    background-color: #000000;
    transform: rotate(45deg);
    transform-origin: calc(100% - 2px) 50%;
}

.card-img:hover {
    background: #f1f1f1;
    transform: scale(0.97);
}

.card-img:active {
    transform: scale(0.95);
}

/* 画像 -------------------*/
img {
    max-width: 100%;
    object-fit: cover;
}

.cover1 img {
    width: 480px;
    height: 720px;
    border-radius: 8px;
}

.cover2 img {
    width: 520px;
    height: 344px;
    border-radius: 8px;
}

.cover3 img {
    width: 480px;
    height: 480px;
    border-radius: 8px;
}

.cover4 img {
    width: 480px;
    height: 320px;
    border-radius: 8px;
}

.cover5 img {
    width: 720px;
    height: 480px;
    border-radius: 8px;
}

.cover6 img {
    width: 320px;
    height: 480px;
    border-radius: 8px;
}

.cover7 img {
    width: 22vw;
    aspect-ratio: 1 / 1;
    border-radius: 8px;
}

.cover8 img {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 8px;
}

.image {
    border-radius: 8px;
}

.image-bigsize img {

    width: 480px;
    /* 親要素に対する割合で指定 */
    height: auto;
    /* 高さを自動調整して比率を保持 */
}


/* スライドショー -------------------*/
/*==================================================
スライダーのためのcss
===================================*/

.slider {
    margin-top: 80px;
    padding: 0;
}

.slider img {
    /*スライダー内の画像を横幅100%に*/
    max-width: 400px;
    max-height: 400px;
    object-fit: cover;
    overflow: hidden;

}

/*slickのJSで書かれるタグ内、スライド左右の余白調整*/

.slider .slick-slide {
    margin: 0 8px;
    /*スライド左右の余白調整*/
}

/*==================================================
スライダーのためのcss
===================================*/




/* アコーディオン -------------------*/
/*アコーディオン全体*/
.accordion-area {
    list-style: none;
    width: 90%;
    max-width: 960px;
    margin: 0 auto;
}

.accordion-area li {
    margin: 0 0;
}

.accordion-area section {
    border-bottom: 1px solid #000000;
}

/*質問ジャンル*/
.q-genre {
    padding: 4% 2% 2% 0;
}

/*質問タイトル*/
.q-title {
    position: relative;
    /*+マークの位置基準とするためrelative指定*/
    cursor: pointer;
    padding: 2% 2% 2% 50px;
    transition: all .5s ease;
}

/*アイコンの＋と×*/
.q-title::before,
.q-title::after {
    position: absolute;
    content: '';
    width: 15px;
    height: 2px;
    background-color: #333;

}

.q-title::before {
    top: 48%;
    left: 15px;
    transform: rotate(0deg);

}

.q-title::after {
    top: 48%;
    left: 15px;
    transform: rotate(90deg);

}

/*　closeというクラスがついたら形状変化　*/
.q-title.close::before {
    transform: rotate(45deg);
}

.q-title.close::after {
    transform: rotate(-45deg);
}

/*アコーディオンで現れるエリア*/
.answer-box {
    display: none;
    /*はじめは非表示*/
    background: #ffffff;
    margin: 0 3% 3% 3%;
    padding: 3%;
}