/* ==========================================================================
   Studio.site (Tuấn氏モデル) × ニュートラル・ミニマリズム配色（新サイト参照）
   ========================================================================== */

:root {
    --st-bg-main: #f8f8f6;     /* 全体のベース：静かで品のある極淡いサンドベージュ */
    --st-bg-card: #ffffff;     /* カード・ブロック内：背景を引き締めるクリーンなホワイト */
    --st-dark: #222222;        /* 文字・メイン：真っ黒を避けた、知的な深いダークチャコール */
    --st-muted: #666666;       /* サブテキスト：可読性を保ちつつ調和するミディアムグレー */
    --st-light: #aaaaaa;       /* 補助・メタ情報：主張を抑えたライトグレー */
    --st-border: #eaeaea;      /* 境界線：空気感を邪魔しない、極めて繊細な薄いライン */
    --st-white: #ffffff;
}

/* 全体の初期化とトーン＆マナーの統一 */
body {
    background-color: var(--st-bg-main) !important;
    color: var(--st-dark) !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    -webkit-font-smoothing: antialiased;
    margin: 0;
}
.site-body {
    padding: 0px;
}

/* Lightningのコンテナ幅の最大化・デフォルト線の打ち消し */
.container, .container-lg, .container-md, .container-sm, .container-xl {
    max-width: 1920px;
}
h2:where(:not(.wp-block-post-title)) {
    border-top: 0px;
    border-bottom: 0px;
    padding: 0;
}
h3:where(:not(.wp-block-post-title)):after {
    border-bottom: 0px;
}

/* 共通コンテナレイアウト */
.st-container {
    max-width: 1100px; 
    margin: 0 auto;
    padding: 0 4%;
}

/* 全セクション共通：最上部で独立するH2見出しブロック */
.st-section {
    padding: 100px 0;
    border-top: 1px solid var(--st-border);
    width: 100%;
    box-sizing: border-box;
}
.st-section-header-block {
    width: 100%;
    margin-bottom: 50px;
    text-align: left;
}
.st-section-label {
    font-size: 3rem;
    font-weight: 700;
    letter-spacing: 0.15em;
    margin: 0;
    color: var(--st-dark);
    line-height: 1.1;
}

/* 独立セクション内の1カラム型ラッパー */
.st-single-content-wrapper {
    width: 100%;
    max-width: 750px; 
}

/* ==========================================================================
   1. HERO AREA (全面画像＋上に大きな文字 / 干渉完全バイパス版)
   ========================================================================== */
.st-hero {
    position: relative !important;
    width: 100vw !important;
    height: 100vh !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    display: flex !important;
    align-items: center !important;
    box-sizing: border-box !important;
    padding-left: 10% !important;
    overflow: hidden !important;
    background-color: var(--st-dark) !important;
}

/* このコンテナ自体のopacityをJSが直接（インラインスタイルで）書き換えるため、
  テーマ側のCSSのバッティングや干渉を100%回避できます。
*/
.st-hero-bg {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.st-hero-overlay {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background: linear-gradient(135deg, rgba(34, 34, 34, 0.4) 0%, rgba(34, 34, 34, 0.15) 100%) !important;
    z-index: 2 !important;
}
.st-hero-content {
    position: relative !important;
    z-index: 3 !important;
    color: var(--st-white) !important;
}
.st-hero-greeting {
    font-size: 1.3rem !important;
    font-family: Georgia, serif !important;
    font-style: italic !important;
    margin-bottom: 15px !important;
    opacity: 0.95 !important;
    text-shadow: 0 2px 10px rgba(0,0,0,0.15) !important;
}
.st-hero-title {
    font-size: 4rem !important;
    line-height: 1.15 !important;
    font-weight: 700 !important;
    margin: 0 0 25px 0 !important;
    letter-spacing: -0.02em !important;
    color: var(--st-white) !important;
    text-shadow: 0 4px 20px rgba(0,0,0,0.2) !important;
}
.st-hero-name {
    font-size: 1.3rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.05em !important;
    opacity: 0.9 !important;
    text-shadow: 0 2px 10px rgba(0,0,0,0.15) !important;
}

/* ==========================================================================
   2. ABOUT AREA (左：画像 / 右：テキストの2カラム)
   ========================================================================== */
.st-section-content-2col {
    display: flex;
    gap: 60px;
    width: 100%;
    align-items: flex-start;
}
.st-about-media-col {
    width: 180px;
    flex-shrink: 0;
}
.st-profile-thumb-circle {
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 50%;
    background-color: var(--st-bg-card);
}
.st-profile-thumb-circle img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.st-about-text-col {
    flex-grow: 1;
}
.st-sub-lead {
    font-size: 0.85rem;
    color: var(--st-light);
    letter-spacing: 0.15em;
    margin: 0 0 15px 0;
    font-weight: 700;
    border-bottom: 1px solid var(--st-border);
    padding-bottom: 8px;
}
.st-bullet-list {
    list-style: none;
    padding: 0;
    margin: 0 0 30px 0;
}
.st-bullet-list li {
    font-size: 1.05rem;
    line-height: 1.8;
    color: var(--st-dark);
    margin-bottom: 15px;
    position: relative;
    padding-left: 25px;
}
.st-bullet-list li::before {
    content: "—";
    position: absolute;
    left: 0;
    color: var(--st-light);
}
.st-skills-p {
    font-size: 1.05rem;
    line-height: 1.8;
    color: var(--st-dark);
    margin: 0 0 40px 0;
}

/* ==========================================================================
   3. PROJECTS AREA (純粋な美しい2カラムグリッド)
   ========================================================================== */
.st-project-grid-2col {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 50px 35px;
    width: 100%;
}
.st-project-card a { 
    text-decoration: none !important; 
    color: var(--st-dark); 
    display: block; 
}
.st-card-img {
    width: 100%; 
    aspect-ratio: 16 / 10; 
    overflow: hidden; 
    border-radius: 12px; 
    margin-bottom: 18px; 
    background-color: var(--st-bg-card);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.015);
}
.st-card-img img { 
    width: 100%; 
    height: 100%; 
    object-fit: cover; 
    transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1); 
}
.st-project-card:hover .st-card-img img { 
    transform: scale(1.02); 
}
.st-card-meta { 
    font-size: 0.75rem; 
    color: var(--st-light); 
    letter-spacing: 0.08em; 
    display: block; 
    margin-bottom: 6px; 
}
.st-card-title { 
    font-size: 1.15rem; 
    font-weight: 600; 
    line-height: 1.45; 
    margin: 0; 
}

