@charset "utf-8";

/* -----------------------------統一設定 ここから----------------------------- */
:root {
    /* --- カラー（Color） --- */
    --base-color: #e5e7eb; /* 背景色 */
    --main-color: #0f172a; /* メインカラー */
    --accent-color: #38bdf8; /* アクセント（ボタンなど） */
    --accent-color-sub: #f59e0b; /* アクセント（ボタンなど） */

    --h1-white-color: #ffffff;
    /* --h1-black-color: #020617; こんかい使わない */
    --h23-color: #0f172a; /* 見出しの色 メインと同じ*/
    --text-color: #0f172a; /* 基本の文字色 */

    --subtext-color: #475569; /*補足テキスト */
    --ui-color: #ffffff; /* ホワイト要素 */

    --form-border-color: rgba(
        2,
        6,
        23,
        0.08
    ); /* 半透明　セッション、ボタンなどに利用 */
    --form-bg-color: #ffffff; /* フォームバックグラウンド */

    /* グラデーションも変数として登録できる 上から下*/
    /* --sheet-gradient: linear-gradient(
        to bottom,
        var(--sheet-color_concept_light),
        var(--sheet-color_concept_dark)
    ); */

    /* ドロップシャドウ */
    --drop-shadow: drop-shadow(8px 8px 8px rgba(0, 0, 0, 0.8));
    --drop-shadow-btn: drop-shadow(0px 4px 4px rgba(0, 0, 0, 0.25));
    --card-drop-shadow: drop-shadow(8px 8px 8px rgba(0, 0, 0, 0.25));
    /* ① 名前画像専用の影を追加 */
    --drop-shadow-name: drop-shadow(0px 10px 20px rgba(0, 0, 0, 0.1));
    /*  ↑X軸0でオフセットなし  ↑ぼかしを広く  ↑濃度を下げる */

    /* --- フォントウェイト（太さ） --- */
    --fw-bold: 700; /* ボールド（太字） */
    --fw-medium: 500; /* ミディアム（中太） */
    --fw-regular: 400; /* レギュラー（標準） */

    /*  --- ボタンの枠太さと色 ---  */
    /* --border-button-bold_color: 3px solid #d8d3cf; ボタンの枠の太さ */
    --border-button-radius: 24px; /* 枠の丸み */

    /* --- フォントサイズ --- */
    --fs-h1: clamp(36px, 5vw, 64px);
    --fs-h2: clamp(20px, 4vw, 48px); /* 固定→clampに変更推奨 */
    --fs-h2-sub: clamp(19px, 3vw, 36px);
    --fs-h3: clamp(18px, 2vw, 24px); /* 固定→clampに変更推奨 */
    --fs-h4: clamp(16px, 1.6vw, 20px); /* 2vw → 1.6vwに修正 */
    --fs-h5: clamp(12px, 1.4vw, 18px);
    --fs-text-bold: clamp(14px, 1.2vw, 16px);
    /* --fs-Catch-middle-bold: 24px; */
    /* --fs-Catch-large-bold: 48px;  */
    --fs-text: clamp(14px, 1.2vw, 16px);
    --fs-low: clamp(10px, 1vw, 12px);

    /* --- フォント種類 --- */
    /* Google Fontsを読み込む */
    --font-Play-en-serif: 'Playfair Display', serif;
    --font-Inter-en-sans: 'Inter', sans-serif;
    --font-Noto-jp-sans: 'Noto Sans JP', sans-serif;

    /* 行間 line-height */
    --lh-h1-fv-copy: 1.1; /* 見出し */
    --lh-h2-sub: 1.8; /* h2の日本語サブタイトル */
    --lh-h3h4: 1.2; /* ゆったり */
    --lh-cardcatchcopy: 1.2; /* カードのキャッチコピー */
    --lh-workscatchcopy: 1.5; /* worksのキャッチコピー */
    --lh-text-bold: 1.2; /* テキストの太文字日本語文字行間 */
    --lh-text: 1.8; /* テキストの日本語文字行間 */
    --lh-text-low: 1.6; /* テキストの小日本語文字行間 */

    /* 文字間 letter-spacing */
    --ls-h1-fv-copy: 0.1em; /* h1のキャッチコピー */
    --ls-text: 0.1em; /* テキストの日本語文字間 */
    --ls-h3h4: 0.05em; /* h3の日本語見出し */
    --ls-cardcatchcopy: 0.08em; /* カードのキャッチコピー */
    --ls-text-low: 0.1em; /* テキストの小日本語文字行間 */
}

/* h3の設定統合 */
h3 {
    font-family: var(--font-Noto-jp-sans);
    font-size: var(--fs-h3);
    font-weight: var(--fw-bold);
    line-height: var(--lh-h3h4);
    letter-spacing: var(--ls-h3h4);
}

/* h4の設定統合 */
h4 {
    font-family: var(--font-Noto-jp-sans);
    font-size: var(--fs-h4);
    font-weight: var(--fw-bold);
    line-height: var(--lh-h3h4);
    letter-spacing: var(--ls-h3h4);
}

/* 通常文字統合 */
p {
    font-family: var(--font-Noto-jp-sans);
    font-size: var(--fs-text);
    line-height: var(--lh-text);
    letter-spacing: var(--ls-text);
}

/* -----------------------------body ここから--- */
/* body {
    font-family: var(--font-Noto-jp-sans);

    background-color: var(--base-color);
    color: var(--text-color);
} */

/* -----------------------------統一設定 ここまで----------------------------- */

/* -----------------------------ローディング画面 ここから----------------------------- */
/* ローディング全体 */
#loading {
    position: fixed;
    inset: 0;
    background: var(--base-color);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 99999;
}

/* 円のローダー */
.loader {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    border: 6px solid var(--subtext-color);
    border-top: 6px solid var(--main-color);
    animation: spin 1s linear infinite;
}

/* テキスト */
.loading-text {
    margin-top: 16px;
    font-size: 1rem;
    letter-spacing: 0.08em;
    font-family: var(--font-Inter-en-sans);
    color: var(--main-color);
}

