﻿/* ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ Sample ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ */
        /* ■■■■■■■■■■■■ SampleArt の カード ■■■■■■■■■■■■*/

        .card-container {
            display: flex;
            flex-wrap: wrap; /* カードが折り返さないようにする */
            gap: 1vw;
            padding: 1.5vw;
            /*justify-content: flex-start; サイズ固定*/
            justify-content: center;
            scrollbar-gutter: stable both-edges; /* 白い枠全体とカード列の中心を揃える */
            overflow-y: auto; /* 縦方向のスクロールバーを表示auto 非表示hidden */
            overflow-x: auto;
            flex: 1;
     
        }
        .card {
            border: 1px solid #ccc;
            border-radius: 8px;
            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
            overflow: hidden;
            display: flex;
            flex-direction: column;
            width: 23.7%; /* 23.7%だと４枚ぎりぎり並ぶ 32.1%だと3毎*/
            height: 100%;
            min-width: 140px; /* 最小幅 */
            max-width: 440px;
            max-height: 680px;
        }

        /* Sample card identifier styling (like preset-card-identifier) */
        .sample-card-identifier {
            background-color: #ff9d4d36;
            color: white;
            padding: 2px;
            text-align: center;
            font-weight: bold;
            border-bottom: 1px solid #ccc;
        }

        .sample-card-identifier p {
            margin: 0;
            font-size: clamp(6px, 0.8vw, 18px);
        }
        
        .card img {
                 justify-content: center;
            height: 60%; /* 画像部分の高さを40%に固定 */
            object-fit: contain; /* 画像の比率を維持し、領域内に収める */
            background-color: transparent; /* 画像領域の背景色（任意） */
            flex-shrink: 1; /* 画像部分が縮小されるように */
        }

        .card-content {
            flex-grow: 1; /* テキスト部分が余ったスペースを埋めるように */
            display: flex;
            flex-direction: column;
            justify-content: flex-start;
            padding: 0.5vw;
            text-align: left; /* Ensure text alignment is left for all content */
        }
        
    
        .card-content h5 {
            margin-left: 0;
            font-size: clamp(16px, 1vw, 24px);
            margin-bottom: 0;
            text-align: left; /* Align the price to the left */
        }

        /* Supplemental-info trigger (price) */
        .sample-price-trigger.has-note {
            cursor: pointer;
        }
        
        .card-content p {
            margin-left: 20px; /* 左の余白 */
            font-size: clamp(12px, 0.75vw, 18px); /* 12px - 18pxに制約 */
        }

        /* ---- Sample: ラベル「：」の縦位置を揃える ---- */
        .card-content .kv-grid {
            margin-left: 20px;
            font-size: clamp(12px, 0.75vw, 18px);
            display: grid;
            flex: 1 1 auto;
            min-height: 0;
            grid-template-columns: max-content 0.9em 1fr;
            column-gap: 0.2em;
            row-gap: 0.15em;
            align-items: baseline;
            align-content: space-around;
        }

        .card-content .kv-row {
            display: contents;
        }

        .card-content .kv-label {
            font-weight: 0;
            text-align: left;
            white-space: nowrap;
        }

        .card-content .kv-sep {
            font-weight: 700;
            text-align: center;
            opacity: 0.95;
        }

        .card-content .kv-value {
            min-width: 0;
            overflow-wrap: anywhere;
        }

        .card-content .kv-value:empty::before {
            content: "\00a0";
        }


        /* ---- Sample / Preset: カード操作ボタン ---- */
        .edit-button,
        .delete-button,
        .preset-edit-button,
        .toggle-public-button {
            width: 6vw;
            height: 1.6vw;
            flex: 1;
            margin: 0;
            padding: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            border: 1px solid rgba(255, 195, 160, 0.28);
            border-radius: 6px; /* カード(8px)より少し尖らせる */
            background-color: rgba(255, 157, 77, 0.18); /* 暖色系 + 透明感 */
            color: rgba(255, 245, 240, 0.95);
            font-size: clamp(6px, 0.6vw, 18px);
            font-family: inherit;
            font-weight: 600;
            line-height: 1;
            vertical-align: baseline;
            cursor: pointer;
            backdrop-filter: blur(6px);
            -webkit-backdrop-filter: blur(6px);
            box-shadow: 0 6px 16px rgba(0, 0, 0, 0.22);
            transition: transform 120ms ease, background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease,
                color 160ms ease;
        }

        .edit-button,
        .preset-edit-button {
            background-color: rgba(255, 170, 90, 0.20);
        }

        .delete-button {
            background-color: rgba(255, 90, 70, 0.18);
            border-color: rgba(255, 150, 135, 0.24);
        }

        .edit-button:hover,
        .preset-edit-button:hover,
        .toggle-public-button:hover {
            transform: translateY(-1px);
            background-color: rgba(255, 170, 90, 0.30);
            border-color: rgba(255, 215, 185, 0.42);
            box-shadow: 0 10px 26px rgba(0, 0, 0, 0.28);
        }

        .delete-button:hover {
            transform: translateY(-1px);
            background-color: rgba(255, 90, 70, 0.28);
            border-color: rgba(255, 170, 160, 0.42);
            box-shadow: 0 10px 26px rgba(0, 0, 0, 0.28);
        }

        .edit-button:active,
        .preset-edit-button:active,
        .delete-button:active,
        .toggle-public-button:active {
            transform: translateY(0);
        }

        .edit-button:focus-visible,
        .preset-edit-button:focus-visible,
        .delete-button:focus-visible,
        .toggle-public-button:focus-visible {
            outline: 2px solid rgba(255, 210, 180, 0.75);
            outline-offset: 2px;
        }

        /* 公開/非公開ボタンの状態色 */
        .toggle-public-button.public,
        .toggle-public-button[data-is-public="1"],
        .toggle-public-button[data-is-visible="1"] {
            background-color: rgba(255, 157, 77, 0.22); /* 公開 = 暖色系 */
            border-color: rgba(255, 210, 180, 0.32);
            color: rgba(255, 245, 240, 0.95);
        }

        .toggle-public-button.public:hover,
        .toggle-public-button[data-is-public="1"]:hover,
        .toggle-public-button[data-is-visible="1"]:hover {
            background-color: rgba(255, 157, 77, 0.34);
            border-color: rgba(255, 225, 200, 0.48);
        }

        .toggle-public-button.private,
        .toggle-public-button[data-is-public="0"],
        .toggle-public-button[data-is-visible="0"] {
            background-color: rgba(160, 160, 160, 0.18); /* 非公開 = グレー */
            border-color: rgba(230, 230, 230, 0.22);
            color: rgba(245, 245, 245, 0.92);
        }

        .toggle-public-button.private:hover,
        .toggle-public-button[data-is-public="0"]:hover,
        .toggle-public-button[data-is-visible="0"]:hover {
            background-color: rgba(160, 160, 160, 0.28);
            border-color: rgba(245, 245, 245, 0.34);
            color: rgba(255, 255, 255, 0.96);
        }

        .card-content a {
            color: #e0662d;
            text-decoration: none;
            font-size: 0.75vw; /* 画面幅の1.5% */
            font-size: clamp(12px, 0.75vw, 18px); /* 12px - 18pxに制約 */
        }

        .card-content a:hover {
            text-decoration: underline;
        }

        /* カードの編集と削除ボタン */
        .card-actions,
        .preset-card-actions {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 0.35vw;
        }

        /*価格表示部分の小文字*/
        h5 .price-integer {
            /* 整数部分のフォントサイズ */
            font-size: clamp(14px, 1vw, 20px); /* 16px - 24pxに制約 */ /* `clamp()`関数について    - 第1引数: 最小フォントサイズ    - 第2引数: 推奨フォントサイズ（デフォルトサイズ）    - 第3引数: 最大フォントサイズ*/ 
            /*color: #98ff9e;*/
            color: #ff995f;
        }

        h5 .price-decimal {
            /* 小数部分のフォントサイズ */
            font-size: clamp(11px, 0.8vw, 17px); /* 16px - 24pxに制約 */ /* `clamp()`関数について    - 第1引数: 最小フォントサイズ    - 第2引数: 推奨フォントサイズ（デフォルトサイズ）    - 第3引数: 最大フォントサイズ*/ 
            /*color: #98ff9e;*/
            vertical-align: super; /* 少し上にずらす */
            color: #ffc4444d;
        }


        /* Sample card supplemental note modal (click anywhere to close) */
        .sample-note-modal {
            display: none;
            position: fixed;
            z-index: 1050;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            overflow: auto;
            background-color: rgba(0, 0, 0, 0.6);
        }

        .sample-note-modal-content {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background-color: rgba(17, 17, 17, 0.95);
            border: 1px solid rgba(255, 255, 255, 0.15);
            border-radius: 10px;
            padding: 16px 18px;
            max-width: min(90vw, 560px);
            max-height: 80vh;
            overflow: auto;
            color: #ffffff;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4);
        }

        .sample-note-modal-body {
            white-space: pre-wrap;
            line-height: 1.5;
            font-size: clamp(12px, 1vw, 18px);
        }