/* ==========================================================================
   4. TOP PAGE 共通一覧リンク
   ========================================================================== */
.st-list-more-link-wrapper {
    width: 100% !important;
    display: block !important;
    text-align: right !important;
    margin-top: 50px !important; 
    clear: both !important;
    box-sizing: border-box !important;
}
.st-list-more-link {
    display: inline-block !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: var(--st-dark) !important;
    text-decoration: none !important;
    border-bottom: 2px solid var(--st-dark) !important;
    padding-bottom: 6px !important;
    line-height: 1 !important;
    letter-spacing: 0.05em !important;
    transition: opacity 0.2s ease !important;
}
.st-list-more-link:hover {
    opacity: 0.6 !important;
}

/* ==========================================================================
   5. PHOTOS AREA
   ========================================================================== */
.st-photos-section {
    padding: 60px 0 90px 0; 
}
.st-gallery-lead { 
    font-size: 0.9rem; 
    font-style: italic; 
    color: var(--st-light); 
    margin: 0 0 25px 0; 
    font-family: Georgia, serif; 
}
.st-slider-container {
    display: flex;
    gap: 24px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 20px;
    width: 100%;
}
.st-slider-container::-webkit-scrollbar { 
    height: 3px; 
}
.st-slider-container::-webkit-scrollbar-thumb { 
    background: var(--st-border); 
    border-radius: 10px; 
}
.st-slider-item {
    flex: 0 0 32%; 
    scroll-snap-align: start;
}
.st-slider-item img {
    width: 100%; 
    aspect-ratio: 3 / 4; 
    object-fit: cover; 
    border-radius: 8px; 
    margin-bottom: 10px;
}
.st-photo-cap { 
    font-size: 0.75rem; 
    color: var(--st-light); 
}

/* ==========================================================================
   6. CONTACT AREA
   ========================================================================== */
.st-mood-sub { 
    font-size: 0.85rem; 
    color: var(--st-muted); 
    margin: 0 0 20px 0; 
}
.st-contact-buttons-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
}
.st-btn-black {
    display: flex; 
    align-items: center; 
    justify-content: center;
    background-color: var(--st-dark); 
    color: var(--st-white) !important;
    padding: 18px; 
    text-decoration: none !important; 
    font-weight: 700; 
    font-size: 0.85rem;
    letter-spacing: 0.15em; 
    border-radius: 6px; 
    transition: background-color 0.2s, opacity 0.2s;
}
.st-btn-black:hover { 
    background-color: var(--st-muted);
}

/* ==========================================================================
   7. JOURNAL AREA
   ========================================================================== */
.st-journal-section {
    padding: 100px 0;
}
.st-journal-list {
    width: 100%;
    max-width: 850px; 
    display: flex;
    flex-direction: column;
    gap: 60px; 
}
.st-journal-item {
    display: flex;
    gap: 40px;
    width: 100%;
    align-items: flex-start;
}
.st-journal-img-box {
    width: 240px;
    aspect-ratio: 16 / 10; 
    overflow: hidden;
    flex-shrink: 0;
    background-color: var(--st-bg-card);
    border-radius: 6px;
}
.st-journal-img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.st-journal-content-box {
    flex-grow: 1;
}
.st-journal-meta {
    font-size: 0.85rem;
    color: var(--st-light);
    margin-bottom: 12px;
    display: flex;
    gap: 15px;
    font-family: -apple-system, BlinkMacSystemFont, sans-serif;
}
.st-journal-date {
    letter-spacing: 0.05em;
}
.st-journal-title {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1.4;
    margin: 0 0 15px 0;
}
.st-journal-title a {
    color: var(--st-dark);
    text-decoration: none !important;
    transition: color 0.2s ease;
}
.st-journal-title a:hover {
    color: var(--st-muted);
}
.st-journal-excerpt {
    font-size: 0.95rem;
    line-height: 1.7;
    color: var(--st-muted);
    margin: 0;
}