/* 回転アニメーション */
/* @keyframesは設計図、spin というアニメの動きを作る */
@keyframes spin {
    /* rotate(0deg) 回ってないスタート時 */
    0% {
        transform: rotate(0deg);
    }
    /* rotate(360deg) 1回転 終了時*/
    100% {
        transform: rotate(360deg);
    }
}

/* -----------------------------header ここから----------------------------- */
/* ヘッダー全体のスタイル */
header {
    display: flex; /* 横並び */
    justify-content: space-between; /* ロゴとメニューを分ける */
    align-items: center; /* 上下の中央揃い */

    /* 2. サイズの設定 */
    width: 100%; /* 横いっぱい */
    height: 80px; /* figmaのデザインの高さ */

    /* 3. 余白と位置の設定 */
    margin: 0 auto; /* 中央揃え */
    padding: 0 40px; /* figmaの左右の余白 ロゴが端っこにぶつからないように */

    position: fixed; /* 画面に固定する */
    top: 0; /* 画面の一番上に貼り付ける */
    left: 0; /* 左端から */
    z-index: 9990; /* 他の要素より前面に出す */

    /* ‐‐‐‐header通常時 */
    background-color: var(--main-color); /* 背景色 */
    transition: 0.3s; /* 変化を0.3秒かけて滑らかにする */
}

/* ナビリンク */
.h-nav-list a {
    color: var(--base-color); /* 文字色 */
    transition: 0.3s; /* 変化を0.3秒かけて滑らかにする */
}

/* -----------------------------header-logoサイズ ここから----------------------------- */
.header-logo {
    width: 75px;
    height: auto;
}

/* PCではハンバーガーメニュー自体を非表示 */
.h-hamburger {
    display: none; /* PCでは丸ごと隠す */
}
/* -----------------------------h-nav-list ここから----------------------------- */
.h-nav-list {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 40px;
}

.h-nav-list a {
    color: var(--base-color);
    font-family: var(--font-Inter-en-sans);
    font-weight: var(--fw-bold);
}

/* -----------------------------fv ここから----------------------------- */
.fv {
    position: relative;
    width: 100%;
    height: 100vh; /* 画面いっぱいの高さ */
    background-color: var(--main-color); /* 背景色 */
    overflow: hidden; /* 煙がはみ出しても大丈夫なように */
    display: flex;
    align-items: center;
    justify-content: center;
}

/* -----------------------------smoke ここから--- */
/* 煙のレイヤー：背景として固定 */
.fv-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1; /* 重なりの順序：奥 */
}

/* 4枚を同じ場所に重ねる 
綺麗できないので考える*/
.smoke {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 180%;
    height: 180%;

    object-fit: cover;
    transform: translate(-50%, -50%);
}

/* 煙② 中央に固定する 少しずつ移動する 大きくなって消える x横揺れ y上　scale広がる*/
@keyframes smoke1 {
    0% {
        transform: translate(-50%, -50%) translate(0px, 0px) scale(1);
        opacity: 0;
    }
    20% {
        transform: translate(-50%, -50%) translate(-8px, -40px) scale(1.08);
        opacity: 0.5;
    }
    55% {
        transform: translate(-50%, -50%) translate(12px, -90px) scale(1.18);
        opacity: 0.3;
    }
    100% {
        transform: translate(-50%, -50%) translate(-5px, -140px) scale(1.3);
        opacity: 0;
    }
}

@keyframes smoke2 {
    0% {
        transform: translate(-50%, -50%) translate(0px, 0px) scale(1);
        opacity: 0;
    }
    20% {
        transform: translate(-50%, -50%) translate(-8px, -40px) scale(1.08);
        opacity: 0.5;
    }
    55% {
        transform: translate(-50%, -50%) translate(12px, -90px) scale(1.18);
        opacity: 0.3;
    }
    100% {
        transform: translate(-50%, -50%) translate(-5px, -140px) scale(1.3);
        opacity: 0;
    }
}

/* 煙③  */
@keyframes smoke3 {
    0% {
        transform: translate(-50%, -50%) translate(0px, 0px) scale(1);
        opacity: 0;
    }
    20% {
        transform: translate(-50%, -50%) translate(-8px, -40px) scale(1.08);
        opacity: 0.5;
    }
    55% {
        transform: translate(-50%, -50%) translate(12px, -90px) scale(1.18);
        opacity: 0.3;
    }
    100% {
        transform: translate(-50%, -50%) translate(-5px, -140px) scale(1.3);
        opacity: 0;
    }
}

/* 煙④  */
@keyframes smoke4 {
    0% {
        transform: translate(-50%, -50%) translate(0px, 0px) scale(1);
        opacity: 0;
    }
    20% {
        transform: translate(-50%, -50%) translate(-8px, -40px) scale(1.08);
        opacity: 0.5;
    }
    55% {
        transform: translate(-50%, -50%) translate(12px, -90px) scale(1.18);
        opacity: 0.3;
    }
    100% {
        transform: translate(-50%, -50%) translate(-5px, -140px) scale(1.3);
        opacity: 0;
    }
}

/* それぞれ速度もバラバラに */
.smoke-1 {
    animation: smoke1 8s ease-in-out infinite 0s;
}
.smoke-2 {
    animation: smoke2 11s ease-in-out infinite 2s;
}
.smoke-3 {
    animation: smoke3 9s ease-in-out infinite 4s;
}
.smoke-4 {
    animation: smoke4 13s ease-in-out infinite 1s;
}

/* -----------------------------h1ここから--- */
/* 名前用アニメーション */ /*  drop-shadowを残す */ /*  blur が白くなる原因 */

/* 【修正後】blur を完全削除、opacity だけでフェードイン */
/* blur の代わりに scale でぼやけた雰囲気を出す */
@keyframes fadeInName {
    0% {
        opacity: 0;
        transform: scale(1.04); /* 少し大きい状態からスタート */
    }
    100% {
        opacity: 1;
        transform: scale(1); /* 通常サイズに戻る */
    }
}

/* drop-shadow は静的に別で当てる */
.fv-name-first,
.fv-name-last {
    filter: var(--drop-shadow-name); /* アニメーションと分離して影を適用 */
    mix-blend-mode: screen; /* 黒背景では枠が完全に消える */
}

/* bothで対処 */
/* .fv-name img {
    opacity: 0; 
} */

/* 影専用：filterのみ、mix-blend-modeなし */
.fv-name-shadow {
    filter: var(--drop-shadow-name);
}

/* 外側のdivが mix-blend-mode を担当 */
.fv-name-wrap {
    mix-blend-mode: screen; /* 黒背景で枠を消す */
    /* filter: var(--drop-shadow-name);   */
}

/* imgは animation だけ担当（filter も mix-blend-mode も持たない） */
.fv-name-first {
    animation: fadeInName 1s ease both; /* フェードイン */
    animation-delay: 1.2s;
}

.fv-name-last {
    animation: fadeInName 1.2s ease both;
    animation-delay: 1.6s;
}

/* 文字アニメーション */
.fv-copy-lead,
.fv-copy-sub {
    max-width: 100%;
    color: var(--h1-white-color);
    font-family: var(--font-Noto-jp-sans);
    letter-spacing: var(--ls-h1-fv-copy);
    /* filter: var(--drop-shadow); */
    /* ← アニメーション外に移動 */

    opacity: 0; /* ① 最初は非表示 */
    animation: fadeInName 1.6s ease both; /* ② fadeInNameを流用 */
}

.fv-copy-lead {
    font-size: var(--fs-h2);
    line-height: var(--lh-h1-fv-copy);
    animation-delay: 2.1s; /* ③ 名前2枚目(2.1s)より後に開始 */
}

/* 文字アニメーション サブ追加*/
.fv-copy-sub {
    font-size: var(--fs-h2-sub);
    line-height: var(--lh-h2-sub);
    letter-spacing: var(--ls-h3h4);

    opacity: 0; /* ① 最初は非表示 */
    animation-delay: 2.5s;
}

.fv-en p {
    letter-spacing: 0.6em;
    font-family: var(--font-Inter-en-sans);
    font-size: var(--fs-h3);
    color: var(--h1-white-color);
    line-height: var(--lh-h3h4);

    opacity: 0; /* ① 最初は非表示 */
    animation: fadeInName 2.5s ease both; /* ② fadeInNameを流用 */
    animation-delay: 2.9s; /* ③ fv-copyより少し遅れて登場 */
}

/* drop-shadow は静的に */
.fv-name-first,
.fv-name-last,
.fv-copy,
.fv-en p {
    filter: var(--drop-shadow);
}

/* キャッチコピー */
.fv_catchcopy {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.fv-view {
    position: relative;
    z-index: 10; /* 重なりの順序：手前 */
    text-align: center;
}

/* --------------------------
---h1ここから----------------------------- */
/* h1非表示 */
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;

    clip-path: inset(50%);
    /* clip: rect(0, 0, 0, 0);　clip-path: inset(50%);が最新の様子 */
}

/* -----------------------------fv-view ここから----------------------------- */
.fv-view {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

/* -----------------------------fv_catchcopy_all ここから--- */
/* fv_catchcopy_all：子の画像幅に引っ張られないようにする */
.fv_catchcopy_all {
    width: 100%;
}

/* -----------------------------fv-name ここから--- */
.fv-name {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    width: 100%;
}

/* -----------------------------fv-copy ここから----------------------------- */
/* 文字幅を親にあわせる */
.fv-copy-all {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 32px;
}
/* 文字 */
/* .fv-copy {
    max-width: 100%;
    align-items: center;
    color: var(--h1-white-color);
    font-family: var(--font-Noto-jp-sans);
    font-size: var(--fs-h2);
    line-height: var(--lh-h1-fv-copy); 
    letter-spacing: var(--ls-h1-fv-copy); 
    filter: var(--drop-shadow); 
} */

/* .fv-en {
    font-family: var(--font-Inter-en-sans);
    font-size: var(--fs-h3);
    color: var(--h1-white-color);
    line-height: var(--lh-h3h4); 
    letter-spacing: var(--ls-h3h4); 
} */

/* 文字間を変更 */
/* .fv-en p {
    letter-spacing: 0.7em;
} */

.fv_catchcopy {
    margin-bottom: 96px;
}

/* -----------------------------.fv_button,ここから---- */
/* ボタン */
.fv_button {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%; /* ← .fv-cathcopy-allに合わせる */
}

.fv_button a {
    display: flex; /* 中身を自由自 */
    justify-content: center; /* 横の真ん中 */
    align-items: center; /* 縦の真ん中 */

    /* ボタンのサイズ */
    width: 250px;
    height: 52px;
    padding: 11px 24px;

    /* ボタンの文字と背景色 */
    background-color: var(--accent-color);
    color: var(--ui-color);
    font-family: var(--font-Inter-en-sans);
    font-size: var(--fs-h3);
    font-weight: var(--fw-bold);

    /* ボタンの枠 */
    /* border: 3px solid var(--border-color); */
    border-radius: var(--border-button-radius);
    filter: var(--drop-shadow-btn);

    /* 【追加】変化を0.3秒かけて滑らかにする hoverに記載するとマウスを離したときパッと消える*/
    transition: 0.3s;
}

.fv_button a.btn_rec:hover {
    background-color: var(--ui-color);
    color: var(--subtext-color);
    transform: translateY(-3px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
    border-radius: var(--border-button-radius);
}

/* -----------------------------.fv_scrollここから---- */
.scroll-indicator {
    padding: 16px;
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    color: var(--ui-color);
    font-size: 12px;
    font-family: var(--font-Play-en-serif);
    font-weight: var(--fw-bold);
    letter-spacing: 2px;
}

/* 線のscrollLine場合 */
/* .scroll-indicator::after {
    content: '';
    display: block;
    width: 1px;
    height: 40px;
    margin: 8px auto 0;
    background: var(--ui-color);
    animation: scrollLine 1.5s infinite;
} */

/* ▽ の場合 */
.scroll-indicator::after {
    content: '';
    display: block;
    margin: 12px auto 0;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 8px 6px 0 6px; /* 上・左右・下の順 */
    /* 上・右・下・左に色をつける transparent は「透明」*/
    border-color: var(--ui-color) transparent transparent transparent;

    /* ふわふわ動かすアニメーション */
    animation: scrollArrow 1.5s infinite;
}

/* ↓scrollArrow呼び出し */
@keyframes scrollArrow {
    0% {
        opacity: 0;
        transform: translateY(0);
    }
    50% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translateY(10px);
    }
}

/* -----------------------------サブタイトル統一設定 ここから----------------------------- */
.section_title {
    width: 100%;
}

h2 {
    display: flex;
    padding: 42px 38px 30px 38px;
    flex-direction: column;
    max-width: 560px;
    width: 100%;
    margin: 0 auto;
    align-items: center;

    position: relative; /* 疑似要素の基準にする */
    width: fit-content; /* 幅を中身（文字）に合わせることで、あしらいを文字のすぐ横に配置 */
}

h2,
.jp_sub,
.en_main {
    color: var(--h23-color);
}

.jp_sub {
    font-family: var(--font-Noto-jp-sans);
    font-size: var(--fs-text);
    line-height: var(--lh-h2-sub);
    margin-bottom: 8px;
}

.en_main {
    font-family: var(--font-Inter-en-sans);
    font-size: var(--fs-h2);

    display: flex;
    align-items: center; /* 垂直方向の中央揃え */
    justify-content: center;
    gap: 32px; /* 文字と画像の間の距離 */
}

/* 左側のあしらい */
.en_main::before {
    content: '';
    display: inline-block;
    width: 123px; /* 画像の幅 */
    height: 42px;
    background-image: url('../img/ashi_left.png');
    background-size: contain;
    background-repeat: no-repeat;
}

/* 右側のあしらい */
.en_main::after {
    content: '';
    display: inline-block;
    width: 123px; /* 画像の幅 */
    height: 42px;
    background-image: url('../img/ashi_right.png');
    background-size: contain;
    background-repeat: no-repeat;
}

/* -----------------------------WORKS ここから----------------------------- */
/* -----------------------------accordion ここから--- */

/* .accordion-all{
    display: flex;
    align-items: center;
    justify-content: center;
} */

/* パララックス設定 #title_about*/
#title_works {
    /* 背景画像の設定 */
    background-image: url('../img/kudou_logo_background.png');
    background-attachment: fixed; /* ★これがパララックス：背景を固定 */
    background-position: center;

    background-size: 50%; /* 横幅に対して50%の大きさで表示 */
    background-repeat: no-repeat; /* 小さくした時に画像が並ばないようにする */
    min-height: 100vh; /* ← 高さを確保する */
}