/* ==========================================================================
   8. RESPONSIVE
   ========================================================================== */
@media (max-width: 768px) {
    .st-section { padding: 60px 0; }
    .st-section-header-block { margin-bottom: 30px; }
    .st-section-label { font-size: 2.2rem; } 
    
    .st-section-content-2col { 
        flex-direction: column; 
        gap: 30px; 
    }
    .st-about-media-col { 
        width: 140px; 
        margin: 0 auto; 
    }
    .st-project-grid-2col { 
        grid-template-columns: 1fr; 
        gap: 35px; 
    }
    .st-slider-item { 
        flex: 0 0 65%; 
    }
    .st-hero-title { 
        font-size: 2.4rem; 
    }
    .st-journal-item {
        flex-direction: column;
        gap: 20px;
    }
    .st-journal-img-box {
        width: 100%; 
        aspect-ratio: 16 / 9;
    }
    .st-journal-title {
        font-size: 1.3rem;
    }
    .st-list-more-link-wrapper {
        text-align: center !important;
        margin-top: 40px !important;
    }
    .st-list-more-link {
        font-size: 0.95rem !important;
    }
}

/* ==========================================================================
   X. WORK DETAIL PAGE
   ========================================================================== */
.page .page-header, .single-works .page-header { display: none !important; }
.page .breadcrumb, .single-works .breadcrumb { display: none !important; }
.page .site-body, .single-works .site-body { padding: 0 !important; margin: 0 !important; }
.page .site-body .main-section, .single-works .site-body .main-section { padding: 0 !important; }

.st-work-detail-wrapper {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
.st-work-detail-main-container {
    max-width: 1140px !important;
    margin: 0 auto !important;
    padding: 80px 40px 140px 40px !important; 
    box-sizing: border-box !important;
}
.st-work-detail-header {
    margin-bottom: 40px !important; 
    border-bottom: 1px solid var(--st-border) !important;
    padding-bottom: 25px !important;
}
.st-work-detail-category {
    font-size: 0.8rem !important;
    letter-spacing: 0.18em !important;
    color: var(--st-light) !important;
    font-weight: 700 !important;
    display: block !important;
    margin-bottom: 12px !important;
}
.st-work-detail-title {
    font-size: 2.2rem !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    margin: 0 0 15px 0 !important;
    color: var(--st-dark) !important;
    letter-spacing: -0.01em !important;
}
.st-work-detail-client {
    font-size: 0.9rem !important;
    color: var(--st-muted) !important;
    margin: 0 !important;
}
.st-work-detail-hero {
    width: 100% !important;
    height: auto !important;
    max-height: 65vh !important;
    position: static !important;
    transform: none !important;
    overflow: hidden !important;
    margin-bottom: 58px !important;
}
.st-work-detail-hero img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 4px !important;
}
.st-work-detail-grid {
    display: flex !important;
    gap: 58px !important;
    align-items: flex-start !important;
    margin-bottom: 76px !important;
    width: 100% !important;
}
.st-work-spec-col {
    width: 300px !important;
    flex-shrink: 0 !important;
}
.st-work-spec-table {
    width: 100% !important;
    border-collapse: collapse !important;
}
.st-work-spec-table, .st-work-spec-table tr, .st-work-spec-table th, .st-work-spec-table td {
    border: none !important;
    border-top: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
}
.st-work-spec-table th, .st-work-spec-table td {
    padding: 12px 0 !important; 
    font-size: 0.85rem !important;
    line-height: 1.6 !important;
    background: transparent !important;
    text-align: left !important;
}
.st-work-spec-table th {
    width: 35% !important;
    font-weight: 700 !important;
    color: var(--st-light) !important; 
    letter-spacing: 0.05em !important;
    vertical-align: baseline;
}
.st-work-spec-table td {
    color: var(--st-muted) !important;
}
.st-work-spec-table td a {
    color: var(--st-dark) !important;
    text-decoration: none !important;
    font-weight: 700 !important;
    border-bottom: 1px solid var(--st-dark) !important;
    padding-bottom: 1px !important;
}
.st-work-story-col {
    flex-grow: 1 !important;
}
.st-work-story-section {
    margin-bottom: 70px !important;
}
.st-work-story-section:last-child {
    margin-bottom: 0 !important;
}
.st-work-story-h2 {
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    color: var(--st-dark) !important;
    margin: 0 0 25px 0 !important;
    border-bottom: 1px solid var(--st-dark) !important;
    padding-bottom: 8px !important;
    display: inline-block !important;
}
.st-work-story-p {
    font-size: 1rem !important;
    line-height: 1.95 !important;
    color: var(--st-muted) !important;
    margin: 0 !important;
}
.st-work-gallery {
    display: flex !important;
    flex-direction: column !important;
    gap: 120px !important;
    margin-bottom: 140px !important;
    width: 100% !important;
}
.st-work-gallery-item {
    width: 100% !important;
}
.st-work-gallery-item img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    border-radius: 4px !important;
    box-shadow: 0 10px 40px rgba(42, 45, 52, 0.02);
}
.st-work-gallery-cap {
    display: block !important;
    font-size: 0.75rem !important;
    color: var(--st-light) !important;
    margin-top: 18px !important;
    text-align: right !important;
    letter-spacing: 0.05em !important;
}
.st-work-detail-footer {
    border-top: 1px solid var(--st-border) !important;
    padding-top: 80px !important;
    text-align: center !important;
}
.st-btn-back-works {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: transparent !important;
    border: 1px solid var(--st-dark) !important;
    color: var(--st-dark) !important;
    padding: 18px 45px !important;
    text-decoration: none !important;
    font-weight: 700 !important;
    font-size: 0.8rem !important;
    letter-spacing: 0.15em !important;
    border-radius: 4px !important;
    transition: all 0.2s ease !important;
}
.st-btn-back-works:hover {
    background-color: var(--st-dark) !important;
    color: var(--st-white) !important;
}

@media (max-width: 768px) {
    .st-work-detail-main-container { padding: 40px 20px 80px 20px !important; }
    .st-work-detail-header { margin-bottom: 30px !important; }
    .st-work-detail-title { font-size: 1.7rem !important; }
    .st-work-detail-hero { margin-bottom: 50px !important; }
    .st-work-detail-grid { flex-direction: column !important; gap: 50px !important; margin-bottom: 80px !important; }
    .st-work-spec-col { width: 100% !important; }
    .st-work-gallery { gap: 60px !important; margin-bottom: 80px !important; }
}

/* ==========================================================================
   WORK LIST PAGE
   ========================================================================== */
.st-work-list-wrapper {
    width: 100% !important;
    background-color: var(--st-bg-main) !important;
}
.st-work-list-container {
    max-width: 1140px !important;
    margin: 0 auto !important;
    padding: 100px 40px 140px 40px !important;
    box-sizing: border-box !important;
}
.st-work-list-header {
    text-align: center !important;
    margin-bottom: 80px !important;
}
.st-work-list-main-title {
    font-size: 1.6rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.15em !important;
    color: var(--st-dark) !important;
    margin: 0 !important;
    display: inline-block !important;
    padding-bottom: 12px !important;
    border-bottom: 2px solid var(--st-dark) !important;
}
.st-work-list-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 60px 30px !important;
    width: 100% !important;
}
.st-work-list-card {
    width: 100% !important;
    box-sizing: border-box !important;
}
.st-work-list-card a {
    text-decoration: none !important;
    color: var(--st-dark) !important;
    display: block !important;
}
.st-work-card-img-box {
    width: 100% !important;
    aspect-ratio: 16 / 10 !important;
    overflow: hidden !important;
    border-radius: 4px !important;
    background-color: var(--st-bg-card) !important;
    margin-bottom: 18px !important;
}
.st-work-card-img-box img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1) !important;
}
.st-work-list-card:hover .st-work-card-img-box img {
    transform: scale(1.025) !important;
}
.st-work-card-info {
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
}
.st-work-card-business {
    font-size: 0.72rem !important;
    color: var(--st-muted) !important;
    letter-spacing: 0.02em !important;
    font-weight: 600 !important;
}
.st-work-card-title {
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    color: var(--st-dark) !important;
}
.st-work-card-category {
    font-size: 0.72rem !important;
    color: var(--st-light) !important;
    letter-spacing: 0.02em !important;
}

@media (max-width: 992px) {
    .st-work-list-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 50px 24px !important;
    }
}
@media (max-width: 768px) {
    .st-work-list-container { padding: 60px 20px 100px 20px !important; }
    .st-work-list-header { margin-bottom: 50px !important; }
    .st-work-list-grid { grid-template-columns: 1fr !important; gap: 40px !important; }
    .st-work-card-title { font-size: 1.05rem !important; }
}

/* JOURNAL一覧・スマホ用の3列➔1列変換 */
@media (max-width: 992px) {
    .blog .st-project-grid-2col, .archive .st-project-grid-2col {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}
@media (max-width: 576px) {
    .blog .st-project-grid-2col, .archive .st-project-grid-2col {
        grid-template-columns: 1fr !important;
    }
}

/* YouTube動画のレスポンシブ対応 */
.st-youtube-container {
    position: relative !important;
    width: 100% !important;
    padding-top: 56.25% !important;
    margin: 30px 0 !important;
    clear: both !important;
}
.st-youtube-container iframe {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    border: 0 !important;
}

/* ==========================================================================
   JOURNAL DETAIL - note風ミニマル・完全決定版（並び替え＆余白完全解決）
   ========================================================================== */

/* 1. テーマデフォルトのヘッダー・パンくず・不要エリアを完全消去 */
.single-post .page-header,
.single-post .paneHeader,
.single-post .breadcrumb,
.single-post .sns-btn-wrapper,
.single-post #comments,
.single-post .comment-area,
.single-post #respond {
    display: none !important;
}

/* ★元々の位置にあるデフォルトのタイトルエリアを非表示にする（二重表示防止） */
.single-post header.entry-header,
.single-post .mainSection-title {
    display: none !important;
}