/* 全体の固定はこれで可能だが、間の固定方法は上記になる */
/* background-image: url('../img/Bg_Img.png');
    background-repeat: no-repeat; 
    background-size: cover; 
    background-position: right; 
    position: fixed; 
    inset: 0; 
    z-index: -1;  */

/* パラックス表示のため、iPhoneのWebKit（Chrome・Safari両方）に対応 */
/* @supports をmediaに記載 */

/* アコーディオン */
.accordion {
    width: 100%;
    margin: 0 auto;
    max-width: 500px;
}

/* accordion直下の最初のdtの次にあるddを表示 */
/* .accordion > dt:first-of-type + dd {
    display: block;
} */

/* 中身を隠しておく */
.accordion dd {
    display: none;
    padding-left: 1.5em;
}

/* 開いた状態 */
.accordion dd.is-open {
    display: block;
}

/* クリックできる見た目 */
.accordion dt {
    cursor: pointer;
    font-weight: bold;
    margin-top: 8px;
}

/* accordion活性化した時のスタイル ▶*/
.accordion dt {
    cursor: pointer;
    position: relative;
    padding: 0 24px;
}

/* アコーディオン段落 */
.accordion-1 {
    margin-left: 1em;
    padding-left: 1.5em;
}
.accordion-2 {
    margin-left: 1em;
    padding-left: 1.5em;
    color: var(--subtext-color);
}

.accordion-3,
.accordion-3 dd {
    padding-left: 1.5em;
}

/* 開いている時はddを表示 */
/* .accordion dt.is-active + dd {
    display: block;
} */

/* ▶ デフォルト（閉じているとき） */
.accordion dt::before {
    content: '▶';
    position: absolute;
    left: 0;
}

/* ▽ 開いているとき ★ここを追加 */
.accordion dt.is-open::before {
    content: '▽';
}
/* -----------------------------カードレイアウト ここから--- */
/* カテゴリ */
.works-category {
    display: block;
    /* ブロックにしてmarginautoきかせる */
    width: fit-content;
    /* 中の要素をぴったりあわせる */
    margin: 80px auto 20px;
    padding: 16px;

    font-size: var(--fs-h3);
    font-weight: var(--fw-bold);
    line-height: var(--lh-h3h4);
    letter-spacing: var(--ls-h3h4);

    border: 1px solid var(--h23-color);
    color: var(--h23-color);
}

.works-list {
    display: grid;
    /* 1列の幅を均等(1fr)にして、それを2つ(2)並べる */
    grid-template-columns: repeat(2, 1fr);
    gap: 60px 120px; /* 上下 左右の余白 */
    max-width: 1320px;
    margin: 72px auto;
    list-style: none;
    padding: 0 16px;
}

/* スマホ対応：1列に切り替え */
@media (max-width: 768px) {
    .works-list {
        grid-template-columns: 1fr; /* 1列にするだけ */
        gap: 40px;
        padding: 0 20px;
    }
}

.works-item {
    max-width: 599.95px;
    width: 100%;
    /* max-height: 680px; */
    background-color: var(--ui-color);

    border-radius: 24px 24px 0 0; /* カードの土台も丸める */
    overflow: hidden; /* 土台からはみ出すものを全てカット */
    filter: var(--card-drop-shadow);

    /* 変化を滑らかにする */
}

/* ホバーはJSより後に記載する */