/* 2. 背景トーンの完全同期：コンテナの外側はすべて極淡サンドベージュに */
.single-post .site-body,
.single-post #main,
.single-post #content,
.single-post .main-section {
    background-color: var(--st-bg-main) !important; /* #f8f8f6 */
    border: none !important;
    box-shadow: none !important;
}

/* コンテナ自体は透明にして背景ベージュを透過させる */
.single-post .site-body .container {
    max-width: 960px !important;
    padding: 60px 20px !important;
    background: transparent !important;
    margin: 0 auto !important;
}
.single-post .sub-section,
.single-post #sidebar,
.single-post .sideSection {
    display: none !important;
}
.single-post .main-section {
    width: 100% !important;
    float: none !important;
}

/* 3. 本文エリアの「中身（article）」だけにクリーンな白座布団を敷く */
.single-post article.post {
    background-color: var(--st-bg-card) !important;
    padding: 80px 60px !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.015) !important;
    box-sizing: border-box !important;
}

/* 4. 新しい位置に移動したタイトル＆メタ情報のチューニング */
.single-post h1.st-journal-moved-title {
    font-size: 1.75rem !important;
    font-weight: 700 !important;
    line-height: 1.45 !important;
    color: var(--st-dark) !important;
    letter-spacing: -0.01em !important;
    margin-top: 0 !important;
    margin-bottom: 20px !important;
    border: none !important;
    padding: 0 !important;
    display: block !important;
}
.single-post .st-journal-moved-meta {
    font-size: 0.88rem !important;
    color: var(--st-muted) !important;
    margin-bottom: 50px !important; /* タイトル領域から本文までの心地よい余白 */
    border: none !important;
}
.single-post .st-journal-moved-meta span {
    margin-right: 15px !important;
}

/* 5. 本文タイポグラフィ（ゆったり行間） */
.single-post .entry-content p {
    font-size: 1.05rem !important;
    line-height: 2.0 !important;
    color: #333333 !important;
    margin-bottom: 2.3rem !important;
    letter-spacing: 0.03em !important;
}
.single-post .entry-content h2 {
    font-size: 1.45rem !important;
    font-weight: 700 !important;
    color: var(--st-dark) !important;
    margin: 4.5rem 0 1.8rem 0 !important;
    padding: 0 0 10px 0 !important;
    border: none !important;
    border-bottom: 1px solid var(--st-dark) !important;
}

/* ==========================================================================
   5. 「前の記事・次の記事」ナビゲーション（note風ミニマル・デザイン刷新）
   ========================================================================== */
.vk_posts {
	margin-top: 20px;
}
.vk_post_imgOuter_singleTermLabel{
	background-color: #d14c2e !important;
}

/* ==========================================================================
   JOURNAL ARCHIVE - /journal/ ページの3列グリッドレイアウトベース
   ========================================================================== */

/* 1. デフォルトの巨大な青いヘッダー帯とパンくずのみを消去（メニューは完全保護） */
.blog .page-header, 
.blog .breadcrumb {
    display: none !important;
}

/* 2. 背景色をWORKS一覧と同じ上品なサンドベージュに同期 */
.blog .site-body {
    background-color: var(--st-bg-main) !important; /* #f8f8f6 */
}

/* 3. 右サイドバーを非表示にし、メインエリアを横幅いっぱいに広げる */
.blog #sidebar,
.blog .sub-section {
    display: none !important;
}
.blog .main-section {
    width: 100% !important;
    float: none !important;
    background: transparent !important;
}

/* 4. メインエリアの横幅と上下余白をWORKS一覧（1140px）に完全一致させる */
.blog .site-body .container {
    max-width: 1140px !important;
    padding: 80px 20px !important;
    background: transparent !important;
    margin: 0 auto !important;
}


/* ==========================================================================
   JOURNAL ARCHIVE ONLY - /journal/ ページ（投稿一覧）専用大見出しスタイル
   ========================================================================== */

/* 1. コンテナおよびメインコンテンツの器を1140pxに固定して中央寄せ */
body.archive-view.post-type-archive-post .main-section,
body.archive-view.post-type-archive-post .vk_posts,
body.posts-primary:not(.page) .main-section,
body.blog:not(.page):not(.home) .main-section,
body.blog:not(.page):not(.home) .vk_posts {
    max-width: 1140px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* 2. 他の固定ページ（WORKS等）やトップページを完璧に除外。
      /journal/ ページのメインセクションにだけ「ALL JOURNALS」を表示させる超厳密指定 */
body.archive-view.post-type-archive-post .main-section::before,
body.posts-primary:not(.page) .main-section::before,
body.blog:not(.page):not(.home) .main-section::before {
    content: "ALL JOURNALS" !important;
    display: block !important;
    text-align: center !important;
    width: 100% !important;               /* グリッド幅に同期 */
    font-size: 2rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    color: var(--st-dark) !important;
    text-transform: uppercase !important;
    margin-top: 20px !important;
    margin-bottom: 60px !important;
    padding: 0 0 15px 0 !important;
    /* WORKSと同じ40pxの独立した下線を背景画像で再現 */
    background-image: linear-gradient(var(--st-dark), var(--st-dark)) !important;
    background-size: 40px 2px !important;
    background-position: bottom center !important;
    background-repeat: no-repeat !important;
}

/* 3. 一覧ページ側のデフォルトの「新着!!」ラベルを完全消去 */
body.archive-view.post-type-archive-post .vk_post_imgOuter_singleTermLabel,
body.blog:not(.page) .vk_post_imgOuter_singleTermLabel {
    display: none !important;
    visibility: hidden !important;
}


/* ==========================================================================
   ★他ページ干渉遮断命令 - 固定ページ（.page）とトップ（.home）での暴走を根底から完全無効化
   ========================================================================== */
body.page .main-section::before,
body.home .main-section::before,
body.page .vk_post_imgOuter::after,
body.home .vk_post_imgOuter::after,
body.home .st-journal-card-img::after,
.st-work-list-wrapper .main-section::before {
    display: none !important;
    content: "" !important;
    background: none !important;
}


/* ==========================================================================
   HOME PAGE ONLY - トップページ等（ショートコード側[st_latest_journal]）専用スタイル
   ========================================================================== */
.st-journal-grid-3col {
    max-width: 1140px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 40px 30px !important;
}
.st-journal-card-img {
    position: relative !important;
    width: 100% !important;
    aspect-ratio: 16 / 10 !important;
    overflow: hidden !important;
    border-radius: 4px !important;
}
.st-journal-card-img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}
/* トップページ下部のカード画像左上に美しくマウントする正しい「NEW」バッジ（赤） */
.st-journal-card-img .st-journal-new-label {
    position: absolute !important;
    top: 10px !important;
    left: 10px !important;
    background-color: #d14c2e !important;
    color: #ffffff !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.05em !important;
    padding: 4px 10px !important;
    border-radius: 3px !important;
    z-index: 10 !important;
    display: inline-block !important;
    line-height: 1.2 !important;
}


/* ==========================================================================
   GLOBAL FOOTER - デフォルトの青い境界線の完全消去
   ========================================================================== */
footer,
.site-footer,
.siteFooter {
    border-top: none !important;
    border-top-width: 0px !important;
}

/* ==========================================================================
   HOME JOURNAL LIST - トップページ専用：最新情報を行（横長）形式で整える
   ========================================================================== */

/* 全体を囲むコンテナの余白調整 */
.st-journal-row-list {
    width: 100% !important;
    max-width: 850px !important; /* ABOUTや既存のリスト幅に合わせる */
    margin: 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 40px !important; /* 行と行の間隔 */
}

/* 1行のリンク全体の調整（ホバーでかすかに透明に） */
.st-journal-row-link {
    display: flex !important;
    gap: 40px !important; /* 画像とテキストの間の余白 */
    text-decoration: none !important;
    color: var(--st-dark) !important;
    align-items: flex-start !important;
    width: 100% !important;
    transition: opacity 0.2s ease !important;
}
.st-journal-row-link:hover {
    opacity: 0.7 !important;
}

/* 左：画像ボックスのサイズ固定（16:10の比率を維持） */
.st-journal-row-img-box {
    position: relative !important;
    width: 240px !important; /* 以前の行形式と同じサイズに固定 */
    aspect-ratio: 16 / 10 !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
    border-radius: 6px !important;
    background-color: var(--st-bg-card) !important;
}
.st-journal-row-img-box img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

/* 画像左上の「NEW」バッジ（赤）の最適化 */
.st-journal-row-img-box .st-journal-row-new-label {
    position: absolute !important;
    top: 10px !important;
    left: 10px !important;
    background-color: #d14c2e !important; /* 与猶さん指定の赤 */
    color: #ffffff !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.05em !important;
    padding: 4px 10px !important;
    border-radius: 3px !important;
    z-index: 10 !important;
    display: inline-block !important;
    line-height: 1.2 !important;
}

/* 右：テキストコンテンツエリア */
.st-journal-row-content-box {
    flex-grow: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}

/* メタ情報（日付・著者） */
.st-journal-row-meta {
    font-size: 0.85rem !important;
    color: var(--st-light) !important;
    margin-bottom: 10px !important;
    display: flex !important;
    gap: 15px !important;
}
.st-journal-row-date {
    letter-spacing: 0.05em !important;
}

/* タイトルテキスト */
.st-journal-row-title {
    font-size: 1.4rem !important; /* 行形式に馴染む品のあるサイズ */
    font-weight: 700 !important;
    line-height: 1.4 !important;
    margin: 0 0 12px 0 !important;
    color: var(--st-dark) !important;
}

/* 抜粋文章 */
.st-journal-row-excerpt {
    font-size: 0.95rem !important;
    line-height: 1.7 !important;
    color: var(--st-muted) !important;
    margin: 0 !important;
}

/* スマホ対応：画面が狭くなったら縦並び（画像 ➔ テキスト）にスイッチ */
@media (max-width: 768px) {
    .st-journal-row-link {
        flex-direction: column !important;
        gap: 16px !important;
    }
    .st-journal-row-img-box {
        width: 100% !important;
        aspect-ratio: 16 / 9 !important;
    }
    .st-journal-row-title {
        font-size: 1.25rem !important;
    }
}