/* 画像エリア */
/* 全カードの画像エリアを同じ高さに統一 */
.card-img {
    width: 100%;
    height: auto; /* ← 高さを固定340→auto */
    overflow: hidden; /* ← はみ出した分を切る */
}

.card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* ← 比率を保ちながら340pxに収める */
}

/* カードシナジアロゴSVGへ変更して背景に色 */
.card-img-syne {
    max-width: 600px;
    padding: 1px;
    background-color: #f3f2f2;
    display: flex; /* ← imgを中央揃えするため */
    align-items: center; /* ← 上下中央 */
    justify-content: center; /* ← 左右中央 */
}

.card-img-syne img {
    /* padding: 16px; */
    width: 100%;
    height: 100%; /* ← 親の340pxに合わせる */
    object-fit: contain; /* ← SVGは全体を表示させる */
}

/* カードバナー 背景ない且つjpgなのでpaddingに色*/
.card-img-banner {
    max-width: 600px;
    height: auto;
    width: 100%;
    /* padding: 8.5px; */
    border: 1px solid var(--form-border-color);
}

.card-body {
    width: 100%; /* これで画像と同じ幅 */
    min-height: 340px; /* ← height → min-height に変える */
    margin: 0 auto;
    gap: 32px;

    display: flex;
    flex-direction: column; /* 中身を縦に並べる */
    align-items: center; /* 中身がすべて水平方向の中央 */
    text-align: center; /* テキスト自体も中央揃え */
    color: var(--text-color);

    padding: 40px 20px; /* 上下にたっぷりと、左右に余白 */
}

/* 各要素の間の「余白」を調整 */
.card-copy {
    font-family: var(--font-Noto-jp-sans);
    font-size: var(--fs-h4);
    font-weight: var(--fw-bold);
    line-height: var(--lh-h3h4);
    letter-spacing: var(--ls-cardcatchcopy);
}

.card-title {
    font-family: var(--font-Noto-jp-sans);
    font-size: var(--fs-h3);
    font-weight: var(--fw-bold);
    line-height: var(--lh-h3h4);
    letter-spacing: var(--ls-h3h4);
}

.card-line {
    width: 420px; /* 線の幅 */
    height: 1px;
    background-color: var(--h23-color);
}

.card-link {
    font-family: var(--font-Inter-en-sans);
    font-size: var(--fs-text);
    font-weight: var(--fw-regular);
    letter-spacing: var(--ls-cardcatchcopy);
    color: var(--accent-color);
    margin-top: auto;
    /* 調整必要かも 32pxからauto へ変更*/
}

/* -----------------------------プロフィール ここから----------------------------- */

.about-all {
    display: flex;
    align-items: flex-start; /* これで文字はタイトルのすぐ下（上端）に固定 */
    flex-wrap: wrap; /* スマホで折り返せるようにする */

    /* --- セクション自体を中央へ --- */
    max-width: 1440px; /* 最大幅 */
    margin: 0 auto; /* 左右の余白を自動にして中央へ */
}

.profile {
    max-width: 874px;
    width: 100%;
    padding: 42px 96px;
    flex: 0 0 65%; /* PCでは幅65% flex: [伸長係数] [収縮係数] [基準サイズ];*/
    z-index: 2;
    position: relative; /* z-indexを効かせるため */
}

.profile_img {
    flex: 0 0 45%; /* PCでは幅45% flex: [伸長係数] [収縮係数] [基準サイズ];+10になるが-10しているのでOK*/
    margin-left: -15%; /* ★少しだけ文字側に食い込ませる */
    z-index: 1;
    filter: grayscale(100%); /* モノクロ加工 */

    margin-top: 359px; /* 写真 */
    padding: 0 16px;
}

/* スマホ対応 */
@media (max-width: 768px) {
    .profile,
    .profile_img {
        flex: 0 0 100%; /* 両方横幅100%にする */
        margin-left: 0; /* 重なりを解除 */
        margin-top: 32px;
    }
}

/* -----------------------------スキル ここから----------------------------- */

.skill-list {
    max-width: 1000px; /* 最大幅 */
    margin: 0 auto; /* 左右の余白を自動にして中央へ */

    display: flex;
    flex-direction: column;
    align-content: center;
    justify-content: center;
    flex-wrap: wrap; /* 自動改行 */
    gap: 32px; /* 塊ごとの隙間 */
    padding: 0 16px;
}

/* ul.sub-list の直下の li にだけ ● をつける */
ul.sub-list > li {
    list-style: disc; /* ● を表示 */
    margin-left: 1.2em; /* ● が見える分の左余白 */
}

ul.sub-list {
    padding-left: 1.2em; /* ← ここが「余白」→「●」の距離 */
}

.skill-items li {
    margin-bottom: 4px; /* 項目ごとの隙間 */
}

.skill-group {
    padding-bottom: 16px;
}

/* -----------------------------アニメーション ここから--- */
.facemove {
    max-width: 200px;
    height: auto;
    object-fit: contain;
    margin: 0 auto; /* ★アニメーション自体を中央へ */
    /* ★ここが最重要：白い背景だけをきれいに透過させる */
    mix-blend-mode: multiply;
    opacity: 0.5;
}

.facemove video {
    /* ← videoに直接サイズを指定 */
    width: 100%;
    height: auto;
    display: block;
}

/* -----------------------------contact_btn_wrap ここから--- */
/* ボタンの色などは統合 */
.contact_btn_wrap {
    margin: 32px 0;
}

/* ボタン */
.contact_btn_wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%; /* ← .fv-cathcopy-allに合わせる */
}

.contact_btn_wrap a {
    display: flex; /* 中身を自由自 */
    justify-content: center; /* 横の真ん中 */
    align-items: center; /* 縦の真ん中 */

    /* ボタンのサイズ */
    width: 250px;
    height: 52px;
    padding: 11px 24px;

    /* ボタンの文字と背景色 */
    background-color: var(--accent-color-sub);
    color: var(--text-color);
    font-family: var(--font-Inter-en-sans);
    font-size: var(--fs-h3);
    font-weight: var(--fw-bold);

    /* ボタンの枠 */
    /* border: 3px solid var(--border-color); */
    border-radius: var(--border-button-radius);
    filter: var(--drop-shadow-btn);

    /* 【追加】変化を0.3秒かけて滑らかにする hoverに記載するとマウスを離したときパッと消える*/
    transition: 0.3s;
}