/* ==========================================================================
   JOURNAL ARCHIVE DETAIL - 一覧ページの細部調整（余白・NEWバッジ・ボタン）
   ========================================================================== */

/* --------------------------------------------------------------------------
   ① 下部の不要な余白を解消してスッキリさせる
   -------------------------------------------------------------------------- */
body.blog .site-body .container {
    padding-top: 60px !important;    /* 上部余白を適正化 */
    padding-bottom: 20px !important; /* ★下部の過剰な余白をギュッと絞る */
}
body.blog .main-section {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

/* --------------------------------------------------------------------------
   ② 「新着!!」の日本語を完全に消し去り、洗練された「NEW」ラベルを左上に強制マウント
   -------------------------------------------------------------------------- */
/* 元の赤い「新着!!」テキストそのものを非表示にします */
body.blog .vk_post_title .vk_post_title_new,
body.blog .vk_post_title_new {
    display: none !important;
}

/* 画像エリアを起点（relative）にして、CSSで新しく「NEW」を配置 */
body.blog .vk_post_imgOuter {
    position: relative !important;
}
body.blog .vk_post_imgOuter::after {
    content: "NEW" !important;
    position: absolute !important;
    top: 10px !important;
    left: 10px !important;
    background-color: #d14c2e !important; /* 與猶さん指定のアクセント赤 */
    color: #ffffff !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.05em !important;
    padding: 4px 10px !important;
    border-radius: 3px !important;
    z-index: 20 !important;
    line-height: 1.2 !important;
    display: inline-block !important;
}

/* --------------------------------------------------------------------------
   ③ 「続きを読む」ボタンの色をテーマのトンマナ（ダークチャコール）に同期
   -------------------------------------------------------------------------- */
body.blog .vk_post_btnOuter a.vk_post_btn,
body.blog a.btn-primary.vk_post_btn {
    background-color: var(--st-dark) !important; /* #222222 知的な深いダークチャコール */
    border-color: var(--st-dark) !important;
    color: var(--st-white) !important;
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.05em !important;
    padding: 10px 24px !important;
    border-radius: 4px !important;
    transition: background-color 0.2s ease, border-color 0.2s ease !important;
    box-shadow: none !important;
}

/* ホバー時はサブカラー（ミディアムグレー）へ滑らかに変化 */
body.blog .vk_post_btnOuter a.vk_post_btn:hover,
body.blog a.btn-primary.vk_post_btn:hover {
    background-color: var(--st-muted) !important; /* #666666 */
    border-color: var(--st-muted) !important;
    color: var(--st-white) !important;
    opacity: 1 !important;
}

/* ==========================================================================
   STICKY FOOTER (REVISED) - ヘッダー追従を破壊せずにフッターを最下部固定
   ========================================================================== */

/* 1. JavaScriptのスクロール検知を阻害していた html, body, #wrapper の高さ指定・Flexboxを完全撤廃 */
html, body {
    height: auto !important;
}
body #wrapper {
    display: block !important;
    min-height: auto !important;
}

/* 2. 代わりに、メインコンテンツエリア（.site-body）の「最低限の高さ」を
      ブラウザの画面高さ（100vh）から、ヘッダーとフッターのおおよその高さを引いた値（計算式）で確保します。
      これにより、Flexboxを使わずに中身がスカスカなページのフッター浮き上がりを完璧に防ぎます。 */
body .site-body {
    min-height: calc(100vh - 250px) !important; /* 画面高からヘッダー・フッター分を引き算 */
    box-sizing: border-box !important;
}

/* --------------------------------------------------------------------------
   JOURNAL一覧ページ（/journal/）の内側余白の最終適正化
   -------------------------------------------------------------------------- */
body.blog .site-body .container {
    padding-top: 60px !important;
    padding-bottom: 80px !important; /* フッターとの間に上品な余白を確保 */
}


/* ==========================================================================
   MINIMAL FULLSCREEN LOADER - トップページ専用：洗練された100%ローディング
   ========================================================================== */

/* 1. 画面全体を覆うサンドベージュのクリーンな幕 */
#st-loading-screen {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    background-color: #f8f8f6 !important; /* サイト共通の美しいサンドベージュ */
    z-index: 999999 !important;          /* メニュー等すべてを覆い尽くす最前面 */
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
    transition: opacity 0.8s cubic-bezier(0.25, 1, 0.5, 1) !important; /* noteやStudio風の滑らかな消え方 */
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* 2. 中央のカウンター＋バーの器 */
.st-loading-center-box {
    width: 200px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 16px !important;
}

/* 3. デジタル数字：小さく知的に配置 */
#st-loading-counter {
    font-size: 0.9rem !important;
    font-weight: 500 !important;
    color: var(--st-dark) !important; /* #222222 */
    letter-spacing: 0.08em !important;
    font-family: -apple-system, BlinkMacSystemFont, sans-serif !important;
}