.fv_button a.btn_rec:hover,
.contact_btn_wrap a.contact_btn:hover {
    background-color: var(--ui-color);
    color: var(--subtext-color);
    transform: translateY(-3px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
    border-radius: var(--border-button-radius);
}

/* -----------------------------footer ここから----------------------------- */
footer {
    width: 100%;
    height: auto;
    background-color: var(--main-color);
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-bottom: 16px;
}

.footer_logo img {
    width: 80px;
    height: auto;
}

small {
    font-family: var(--font-Play-en-serif);
    font-size: var(--fs-text);
    color: var(--base-color);
    font-weight: var(--fw-bold);
}

/* -----------------------------works ここから----------------------------- */
/* -----------------------------works 統一フォント設定 ここから---- */
/* ヘッダーの高さに合わせる */
.works-detail,
.contact-detail {
    margin-top: 80px;
}

.works-title {
    font-family: var(--font-Noto-jp-sans);
    font-weight: var(--fw-bold);
    font-size: var(--fs-h3);
    line-height: var(--lh-h3h4);
    letter-spacing: var(--ls-h3h4);
}

.works-catchcopy {
    font-family: var(--font-Noto-jp-sans);
    font-weight: var(--fw-bold);
    font-size: var(--fs-h4);
    line-height: var(--lh-workscatchcopy);
    letter-spacing: var(--ls-cardcatchcopy);
}

.works-sub-title {
    font-family: var(--font-Noto-jp-sans);
    font-weight: var(--fw-bold);
    font-size: var(--fs-h5);
    line-height: var(--lh-h3h4);
    letter-spacing: var(--ls-h3h4);
}

/* 2番目以降の項目を、点（・）ごと右にずらす */
.works-time-list li:not(:first-child) {
    list-style-position: inside; /* 点を内側に入れることで一緒に移動 */
}

.works-text-box p {
    font-family: var(--font-Noto-jp-sans);
    font-size: var(--fs-text);
    line-height: var(--lh-text);
    padding: 1em 0 0 1em;
}

.works-text-box li {
    font-family: var(--font-Noto-jp-sans);
    font-size: var(--fs-text);
    line-height: var(--lh-text);
    padding-top: 1em;
    list-style: disc;
    margin-left: 3em;
}

.works-text-box h3 {
    font-family: var(--font-Noto-jp-sans);
    font-weight: var(--fw-bold);
    font-size: var(--fs-text);
    line-height: var(--lh-h3h4);
    padding: 1em 0 0 1em;
}

.works-back {
    display: flex;
    justify-content: center;
    text-align: center;
    margin: 32px auto;
}

/* -----------------------------works 統一設定 ここから---- */
/* works title*/
.works-header-all {
    padding: 50px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 48px;
}

.works-catchcopy {
    text-align: left;
}

.works-container {
    display: flex;
    justify-content: center;
    gap: 42px;
    padding: 0 16px;
}

/* 左 */
.work-text {
    max-width: 800px;
}

/* 右 */
.works-visual-img {
    max-width: 600px;
}

.woerks-sp {
    max-width: 200px;
}

/* リセット */
.works-sub-title {
    padding: 0;
    margin: 0;
}

/* works-sectionの行間 */
.works-section {
    margin-bottom: 1em;
}

/* ボタン中央寄せ */
.works-btn-area {
    margin-top: 32px;
    display: flex;
    justify-content: center;
    gap: 68px;
}

/* ロゴsvg */
.works-img-syna {
    width: 100%; /* 親要素に対して一杯に広がろうとする（SVGの0問題を回避） */
    max-width: 600px; /* 600px以上には大きくしない */
    height: auto; /* 比率を維持 */
    display: block;
    background-color: #f3f2f2;
    padding: 4px;
    box-sizing: border-box; /* paddingで幅が突き抜けるのを防ぐ */
}
/* -----------------------------works ボタン統一設定 ここから---- */
/* btn-site */
/* .works-btn-area {
    display: flex;
    justify-content:  center;
    align-items: center;
    width: 100%;
} */

.btn-site {
    display: flex; /* 中身を自由自 */
    justify-content: center; /* 横の真ん中 */
    align-items: center; /* 縦の真ん中 */

    /* ボタンのサイズ */
    width: 250px;
    height: 52px;
    padding: 11px 24px;

    /* ボタンの文字と背景色 */
    background-color: var(--accent-color);
    color: var(--ui-color);

    /* ボタンの枠 */
    border-radius: var(--border-button-radius);
    filter: var(--drop-shadow-btn);

    /* 【追加】変化を0.3秒かけて滑らかにする hoverに記載するとマウスを離したときパッと消える*/
    transition: 0.3s;
}

.works-btn-area a.btn-site:hover {
    background-color: var(--ui-color);
    color: var(--subtext-color);
    transform: translateY(-3px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
    border-radius: var(--border-button-radius);
}

/* フォント */
.works-btn-area a.btn-site {
    font-family: var(--font-Noto-jp-sans);
    font-weight: var(--fw-bold);
    font-size: var(--fs-h4);
    letter-spacing: var(--ls-text-low);
}

/* もう一つのボタン */
/* btn-contact */
.works-btn-area a.btn-contact {
    display: flex; /* 中身を自由自 */
    justify-content: center; /* 横の真ん中 */
    align-items: center; /* 縦の真ん中 */

    /* ボタンのサイズ */
    width: 250px;
    height: 52px;
    padding: 11px 24px;

    /* ボタンの文字と背景色 */
    background-color: var(--accent-color-sub);
    color: var(--text-color);

    /* フォント */
    font-family: var(--font-Noto-jp-sans);
    font-weight: var(--fw-bold);
    font-size: var(--fs-h4);
    letter-spacing: var(--ls-text-low);

    /* ボタンの枠 */
    border-radius: var(--border-button-radius);
    filter: var(--drop-shadow-btn);

    /* 【追加】変化を0.3秒かけて滑らかにする hoverに記載するとマウスを離したときパッと消える*/
    transition: 0.3s;
}

.works-btn-area a.btn-contact:hover {
    background-color: var(--ui-color);
    color: var(--subtext-color);
    transform: translateY(-3px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
    border-radius: var(--border-button-radius);
}

/* -----------------------------btn-back ここから---- */
.works-back a.btn-back {
    font-family: var(--font-Inter-en-sans);
    font-weight: var(--fw-bold);
    font-size: var(--fs-text);
    color: var(--subtext-color);
}

/* -----------------------------works_banner ここから----------------------------- */

.works-visual-container {
    display: flex;
    flex-direction: column;
    width: 100%;
    align-items: center;
    gap: 96px;
}

.visual-block {
    display: flex;
    flex-direction: row;
    width: 100%;
    max-width: 1290px;
    gap: 40px;
    padding: 0 24px;
}

.visual-header {
    max-width: 600px;
    width: 100%;
}

/* 左 titleフォント */
span.block-number,
h2.block-title {
    font-size: var(--fs-h5);
    font-weight: var(--fw-bold);
    padding: 0;
    margin: 0;
}

h2.block-title {
    padding-bottom: 32px;
}

.works-img-detail {
    max-width: 600px;
    width: 100%;
}

/* 右 */
.visual-content,
.visual-text-box {
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: 600px;
    width: 100%;
    /* gap: 32px; */
}

/* チラシ用 */
.visual-content-flyer {
    display: flex;
    flex-direction: column;
    justify-content: start;
    max-width: 600px;
    width: 100%;
}

/* 画像の次の画像のTOPに余白 */
.visual-image-box + .visual-image-box {
    margin-top: 24px;
}

img.works-img-banner-lip {
    max-width: 396px;
    width: 100%;
}

img.works-img-banner-lip02 {
    /* max-width: 756px; */
    width: 100%;
}

/* リップだけ幅ちがうので左上書き */
.visual-header-lip {
    max-width: 396px;
    width: 100%;
}
/* リップ右 */
.visual-content-lip,
.visual-text-box-lip {
    /* 下記変更する可能性あり */
    max-width: 1000px;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.visual-text-box p {
    margin-bottom: 8px;
}

.design-concept-title {
    font-family: var(--font-Noto-jp-sans);
    font-weight: var(--fw-bold);
    font-size: var(--fs-text-bold);
    line-height: var(--lh-text-bold);
    padding-top: 32px;
}

/* li 要素に対して直接スタイルを当てる */
.visual-text-box ul li {
    display: list-item !important; /* block解除 */
    list-style-type: disc !important;
    margin-left: 32px; /* ポッチのスペース */
    margin-top: 32px;
}

.visual-text-box ul li:first-child {
    margin-top: 0px;
}

/* オフィシャルサイト用のクラス */
.works-live-link {
    margin-top: 16px;
}

/* ========================================
   Logo Design Collection
   左画像 + 右コンセプトレイアウト
======================================== */

/* ロゴ作品1件ごとのブロック */
.logo-work-item {
    display: flex;
    align-items: flex-start;
    gap: 48px;
    padding: 24px 0;
}

/* 左側画像エリア */
.logo-work-image {
    width: 38%;
    max-width: 380px;
    min-width: 280px;

    flex-shrink: 0; /* これを追加：文章がどんなに長くても、画像の箱は縮ませない */

    display: flex;
    justify-content: center;
    align-items: center;

    background-color: #ffffff;
    padding: 16px;
}

/* 右側文章 */
.works-logo-textarea {
    padding-top: 8px;
    min-width: 0; /* ①文章側が「縮めない」と誤解して溢れるのを防ぐ */
    overflow-wrap: break-word; /* ②長い単語やカタカナの連続でも、はみ出さず折り返す */
}

.works-logo-textarea > p {
    padding-top: 4px;
}

/* ロゴ箇条書き●有効 */
.logo-style-features li {
    list-style-type: disc;
}

/* ロゴ写真一覧 */
.logo-work-images {
    width: 100%;
    display: flex;
    flex-direction: row;
    justify-content: center;
}

/* -----------------------------contact ここから----------------------------- */

.contact_form {
    display: flex;
    flex-direction: column;
    align-items: center;

    color: var(--text-color);
    gap: 42px;
}

.contact_containers {
    width: 645px !important; /* max削除 googleに書き換えられるので強制。フォーム全体の最大幅 */
    /* width: 100%; */
    display: flex;
    flex-direction: column;
    gap: 42px;
    padding: 0 16px;
}

.form_item {
    display: flex;
    flex-direction: column;
    align-items: center;

    gap: 24px;
}

.form_item label {
    text-align: start;
    width: 100%;
    font-size: var(--fs-low);
    line-height: var(--lh-text-low);
    letter-spacing: var(--ls-text-low);
}

.contact-sub-text {
    font-size: var(--fs-low);
    line-height: var(--lh-text-low);
    letter-spacing: var(--ls-text-low);
    color: var(--subtext-color);
}

/* -----------------入力フォームの設定 */
/* 入力要素（input,  textarea） */
.form_item input,
.form_item textarea {
    width: 100%; /* 入力欄の幅を統一 */
    padding: 10px; /* 内側の余白を適切に */
    box-sizing: border-box; /* paddingを含めたサイズ計算にする */

    /* input自体にflexは通常不要 */
    border: 1px solid var(--subtext-color); /* 枠線 */
    background-color: #d9d9d9; /* 薄いグレー */
    transition: background-color 0.3s ease; /* 色の変化を滑らかに */
}

/* --- 入力中、または値がある時に白くする --- */
/* 1. フォーカスした時（入力しようとした時）に白くする */
.form_item input:focus,
.form_item textarea:focus {
    background-color: var(--form-bg-color);
    outline: none;
    /* ブラウザ標準の青枠を消す */
}

/* ブラウザの自動入力（オートコンプリート）の背景色を、
自分の変数に変えないと変更できない*/
.form_item input:-webkit-autofill,
.form_item textarea:-webkit-autofill {
    /* 背景色を var(--~color) で塗りつぶす */
    -webkit-box-shadow: 0 0 0px 1000px var(--base-color) inset !important;
    /* 文字の色も自分の設定に固定する */
    -webkit-text-fill-color: var(--text-color) !important;
}

/* 入力後に白にする（text / email / tel / textarea） */
.form_item input:not(:placeholder-shown),
.form_item textarea:not(:placeholder-shown) {
    background-color: var(--form-bg-color) !important;
}

/* selectは別処理 */
/* .form_item select:valid {
    background-color: var(--form-bg-color);
} */
/* ----------------- */

/* ボタンの配置 */
.btn_submit {
    display: flex; /* 中身を自由自 */
    justify-content: center; /* 横の真ん中 */
    align-items: center; /* 縦の真ん中 */

    /* ボタンのサイズ */
    width: 250px;
    height: 52px;
    padding: 11px 24px;

    /* ボタンの文字と背景色 */
    background-color: var(--accent-color);
    color: var(--ui-color);

    /* ボタンの枠 */
    border-radius: var(--border-button-radius);
    filter: var(--drop-shadow-btn);

    /* 【追加】変化を0.3秒かけて滑らかにする hoverに記載するとマウスを離したときパッと消える*/
    transition: 0.3s;
}

.btn_submit:hover {
    background-color: var(--ui-color);
    color: var(--subtext-color);
    transform: translateY(-3px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
    border-radius: var(--border-button-radius);
}

/* フォント */
.btn_submit {
    font-family: var(--font-Noto-jp-sans);
    font-weight: var(--fw-bold);
    font-size: var(--fs-h4);
    letter-spacing: var(--ls-text-low);
}

/* --------------- ふわっとJSで制御の箇所 ---------------*/
/* 最初は透明で、少し下に下げておく */
/* ease　最初ゆっくり→途中速く→最後ゆっくり */
/* 修正後 */
.works-item,
.about-all,
.skill-list {
    opacity: 0;
    transform: translateY(20px);
    transition:
        opacity 1.5s ease,
        transform 0.4s ease,
        box-shadow 0.4s ease;
}

/* is-activeがついたら元の場所に戻って表示される */
.works-item.is-active,
.about-all.is-active,
.skill-list.is-active {
    opacity: 1;
    transform: translateY(0);
}

/* ホバー時の動き */
.works-item:hover .card {
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.15); /* 左右上下ぼかし範囲px ホバー時に影を深くする */
}

/* ホバー時に画像を拡大 */
.works-item:hover {
    transform: translateY(-8px) scale(1.01); /* 拡大 */
}

/* --------------- コンテンツ不足のフッター下の余白制御の箇所 ---------------*/
/* コンタクトはコンテンツ少ないため、bodyをflexにする */
body {
    font-family: var(--font-Noto-jp-sans); /* ← 上から移動 */

    background-color: var(--base-color);
    color: var(--text-color);
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

/* mainを引き延ばす */
.works-detail,
.contact-detail {
    margin-top: 80px;
    flex-grow: 1; /* ← 追加：余った空間をmainが全部もらう */
}

/* -----------------------------PRIVACY POLICY ここから----------------------------- */
.pripol {
    font-size: var(--fs-h4);
}

.privacy-contents {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 32px;
}

.privacy-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start; /* center から flex-start に変更 */
    text-align: left; /* これはそのまま（行内の文字を左寄せにする） */
    color: var(--text-color);
    gap: 16px;
    max-width: 600px;
    width: 100%;
}

/* -----------------------------TOPのPRIVACY POLICY foodr表示 ここから----------------------------- */
.privacy {
    padding-top: 8px;
    color: var(--base-color);
    font-size: var(--fs-low);
}

/* --------------- sns-icons ここから 今後つけるかもしれない ---------------*/
/* リストを横に並べる */
.sns-icons {
    display: flex;
    gap: 20px;
    padding-bottom: 4px;
}

/* リンクの装飾を消す */
.sns-icons a {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* 初期状態（白）クリック前白 */
.sns-icons svg {
    width: 24px;
    height: 24px;
    fill: #e1306c;
    transition: 0.3s;
}

/* ホバーで色変化 */
.sns-icons a:hover .icon-instagram {
    fill: #fff;
}

/* SNS X */
.sns-icons .icon-x {
    fill: #ffffff; /* Xアイコンだけ白に上書き */
}

/* ホバーで色変化 */
.sns-icons a:hover .icon-x {
    fill: #000;
}

/* .sns-icons a:hover .icon-facebook {
    fill: #1877f2;
} */

/* Font Awesome専用の書き方 */
/* リストを横に並べる */
/* .sns-icons {
    display: flex;
    gap: 20px;  */
/* アイコンの間隔 */
/* padding-bottom: 4px;
} */

/* リンクの装飾を消す */
/* .sns-icons a {
    text-decoration: none;
    color: #333;
    font-size: 16px;
} */

/* アイコン個別に色をつける場合 */
/* .fa-instagram {
    color: #e1306c;
} */
/* インスタカラー */

/* .fa-facebook {
    color: #1877f2;
} */
/* Facebookの青 */

/* --------------- 実績タグ ここから ---------------*/
.card-img {
    position: relative;
}

.work-tag {
    position: absolute;
    top: 10px;
    right: 10px;
    padding: 4px 10px;
    font-size: 12px;
    border-radius: 4px;
    font-weight: 600;
    backdrop-filter: blur(30px);
}

/* 実案件 */
.tag-client {
    background: rgba(255, 100, 100, 0.15);
    color: #d6336c;
    border: 1px solid rgba(255, 100, 100, 0.4);
}

/* 自主制作 */
.tag-self {
    background: rgba(100, 150, 255, 0.15);
    color: #1c7ed6;
    border: 1px solid rgba(100, 150, 255, 0.4);
}

/* ---------------送信中、送信完了の動作-------------- */
.btn_submit:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}