/* 4. プログレスバーの外枠（極細の境界線と同じニュアンス） */
.st-loading-bar-wrap {
    width: 100% !important;
    height: 1px !important; /* あえて1pxにすることで最高にモダンに見せます */
    background-color: rgba(34, 34, 34, 0.08) !important;
    position: relative !important;
    overflow: hidden !important;
}

/* 5. 0%から100%へ向かって走る黒い細線 */
#st-loading-bar-progress {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    height: 100% !important;
    width: 0%;
    background-color: var(--st-dark) !important; /* #222222 */
    transition: width 0.3s cubic-bezier(0.1, 0.8, 0.2, 1) !important; /* 伸び方の質感をチューニング */
}

/* 6. 【核心】100%読み込み完了時にクラスがつき、美しくフェードアウト＆拡大しながら消える演出 */
#st-loading-screen.is-loaded {
    opacity: 0 !important;
    pointer-events: none !important;
    transform: scale(1.03) !important; /* スッと奥に引くような上品な余韻 */
}

/* ローディング中は本編のスクロールを一時的にロック */
body:has(#st-loading-screen:not(.is-loaded)) {
    overflow: hidden !important;
}

/* ==========================================================================
   MINIMAL CONTACT FORM - CONTACTセクションのフォーム専用・洗練化CSS
   ========================================================================== */

/* 1. フォーム全体の横幅・最大幅をABOUTや他のコンテンツ（750px）に美しく同期 */
.wpcf7, 
.wpforms-container, 
form.wpcf7-form {
    width: 100% !important;
    max-width: 750px !important;
    margin: 0 auto !important;
}

/* 2. 入力項目（名前・メール・本文）を1カラムの綺麗な縦並びへ整列 */
form.wpcf7-form p,
.wpforms-field-container {
    display: flex !important;
    flex-direction: column !important;
    margin-bottom: 28px !important; /* 各項目の縦の間隔 */
}

/* 項目ラベル（お名前、メールアドレス等の文字）のタイポグラフィ調整 */
form.wpcf7-form label,
.wpforms-field-label {
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    color: var(--st-dark) !important; /* #222222 */
    letter-spacing: 0.1em !important;
    margin-bottom: 10px !important;
    text-transform: uppercase;
}

/* 3. 【核心】入力フォーム枠（インプット・テキストエリア）のミニマル・リデザイン */
form.wpcf7-form input[type="text"],
form.wpcf7-form input[type="email"],
form.wpcf7-form textarea,
.wpforms-field input[type="text"],
.wpforms-field input[type="email"],
.wpforms-field textarea {
    width: 100% !important;
    box-sizing: border-box !important;
    background-color: var(--st-bg-card) !important; /* 内側はクリーンな白 */
    color: var(--st-dark) !important;
    /* 四方の無骨な線を消し、下線（1px）のみにすることで圧倒的な洗練さを生みます */
    border: none !important;
    border-bottom: 1px solid rgba(34, 34, 34, 0.15) !important;
    border-radius: 0px !important; /* 角丸を排除してソリッドに */
    padding: 14px 4px !important;
    font-size: 1rem !important;
    transition: border-color 0.3s ease, background-color 0.3s ease !important;
}

/* 入力枠にカーソルが当たった時（フォーカス時）の上品な変化 */
form.wpcf7-form input:focus,
form.wpcf7-form textarea:focus,
.wpforms-field input:focus,
.wpforms-field textarea:focus {
    outline: none !important;
    border-bottom-color: var(--st-dark) !important; /* 下線をパキッと濃い黒に */
    background-color: rgba(255, 255, 255, 0.6) !important;
}

/* テキストエリア（メッセージ本文）の高さの適正化 */
form.wpcf7-form textarea,
.wpforms-field textarea {
    height: 140px !important;
    resize: vertical !important; /* 縦方向のみ自由に伸ばせるように */
}

/* 4. 送信ボタンをサイト共通の「 st-btn-black 」のあしらいへ完全昇華 */
form.wpcf7-form input[type="submit"],
.wpforms-submit-container button[type="submit"] {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important; /* 横幅いっぱいに広げて以前のボタンとバランスを同期 */
    max-width: 100% !important;
    background-color: var(--st-dark) !important; /* #222222 */
    color: var(--st-white) !important;
    padding: 18px !important;
    font-weight: 700 !important;
    font-size: 0.85rem !important;
    letter-spacing: 0.15em !important;
    border: none !important;
    border-radius: 6px !important;
    cursor: pointer !important;
    margin-top: 20px !important;
    transition: background-color 0.2s, opacity 0.2s !important;
    -webkit-appearance: none;
}

/* 送信ボタンのホバー演出（ミディアムグレーへ） */
form.wpcf7-form input[type="submit"]:hover,
.wpforms-submit-container button[type="submit"]:hover {
    background-color: var(--st-muted) !important; /* #666666 */
}

/* プラグイン特有のエラーメッセージ等の文字サイズ調整 */
.wpcf7-not-valid-tip,
.wpforms-error {
    font-size: 0.8rem !important;
    color: #d14c2e !important; /* 與猶さんの赤を警告色に採用 */
    margin-top: 6px !important;
    font-weight: 600 !important;
}