﻿html {
    scroll-behavior: smooth;
    overflow-x: hidden;
    overflow-y: auto;
}

/* ============================================================
   Studio 493 - High-End Designer Edition (Editorial Tech)
   ============================================================ */

:root {
    --bg-main: #fcfbf9;
    /* 邵ｺ霈費ｽ臥ｸｺ・ｫ雋ゅ・繝ｻ・ｽ繝ｻ・ｽ隲｢貅倥・邵ｺ繧・ｽ狗ｹｧ・ｦ郢ｧ・ｩ郢晢ｽｼ郢晢ｿｽ郢晏ｸ厥｡郢ｧ・､郢昴・*/
    --bg-dark: #0f172a;
    /* 雎ｺ・ｱ邵ｺ・ｿ邵ｺ・ｮ邵ｺ繧・ｽ狗ｹｧ・ｹ郢晢ｽｬ郢晢ｽｼ郢晏現繝ｭ郢ｧ・､郢晞屮・ｿ・ｽE */
    --text-main: #1e293b;
    /* 闖ｫ・｡鬯・ｽｼ隲｢貊ゑｽｿ・ｽE邵ｺ繧・ｽ玖ｱｺ・ｱ邵ｺ繝ｻ繝ｻ・ｽ繝ｻ・ｽ郢晢ｽｬ郢晢ｽｼ */
    --text-muted: #64748b;
    --accent-blue: #2563eb;
    /* 郢ｧ蛹ｻ・企ｭ・ｽｮ郢ｧ繝ｻ繝ｻ・ｽ繝ｻ・ｽ邵ｺ・ｧ雎ｺ・ｱ邵ｺ繝ｻ繝ｻ・ｽ繝ｻ・ｽ郢ｧ・､郢晢ｽ､郢晢ｽｫ郢晄じﾎ晉ｹ晢ｽｼ */
    --accent-indigo: #4f46e5;
    --accent-red: #f43f5e;
    /* 陝・ｻ｣・髣懶ｽｽ邵ｺ・｡騾ｹﾂ邵ｺ繝ｻ繝ｻ・ｽ繝ｻ・ｽ鬯ｮ蛟｡・ｴ螢ｽ笏邵ｺ・ｮ邵ｺ繧・ｽ狗ｹ晢ｽｭ郢晢ｽｼ郢ｧ・ｺ郢晢ｽｬ郢昴・繝ｻ・ｽ繝ｻ・ｽ */
    --accent-orange: #ff4d00;
    /* 郢晢ｽｭ郢ｧ・ｴ邵ｺ・ｨ陷茨ｽｱ鬨ｾ螟ｲ・ｿ・ｽE郢晄じﾎ帷ｹ晢ｽｳ郢晏ｳｨ縺檎ｹ晢ｽｬ郢晢ｽｳ郢ｧ・ｸ */

    --border-fine: rgba(30, 41, 59, 0.12);
    /* 0.06邵ｺ荵晢ｽ・.12邵ｺ・ｸ邵ｲ繧・ｽ育ｹｧ鄙ｫ繝ｯ郢昴・繝ｻ・ｽ繝ｻ・ｽ郢晢ｽｪ髫穂ｹ昶斡郢ｧ荵晢ｽ育ｸｺ繝ｻ繝ｻ・ｽ繝ｻ・ｽ */
    --grid-color: rgba(30, 41, 59, 0.04);
    /* 郢ｧ・ｰ郢晢ｽｪ郢昴・繝ｻ・ｽ繝ｻ・ｽ郢ｧ繧・ｽｰ莉｣・雎ｼ繝ｻ繝ｻ・ｽ繝ｻ・ｽ邵ｺ蜉ｱ窶ｻ髮会ｽｪ隲｢貅假ｽ定惺蜿ｰ・ｸ繝ｻ*/
    --transition-smooth: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}


* {
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
}

body {
    margin: 0;
    padding: 0;
    padding-top: 120px;
    /* 陜暦ｽｺ陞ｳ螟ｲ・ｿ・ｽE郢昴・繝ｻ・ｽ繝ｻ・ｽ郢晢ｽｼ陋ｻ繝ｻ繝ｻ・ｽE闖ｴ蜥丞項郢ｧ螳夲ｽｿ・ｽ陷会ｿｽ */
    font-family: 'Inter', 'Noto Sans JP', sans-serif;
    background-color: var(--bg-main);
    color: var(--text-main);
    font-size: 18px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    background-image: radial-gradient(var(--grid-color) 1px, transparent 1px);
    background-size: 40px 40px;
    overflow: visible;
    /* 郢ｧ・ｹ郢ｧ・ｯ郢晢ｽｭ郢晢ｽｼ郢晢ｽｫ郢ｧ讙tml邵ｺ・ｫ闕ｳﾂ闔会ｽｻ邵ｺ蜉ｱﾂ竏ｽ・ｺ遒√裟郢ｧ・ｹ郢ｧ・ｯ郢晢ｽｭ郢晢ｽｼ郢晢ｽｫ郢ｧ蟶昜ｺ溯ｱ・ｽ｢ */
    width: 100%;
    position: relative;
}

/* html { overflow-x: hidden !important; width: 100% !important; } */

/* 陷茨ｽｨ邵ｺ・ｦ邵ｺ・ｮ騾包ｽｻ陷剃ｸ岩ｲ邵ｺ・ｯ邵ｺ・ｿ陷・ｽｺ邵ｺ霈披・邵ｺ繝ｻ繝ｻ・ｽ繝ｻ・ｽ邵ｺ繝ｻ繝ｻ・ｽ繝ｻ・ｽ陟托ｽｷ陋ｻ・ｶ */
img {
    max-width: 100%;
    height: auto;
    display: inline-block;
    vertical-align: middle;
}

h1,
h2,
h3,
h4,
.display-font {
    font-family: 'Outfit', 'Noto Sans JP', sans-serif;
    letter-spacing: -0.04em;
    margin: 0;
}

.display-text {
    font-size: 1.6rem !important;
    line-height: 1.5;
    font-weight: 800;
    letter-spacing: -0.01em;
}

a {
    color: inherit;
    text-decoration: none;
    transition: var(--transition-smooth);
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
}

.text-center {
    text-align: center;
}

/* --- Navigation (Pill with Logo Image) --- */
.site-header {
    position: fixed;
    top: 3px;
    left: 50%;
    transform: translateX(-50%);
    width: 90%;
    max-width: 1100px;
    z-index: 1000;
}

@media (max-width: 1150px) {
    .site-header {
        top: 3px;
    }
}

.site-header-pill {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(16px);
    border: 1px solid rgba(0, 0, 0, 0.05);
    border-radius: 100px;
    padding: 3px 0;
    /* 8px邵ｺ荵晢ｽ・px邵ｺ・ｸ邵ｲ繧・ｼ・ｹｧ蟲ｨ竊鍋ｹｧ・ｹ郢晢ｽｪ郢晢ｿｽ邵ｺ・ｫ */
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
}

.pill-container {
    padding: 0 60px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo a {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--text-main);
    text-decoration: none;
}

.logo-text-group {
    display: flex;
    flex-direction: column;
    justify-content: center;
    line-height: 1.1;
}

.logo-tagline {
    font-size: 0.65rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    color: var(--text-main);
    margin-bottom: 2px;
    font-family: 'Noto Sans JP', sans-serif;
}

.logo-name {
    font-weight: 900;
    font-size: 1.55rem;
    letter-spacing: -0.04em;
    font-family: 'Outfit', sans-serif;
}

.logo-img-header {
    height: 58px;
    width: auto;
    display: block;
}


.global-nav ul,
.nav-menu-list {
    display: flex;
    gap: 20px;
    list-style: none;
    margin: 0;
    padding: 0;
}


/* PC髯ｦ・ｨ驕会ｽｺ邵ｺ・ｧ邵ｺ・ｯ郢ｧ・ｹ郢晄ｩｸ・ｿ・ｽE陝・ｉ逡醍ｸｺ・ｮ郢晏･繝｣郢敖郢晢ｽｼ郢晢ｽｻ郢晁ｼ斐Ε郢ｧ・ｿ郢晢ｽｼ隲繝ｻ繝ｻ・ｽ繝ｻ・ｽ郢ｧ蟶晏恚邵ｺ繝ｻ*/
.nav-header-info,
.nav-legal {
    display: none;
}

.nav-content-inner {
    display: contents;
    /* PC邵ｺ・ｧ邵ｺ・ｯ郢晢ｽｩ郢昴・繝ｻ・ｽE郢ｧ蝣､笏碁囎謔ｶ・邵ｺ・ｦ闕ｳ・ｭ邵ｺ・ｮul郢ｧ蝣､蟲ｩ隰暦ｽ･鬩溷調・ｽ・ｮ */
}

.global-nav a {
    font-size: 0.95rem;
    /* 陝・ｻ｣・陞滂ｽｧ邵ｺ髦ｪ・･邵ｺ蜉ｱ窶ｻ髫募・・ｪ閧ｴﾂ・ｧ陷ｷ蜿ｰ・ｸ繝ｻ*/
    font-weight: 800;
    letter-spacing: 0.1em;
    color: var(--text-main);
    position: relative;
}

.global-nav a::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 1px;
    background: var(--text-main);
    transition: var(--transition-smooth);
}

.global-nav a:hover::after {
    width: 100%;
}

.global-nav a:hover {
    color: var(--text-main);
}

.btn-contact {
    color: var(--text-main) !important;
    font-weight: 800;
    /* 郢昴・繝ｻ・ｽ繝ｻ・ｽ郢ｧ・ｹ郢晁肩・ｿ・ｽE邵ｺ・ｿ邵ｺ・ｧ郢ｧ繧九裟髫補扱ﾂ・ｧ邵ｺ蠕｡・ｼ譏ｴ・冗ｹｧ荵晢ｽ育ｸｺ繝ｻ繝ｻ・ｽ繝ｻ・ｽ邵ｺ諤懶ｽ､・ｪ郢ｧ竏壺・ */
}

.btn-contact:hover {
    color: var(--accent-blue) !important;
}

/* --- Dashboard / Platform Visualization (SaaS Look) --- */
.dashboard-preview {
    margin-top: 80px;
    position: relative;
    padding: 20px;
    background: rgba(255, 255, 255, 0.4);
    border-radius: 24px;
    border: 1px solid var(--border-fine);
    box-shadow: 0 40px 100px rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

.db-header {
    display: flex;
    gap: 8px;
    margin-bottom: 20px;
}

.db-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #e2e8f0;
}

.db-grid {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 20px;
}

.db-sidebar {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.db-bar-mini {
    height: 12px;
    background: #f1f5f9;
    border-radius: 4px;
    width: 80%;
}

.db-bar-mini.is-highlight {
    width: 100%;
    background: var(--accent-blue);
    opacity: 0.2;
}

.db-main-content {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
}

.db-card {
    background: #fff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--border-fine);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.02);
}

.db-graph {
    height: 60px;
    background: linear-gradient(90deg, #f1f5f9 0%, transparent 100%);
    margin-top: 15px;
    border-radius: 4px;
    position: relative;
    overflow: hidden;
}

.db-graph::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(0deg, var(--accent-blue) 0%, transparent 80%);
    opacity: 0.1;
    transform: translateY(30px);
    animation: graphRise 2s ease-out forwards;
}

@keyframes graphRise {
    to {
        transform: translateY(0);
    }
}

.hero-v2 {
    height: 100vh;
    margin-top: -120px;
    /* 郢晄慣・ｿ・ｽE郢晢ｽｭ郢晢ｽｼ邵ｺ・ｮ邵ｺ・ｿ郢晏･繝｣郢敖郢晢ｽｼ邵ｺ・ｫ雋取㈱・企恷・ｼ邵ｺ・ｾ邵ｺ蟶呻ｽ・*/
    display: flex;
    align-items: center;
    background: linear-gradient(rgba(255, 255, 255, 0.78), rgba(255, 255, 255, 0.82)), url('../images/hero-bg-jp.webp?v=1.7') 28% 20%/cover no-repeat;
    position: relative;
    overflow: hidden;
    padding: 160px 0 60px;
    /* 闕ｳ莨∃夂ｸｺ・ｫ闖ｴ蜥丞項郢ｧ螳夲ｽｿ・ｽ陷会ｿｽ邵ｺ蜉ｱ窶ｻ郢晏･繝｣郢敖郢晢ｽｼ邵ｺ・ｨ邵ｺ・ｮ鬩･髦ｪ竊醍ｹｧ鄙ｫ・定摎讓｣竏ｩ */
}

.hero-flex {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 80px;
    align-items: center;
}

.hero-content {
    z-index: 2;
}

.hero-badge {
    font-size: 1.25rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--accent-blue);
    display: block;
    margin-bottom: 40px;
    white-space: nowrap;
}

.hero-main-title {
    font-size: clamp(2.2rem, 5vw, 3.5rem);
    font-weight: 900;
    line-height: 1.3;
    margin-bottom: 40px;
}

.text-accent {
    color: var(--accent-red);
}

.hero-description {
    max-width: 650px;
    font-size: 1.15rem;
    font-weight: 500;
    color: var(--text-muted);
    text-align: left;
    line-height: 1.7;
}

.hero-nationwide {
    display: inline-block;
    margin-top: 32px;
    font-family: 'Outfit', 'Noto Sans JP', sans-serif;
    font-size: 1.8rem;
    font-weight: 900;
    letter-spacing: 0.15em;
    color: var(--text-main);
    border-bottom: 3px solid var(--accent-blue);
    padding-bottom: 4px;
    margin-bottom: 8px;
}

.hero-nationwide-sub {
    font-size: 1rem;
    color: var(--text-muted);
    margin: 0;
}

.hero-visual-area {
    position: relative;
    z-index: 1;
}

/* 郢晄慣・ｿ・ｽE郢晢ｽｭ郢晢ｽｼ陷繝ｻ繝ｻ・ｽ繝ｻ・ｽ郢晢ｽｼ郢ｧ・ｹ郢ｧ・ｱ郢晢ｽｼ郢ｧ・ｹ郢晏干ﾎ樒ｹ晁侭ﾎ礼ｹ晢ｽｼ (Premium Redesign) */
.hero-usecase-preview {
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-radius: 32px;
    padding: 20px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.8);
    width: 100%;
    position: relative;
    z-index: 10;
}

.hero-preview-header {
    margin-bottom: 32px;
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.04);
}

.hero-preview-title {
    font-size: 1.4rem;
    font-weight: 900;
    margin-bottom: 12px;
    color: var(--text-main);
    letter-spacing: -0.02em;
}

.hero-preview-features {
    display: flex;
    gap: 10px;
}

.preview-feature-badge {
    font-size: 0.75rem;
    font-weight: 800;
    padding: 4px 12px;
    background: #f1f5f9;
    color: #64748b;
    border-radius: 6px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.hero-uc-grid {
    display: flex;
    flex-direction: column;
    gap: 24px;
    /* 髯ｦ遒∽ｿ｣邵ｺ・ｫ陷翫・・ｿ・ｽE邵ｺ・ｪ郢ｧ繝ｻ繝ｻ・ｽ繝ｻ・ｽ郢ｧ繝ｻ*/
}

.hero-uc-item {
    display: grid;
    grid-template-columns: 90px 1fr;
    /* 郢晢ｽｩ郢晏生ﾎ晉ｸｺ・ｨ郢ｧ・ｿ郢ｧ・ｰ邵ｺ・ｮ陞ｳ魃会ｽｿ・ｽE陋ｻ繝ｻ繝ｻ・ｽ繝ｻ・ｽ */
    gap: 20px;
    align-items: flex-start;
}

.hero-uc-label {
    font-size: 0.65rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    padding: 6px 0;
    text-align: center;
    border-radius: 4px;
    text-transform: uppercase;
    white-space: nowrap;
}

.hero-uc-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.hero-uc-tag {
    font-size: 0.78rem;
    font-weight: 600;
    padding: 5px 14px;
    background: #f8fafc;
    border: 1px solid rgba(0, 0, 0, 0.04);
    border-radius: 100px;
    color: #475569;
    transition: var(--transition-smooth);
}

.tag-hot {
    background: #fff;
    border-color: rgba(255, 69, 58, 0.2);
    color: #ff3b30;
    font-weight: 700;
}

.hero-preview-footer {
    margin-top: 40px;
    text-align: right;
}

.hero-more-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.8rem;
    font-weight: 900;
    letter-spacing: 0.15em;
    color: var(--bg-dark);
    text-decoration: none;
    padding: 10px 0;
    border-bottom: 2px solid var(--bg-dark);
    transition: var(--transition-smooth);
}

.hero-more-btn:hover {
    gap: 12px;
    opacity: 0.7;
}

.hero-more-btn span {
    font-size: 0.7rem;
}

.hero-uc-tag--red {
    border-color: var(--accent-red);
    color: var(--accent-red);
    font-weight: 700;
}

.hero-concept-img {
    width: 100%;
    height: auto;
    border-radius: 20px;
    box-shadow: 0 40px 80px rgba(0, 0, 0, 0.12);
    transform: rotate(1.5deg);
    transition: var(--transition-smooth);
}

.hero-concept-img:hover {
    transform: rotate(0deg) scale(1.02);
}

.hero-people-img {
    width: 100%;
    height: auto;
    border-radius: 12px;
    box-shadow: 40px 40px 80px rgba(0, 0, 0, 0.15);
    transform: rotate(2deg);
    /* 郢ｧ荳岩・邵ｺ荵昶・陋ｯ・ｾ邵ｺ莉｣窶ｻ陷崎ｼ披ｳ郢ｧ謚ｵ・ｿ・ｽE邵ｺ繝ｻ*/
    transition: var(--transition-smooth);
}

.hero-people-img:hover {
    transform: rotate(0deg) scale(1.02);
}

.hero-visual-label {
    position: absolute;
    bottom: -20px;
    right: -20px;
    background: var(--bg-dark);
    color: #fff;
    padding: 12px 32px;
    font-family: 'Outfit';
    font-weight: 900;
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    border-radius: 4px;
    transform: rotate(-1deg);
    display: block;
    /* 陷茨ｽｨ闖ｴ阮呻ｽ堤ｹ晢ｽｪ郢晢ｽｳ郢ｧ・ｯ邵ｺ・ｫ邵ｺ蜷ｶ・・*/
    transition: var(--transition-smooth);
    z-index: 10;
}

.hero-visual-label:hover {
    background: var(--accent-blue);
    transform: rotate(0deg) scale(1.1);
    box-shadow: 0 10px 30px rgba(59, 130, 246, 0.3);
    color: #fff;
}

.hero-actions {
    margin-top: 60px;
    display: flex;
    gap: 40px;
    align-items: center;
}

.btn-primary {
    font-family: 'Outfit';
    font-weight: 900;
    font-size: 1.6rem;
    color: var(--text-main);
    position: relative;
    padding-bottom: 10px;
}

.btn-primary::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 60%;
    height: 4px;
    background: var(--accent-blue);
    transition: var(--transition-smooth);
}

.btn-primary:hover::after {
    width: 100%;
}

.btn-secondary {
    font-weight: 800;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    color: var(--text-muted);
}

.btn-link-arrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--text-main);
    position: relative;
    padding: 6px 0;
    transition: var(--transition-smooth);
    margin-top: 24px;
}

.btn-link-arrow::after {
    content: '遶翫・;
 font-family: 'Outfit', sans-serif;
    font-size: 1.1rem;
    transition: var(--transition-smooth);
}

.btn-link-arrow::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 24px;
    height: 2px;
    background: var(--accent-blue);
    transition: var(--transition-smooth);
}

.btn-link-arrow:hover {
    color: var(--accent-blue);
    gap: 18px;
}

.btn-link-arrow:hover::before {
    width: 100%;
}

.case-tech-stack {
    margin: 80px 0;
    padding: 60px;
    background: #f8fafc;
    border-radius: 30px;
    text-align: center;
}

.case-tech-stack h5 {
    font-size: 0.85rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    margin-bottom: 30px;
    color: var(--text-muted);
}

.tech-tags {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
}

.tech-tag {
    display: inline-block;
    padding: 10px 24px;
    background: #fff;
    border: 1px solid var(--border-fine);
    border-radius: 100px;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-main);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.02);
}

.case-footer-actions {
    display: flex;
    justify-content: center;
    gap: 24px;
    margin: 80px 0 120px;
}

.case-footer-actions .btn-secondary,
.case-footer-actions .btn-contact {
    padding: 16px 40px;
    border-radius: 100px;
    font-weight: 800;
    font-size: 1rem;
    transition: var(--transition-smooth);
}

.case-footer-actions .btn-secondary {
    background: #fff;
    border: 1px solid var(--border-fine);
    color: var(--text-main);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
}

.case-footer-actions .btn-contact {
    background: linear-gradient(135deg, var(--accent-blue) 0%, #2563eb 100%);
    color: #fff !important;
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 10px 30px rgba(59, 130, 246, 0.3);
}

.case-footer-actions a:hover {
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
}

/* --- Sections --- */
.section {
    padding: 100px 0;
    border-top: 1px solid var(--border-fine);
}

/* --- Use Cases Section --- */
.section-compact {
    padding: 100px 0;
    border-top: 1px solid var(--border-fine);
}

.usecase-category-grid {
    display: flex;
    flex-direction: column;
    gap: 32px;
    margin-bottom: 40px;
}

.usecase-category {
    display: flex;
    align-items: flex-start;
    gap: 32px;
    padding: 40px;
    background: #fff;
    border: 1px solid var(--border-fine);
    border-radius: 24px;
    transition: var(--transition-smooth);
}

.usecase-category:hover {
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.04);
    transform: translateY(-4px);
}

.usecase-category.has-image {
    display: grid;
    grid-template-columns: 1fr 280px;
    align-items: center;
}

.usecase-info {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.usecase-img-wrapper {
    width: 100%;
    height: 180px;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

.usecase-img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: var(--transition-smooth);
}

.usecase-category:hover .usecase-img-wrapper img {
    transform: scale(1.05);
}

.cat-label {
    flex-shrink: 0;
    width: 120px;
    padding: 6px 14px;
    border-radius: 99px;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-align: center;
    margin-bottom: 12px;
}

/* 郢ｧ・ｫ郢昴・繝ｻ・ｽ繝ｻ・ｽ郢晢ｽｪ陋ｻ・･郢ｧ・ｫ郢晢ｽｩ郢晢ｽｼ */
.cat-info {
    background: #e0f2fe;
    color: #0369a1;
}

.cat-ops {
    background: #f0fdf4;
    color: #15803d;
}

.cat-finance {
    background: #fef9c3;
    color: #a16207;
}

.cat-customer {
    background: #ffe4e6;
    color: #be123c;
}

.cat-schedule {
    background: #f3e8ff;
    color: #7e22ce;
}

.usecase-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.usecase-tag {
    display: inline-block;
    padding: 8px 18px;
    background: #f8fafc;
    border: 1px solid var(--border-fine);
    border-radius: 99px;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--text-main);
    transition: var(--transition-smooth);
}

.usecase-tag:hover {
    background: #fff;
    border-color: var(--accent-blue);
    color: var(--accent-blue);
}

/* 隴・ｽｰ騾ｹﾂ郢晢ｽｻ邵ｺ鄙ｫ笘・ｸｺ蜷ｶ・∫ｹｧ・｢郢ｧ・､郢昴・繝ｻ・ｽ繝ｻ・ｽ */
.usecase-tag--highlight {
    border-color: var(--accent-red);
    color: var(--accent-red);
    font-weight: 700;
}

.usecase-note {
    font-size: 0.9rem;
    color: var(--text-muted);
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid var(--border-fine);
}

@media (max-width: 992px) {

    .usecase-category,
    .usecase-category.has-image {
        grid-template-columns: 1fr;
        padding: 30px;
        gap: 20px;
    }

    .usecase-img-wrapper {
        order: -1;
        height: 200px;
    }
}

.section-title {
    font-size: 2.2rem;
    font-weight: 900;
    color: var(--text-main);
    margin-bottom: 60px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    position: relative;
    letter-spacing: -0.02em;
    /* 隴鯉ｽ･隴幢ｽｬ髫ｱ讒ｭ縺｡郢ｧ・､郢晏現ﾎ晉ｸｺ・ｯ髫ｧ・ｰ郢ｧ竏ｵ・ｰ諤懆｢也ｸｺ・ｫ */
}

.section-title::before {
    content: '';
    width: 40px;
    height: 4px;
    background: var(--accent-blue);
    margin-bottom: 10px;
}

.section-title::after {
    content: attr(data-en);
    font-family: 'Outfit', sans-serif;
    font-size: 0.9rem;
    font-weight: 900;
    color: var(--accent-blue);
    letter-spacing: 0.2em;
    text-transform: uppercase;
    order: -1;
    /* 郢ｧ・ｿ郢ｧ・､郢晏現ﾎ晉ｸｺ・ｮ闕ｳ鄙ｫ竊馴勗・ｨ驕会ｽｺ */
}

/* --- Feature Cards (Premium Redesign) --- */
.feature-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}

.feature-card {
    position: relative;
    padding: 60px 40px 40px;
    background: #fff;
    border: 1px solid var(--border-fine);
    border-radius: 40px;
    transition: var(--transition-smooth);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* 髢ｭ譴ｧ蜍ｹ邵ｺ・ｮ雎鯉ｽｴ鬨ｾ荳環ｰ邵ｺ邇ｲ辟夊氛繝ｻ(Editorial Look) */
.feature-card::before {
    content: attr(data-num);
    position: absolute;
    top: -10px;
    right: -10px;
    font-size: 10rem;
    font-weight: 900;
    font-family: 'Outfit', sans-serif;
    color: var(--text-main);
    opacity: 0.03;
    /* 隶鯉ｽｵ髦ｮ繝ｻ繝ｻ・ｽ繝ｻ・ｽ邵ｺ蜷ｶ・狗ｸｺ阮吮・邵ｺ・ｧ鬯ｮ蛟｡・ｴ螢ｽ笏郢ｧ蜻茨ｽｼ雋ｻ・ｿ・ｽE */
    line-height: 1;
    pointer-events: none;
    z-index: 0;
}

.feature-card:hover {
    transform: translateY(-12px);
    box-shadow: 0 40px 80px rgba(0, 0, 0, 0.08);
    border-color: var(--accent-blue);
}

.feature-icon-box {
    width: 80px;
    height: 80px;
    background: #fff;
    border-radius: 24px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.04);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 36px;
    position: relative;
    z-index: 1;
    transition: var(--transition-smooth);
}

.feature-icon-box svg {
    width: 36px;
    height: 36px;
    transition: var(--transition-smooth);
}

.feature-card:nth-child(1) .feature-icon-box {
    background: rgba(59, 130, 246, 0.08);
    color: var(--accent-blue);
}

.feature-card:nth-child(2) .feature-icon-box {
    background: rgba(0, 0, 0, 0.04);
    color: var(--text-main);
}

.feature-card:nth-child(3) .feature-icon-box {
    background: rgba(197, 51, 15, 0.08);
    color: var(--accent-red);
}

/* Hover Interaction: Glow & Change Color */
.feature-card:nth-child(1):hover .feature-icon-box {
    background: var(--accent-blue);
    color: #fff;
    box-shadow: 0 15px 35px rgba(59, 130, 246, 0.4);
}

.feature-card:nth-child(2):hover .feature-icon-box {
    background: var(--text-main);
    color: #fff;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.3);
}

.feature-card:nth-child(3):hover .feature-icon-box {
    background: var(--accent-red);
    color: #fff;
    box-shadow: 0 15px 35px rgba(197, 51, 15, 0.4);
}

.feature-card:hover .feature-icon-box svg {
    transform: scale(1.1);
}

.keyword-wrapper {
    margin-bottom: 24px;
    position: relative;
    z-index: 1;
}

.katakana-label {
    display: block;
    font-size: 1.8rem;
    font-weight: 900;
    color: var(--text-main);
    line-height: 1.1;
    margin-bottom: 8px;
    letter-spacing: -0.02em;
}

.strength-keyword {
    font-size: 0.85rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.4em;
    color: var(--accent-red);
    font-family: 'Outfit', sans-serif;
    margin: 0;
    opacity: 0.8;
}

.feature-card p {
    font-size: 1.1rem;
    color: var(--text-muted);
    line-height: 1.7;
    margin: 0;
    position: relative;
    z-index: 1;
}

/* --- Concept --- */
.concept-split {
    display: flex;
    flex-wrap: wrap;
    /* 隰壼･・企恆譁撰ｼ郢ｧ螳夲ｽｨ・ｱ陞ｳ・ｹ邵ｺ蜉ｱ窶ｻ陝・ｩ郢ｧ蠕鯉ｽ帝ｫｦ・ｲ雎・ｽ｢ */
    gap: 60px;
    align-items: center;
}

.concept-text {
    flex: 1;
    min-width: 600px;
    /* 郢昴・繝ｻ・ｽ繝ｻ・ｽ郢ｧ・ｹ郢晁肩・ｿ・ｽE隴崢陝・ｸ橸ｽｹ繝ｻ繝ｻ・ｽ繝ｻ・ｽ驕抵ｽｺ闖ｫ譏ｴ・邵ｺ・ｦ陜吝唱・ｴ・ｩ郢ｧ蠕鯉ｽ帝ｫｦ・ｲ邵ｺ繝ｻ*/
}

.concept-visual {
    flex: 0.8;
    min-width: 300px;
}


.concept-message {
    font-size: 1.15rem;
    color: var(--text-main);
    line-height: 1.8;
    margin-bottom: 60px;
    position: relative;
    padding-top: 30px;
}

.concept-message::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 60px;
    height: 2px;
    background: var(--accent-red);
}

.concept-message p+p {
    margin-top: 24px;
}

.highlight-text {
    font-weight: 800;
    color: var(--text-main);
    background: linear-gradient(transparent 60%, rgba(59, 130, 246, 0.1) 60%);
    display: inline;
}

/* --- Flow Section --- */
.bg-light-gray {
    background-color: #f8fafc;
}

/* --- Flow Section V2 (Connected & Modern) --- */
.flow-container {
    position: relative;
    padding: 40px 0;
}

.flow-path-line {
    position: absolute;
    top: 100px;
    left: 40px;
    width: 2px;
    height: calc(100% - 200px);
    background: linear-gradient(to bottom, var(--accent-blue) 0%, transparent 100%);
    opacity: 0.1;
    z-index: 0;
    display: none;
}

.flow-grid-v2 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 80px 40px;
    position: relative;
    z-index: 1;
}

.flow-item-v2 {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative;
}

.flow-icon-wrapper {
    width: 160px;
    height: 160px;
    background: #fff;
    border-radius: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 32px;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.04);
    position: relative;
    border: 1px solid var(--border-fine);
}

.flow-num-v2 {
    position: absolute;
    top: -12px;
    left: -12px;
    background: var(--accent-blue);
    color: #fff;
    width: 34px;
    height: 34px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    font-weight: 900;
    font-family: 'Outfit';
    box-shadow: 0 8px 20px rgba(59, 130, 246, 0.3);
}

.flow-icon-img {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5px;
    /* 郢昜ｻ｣繝ｧ郢ｧ・｣郢晢ｽｳ郢ｧ・ｰ郢ｧ螳夲ｽｩ・ｰ郢ｧ竏壺ｻ郢ｧ・､郢晢ｽｩ郢ｧ・ｹ郢晏現・定棔・ｧ邵ｺ髦ｪ・･髫穂ｹ昶雷郢ｧ繝ｻ*/
    overflow: hidden;
}

.flow-icon-img img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.flow-icon {
    color: var(--accent-blue);
}

.flow-title-v2 {
    font-size: 1.25rem;
    font-weight: 900;
    margin-bottom: 16px;
    color: var(--text-main);
    letter-spacing: 0.02em;
}

.flow-content-v2 p {
    font-size: 0.95rem;
    color: var(--text-muted);
    line-height: 1.7;
    margin: 0;
}

/* 郢昴・繝ｻ・ｽ繝ｻ・ｽ郢ｧ・ｯ郢晏現繝｣郢晉､ｼ逡醍ｹｧ・ｳ郢晞亂縺醍ｹ昴・繝ｻ・ｽ繝ｻ・ｽ郢晢ｽｳ郢ｧ・ｰ郢晢ｽｩ郢ｧ・､郢晢ｽｳ */
@media (min-width: 993px) {
    .flow-item-v2::after {
        content: '遶翫・;
 position: absolute;
        top: 80px;
        left: calc(100% - 20px);
        font-size: 1.5rem;
        color: var(--accent-blue);
        opacity: 0.2;
        font-family: 'Outfit';
    }

    .flow-item-v2:nth-child(3n)::after {
        display: none;
    }
}

/* Flow mobile styles moved to end for priority */

.flow-footer-card {
    background: #fff;
    color: var(--text-main);
    padding: 30px 60px;
    border-radius: 100px;
    border: 1px solid var(--border-fine);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.05);
    display: flex;
    align-items: center;
    gap: 40px;
    max-width: 900px;
    margin: 80px auto 0;
    position: relative;
    background-image: radial-gradient(at top left, rgba(197, 51, 15, 0.03), transparent);
}

.footer-card-icon {
    font-size: 2.5rem;
    flex-shrink: 0;
}

.footer-card-content h4 {
    font-size: 1.5rem;
    font-weight: 900;
    margin-bottom: 8px;
    color: var(--text-main);
}

.footer-card-content p {
    font-size: 1.1rem;
    color: var(--text-muted);
    margin: 0;
}

@media (max-width: 992px) {
    .flow-grid {
        grid-template-columns: 1fr;
    }

    .flow-footer-card {
        flex-direction: column;
        text-align: center;
    }
}

.caution-box {
    margin-top: 60px;
    font-size: 1.15rem;
    /* 邵ｺ蜉ｱ笆ｲ邵ｺ荵晢ｽ顔ｸｺ・ｨ髫ｱ・ｭ郢ｧ竏夲ｽ狗ｹｧ・ｵ郢ｧ・､郢ｧ・ｺ邵ｺ・ｸ隲｡・｡陞滂ｽｧ */
    color: var(--text-muted);
    border-top: 1px solid var(--border-fine);
    padding-top: 40px;
}

/* --- Integrated Chat (Premium Dark Mood) --- */
/* --- Integrated Chat (Premium Light Edition) --- */
.bg-light-gradient {
    background-color: #f8fafc;
    position: relative;
    color: var(--text-main);
    border-radius: 60px 60px 0 0;
    margin: 80px 20px 0;
    padding: 60px 0;
    border-top: 1px solid var(--border-fine);
}

.chat-intro {
    text-align: center;
    margin-bottom: 60px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.chat-intro .section-title {
    align-items: center;
    margin-bottom: 40px;
}

.chat-intro .section-title::before {
    margin: 0 auto 12px;
}


.chat-intro .display-text {
    max-width: 800px;
    margin: 0 auto;
}

/* 闔会ｽ･陷第誓・ｿ・ｽE郢敖郢晢ｽｼ郢ｧ・ｯ郢昴・繝ｻ・ｽE郢晄ｨ堤舞髯ｬ繝ｻ繝ｻ・ｽ繝ｻ・ｽ繝ｻ・ｽE繝ｻ・ｽ陝ｾ・ｨ陞滂ｽｧ邵ｺ・ｪ陟厄ｽｱ邵ｺ・ｪ邵ｺ・ｩ繝ｻ・ｽE繝ｻ・ｽ郢ｧ雋橸ｽｮ魃会ｽｿ・ｽE邵ｺ・ｫ隰怜ｸ晏求 */
#chat-section::before,
#chat-section::after,
.bg-light-gradient::before,
.bg-light-gradient::after {
    display: none !important;
    content: none !important;
    background: none !important;
}

/* Big LINE Button Style */
.big-line-btn {
    display: flex;
    align-items: center;
    background: #06C755;
    color: #fff !important;
    padding: 24px 40px;
    border-radius: 24px;
    text-decoration: none;
    transition: var(--transition-smooth);
    max-width: 600px;
    margin: 0 auto 40px;
    box-shadow: 0 20px 40px rgba(6, 199, 85, 0.2);
    position: relative;
    z-index: 100;
    /* 隴崢陷大涵謫・ｸｺ・ｫ */
}

.big-line-btn:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 30px 60px rgba(6, 199, 85, 0.4);
    color: #fff !important;
}

.big-line-btn .btn-icon {
    width: 48px;
    height: 48px;
    margin-right: 24px;
    flex-shrink: 0;
}

.big-line-btn .btn-icon svg {
    width: 100%;
    height: 100%;
}

.big-line-btn .btn-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    text-align: left;
}

.big-line-btn .btn-sub {
    font-size: 0.9rem;
    opacity: 0.9;
    font-weight: 700;
    margin-bottom: 4px;
}

.big-line-btn .btn-main {
    font-size: 1.4rem;
    font-weight: 900;
    letter-spacing: 0.05em;
}

.big-line-btn .btn-arrow {
    margin-left: 20px;
    opacity: 0.8;
    transition: var(--transition-smooth);
}

.big-line-btn:hover .btn-arrow {
    transform: translateX(10px);
}

.or-divider {
    text-align: center;
    margin: 20px 0 40px;
    color: var(--text-muted);
    font-weight: 700;
    font-size: 0.9rem;
    position: relative;
}

.or-divider::before,
.or-divider::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 100px;
    height: 1px;
    background: var(--border-fine);
}

.or-divider::before {
    right: calc(50% + 120px);
}

.or-divider::after {
    left: calc(50% + 120px);
}

/* 郢晢ｽｩ郢ｧ・､郢晏現繝ｦ郢晢ｽｼ郢晄ｨ堤舞郢昶・ﾎ慕ｹ昴・繝ｻ・ｽ繝ｻ・ｽ郢晄㈱繝｣郢ｧ・ｯ郢ｧ・ｹ */
.chat-integrated-light {
    background: #ffffff !important;
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    box-shadow: 0 30px 60px -12px rgba(0, 0, 0, 0.1) !important;
    border-radius: 100px;
    padding: 10px 14px 10px 30px;
    display: flex;
    align-items: center;
    max-width: 800px;
    margin: 0 auto;
}

.chat-integrated-light .search-icon {
    color: #94a3b8;
    margin-right: 20px;
    flex-shrink: 0;
}

.chat-integrated-light .search-input {
    flex: 1;
    border: none !important;
    background: transparent !important;
    font-size: 1.1rem;
    color: var(--text-main) !important;
    padding: 12px 0;
    outline: none !important;
    box-shadow: none !important;
}

.chat-integrated-light .search-submit-btn {
    background: var(--accent-blue);
    color: #fff;
    border: none;
    padding: 14px 32px;
    border-radius: 100px;
    font-family: 'Outfit';
    font-weight: 900;
    font-size: 0.9rem;
    letter-spacing: 0.1em;
    cursor: pointer;
    transition: var(--transition-smooth);
}

.chat-integrated-light .search-submit-btn:hover {
    background: var(--accent-red);
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(197, 51, 15, 0.3);
}


.chat-integrated {
    background: #ffffff;
    border-radius: 100px;
    padding: 10px 14px 10px 30px;
    box-shadow: 0 30px 60px -12px rgba(0, 0, 0, 0.4);
    display: flex;
    align-items: center;
    max-width: 800px;
    margin: 60px auto 0;
    border: none;
}

.chat-integrated .search-icon {
    color: #94a3b8;
    margin-right: 20px;
}

.chat-integrated .search-input {
    flex: 1;
    border: none !important;
    background: transparent !important;
    font-size: 1.1rem;
    color: #1a1c1e !important;
    padding: 12px 0;
    outline: none !important;
    box-shadow: none !important;
}

.chat-integrated .voice-input-btn {
    background: #f1f5f9;
    border: none;
    color: #64748b;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    margin: 0 10px;
    transition: var(--transition-smooth);
}

.chat-integrated .voice-input-btn:hover {
    background: var(--accent-red);
    color: #fff;
}

.chat-integrated .search-submit-btn {
    background: #1a1c1e;
    color: #fff;
    border: none;
    padding: 14px 32px;
    border-radius: 100px;
    font-family: 'Outfit';
    font-weight: 900;
    font-size: 0.9rem;
    letter-spacing: 0.1em;
    cursor: pointer;
    transition: var(--transition-smooth);
}

.chat-integrated .search-submit-btn:hover {
    background: var(--accent-red);
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(197, 51, 15, 0.3);
}

.chat-messages-container {
    max-width: 800px;
    margin: 40px auto 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding-bottom: 40px;
}

.chat-msg {
    max-width: 80%;
    padding: 16px 24px;
    border-radius: 20px;
    font-size: 1.05rem;
    line-height: 1.6;
    animation: msgSlideUp 0.4s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}

@keyframes msgSlideUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.msg-user {
    align-self: flex-end;
    background: var(--accent-blue);
    color: #fff;
    border-bottom-right-radius: 4px;
    box-shadow: 0 10px 20px rgba(59, 130, 246, 0.2);
}

.msg-ai {
    align-self: flex-start;
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.05);
    color: var(--text-main);
    border-bottom-left-radius: 4px;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.03);
}


/* --- Cases --- */
.cards-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

.case-card {
    border: none;
    border-radius: 0;
}

.case-thumb {
    aspect-ratio: 16/10;
    background: #eee;
    background-size: cover;
    background-position: center;
    margin-bottom: 24px;
    transition: var(--transition-smooth);
    border-radius: 24px 24px 0 0;
}

.case-card:hover .case-thumb {
    filter: brightness(1.1) saturate(1.1);
    transform: scale(1.05);
}

.case-title {
    font-size: 1.5rem;
    margin-bottom: 10px;
}

.case-content {
    display: flex;
    flex-direction: column;
}

.case-content .btn-link-arrow {
    align-self: flex-end;
}

/* --- Footer (Right Aligned) --- */
/* --- Footer (Premium Editorial Refinement) --- */
.site-footer {
    padding: 20px 0 20px;
    background-color: #fff;
    border-top: 1px solid var(--border-fine);
    position: relative;
    overflow: hidden;
}

.site-footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: radial-gradient(var(--grid-color) 1px, transparent 1px);
    background-size: 60px 60px;
    opacity: 0.5;
    pointer-events: none;
}


.footer-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 40px 0;
    width: 100%;
}



.footer-info {
    display: flex;
    flex-direction: column;
    text-align: center;
    align-items: center;
    flex: 0 0 auto;
}


.footer-logo {
    margin-bottom: 16px;
}

.footer-logo-img {
    height: 180px;
    /* 200px邵ｺ荵晢ｽ芽包ｽｮ髫ｱ・ｿ隰ｨ・ｴ邵ｺ蜉ｱ繝ｰ郢晢ｽｩ郢晢ｽｳ郢ｧ・ｹ郢ｧ蝣､・｢・ｺ闖ｫ繝ｻ*/
    width: auto;
    filter: brightness(1.05);
    transition: var(--transition-smooth);
}

.footer-logo-img:hover {
    transform: translateY(-3px);
}

.footer-brand-group {
    margin-bottom: 16px;
}

.footer-tagline {
    color: #333 !important;
    font-size: 0.85rem !important;
    font-weight: 800 !important;
    margin-top: 8px;
    margin-bottom: 0;
}

.footer-info .footer-brand-name {
    font-family: 'Outfit', sans-serif;
    font-weight: 900;
    font-size: 28px;
    letter-spacing: -0.04em;
    color: var(--text-main);
    margin-top: 0;
    margin-bottom: 4px;
    line-height: 1;
}

.footer-operator {
    font-size: 0.85rem;
    font-weight: 800;
    color: var(--text-main);
    margin-top: 0;
    margin-bottom: 12px;
}

.related-link-wrapper {
    margin-top: 0;
}

.related-link-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    background: #f8fafc;
    border: 1px solid var(--border-fine);
    border-radius: 100px;
    transition: var(--transition-smooth);
    text-decoration: none;
}

.related-link-badge:hover {
    background: #fff;
    border-color: var(--accent-blue);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}



.badge-text {
    font-size: 0.8rem;
    font-weight: 800;
    color: var(--text-main);
}

.badge-icon {
    color: var(--text-muted);
    transition: var(--transition-smooth);
}

.related-link-badge:hover .badge-icon {
    color: var(--accent-blue);
    transform: translate(2px, -2px);
}

.footer-right {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.footer-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    /* 陜吶ｉ蟲ｩ邵ｺ・ｫ鬩溷調・ｽ・ｮ */
    gap: 20px;
    /* 陝・ｻ｣・陟弱・繝ｻ・ｽ繝ｻ・ｽ邵ｺ・ｦ郢晁・ﾎ帷ｹ晢ｽｳ郢ｧ・ｹ郢ｧ螳夲ｽｪ・ｿ隰ｨ・ｴ */
    align-items: flex-end;
    /* 陷ｿ・ｳ陝・・繝ｻ・ｽ繝ｻ・ｽ */
}

.footer-nav a {
    font-size: 1rem;
    font-weight: 800;
    color: var(--text-main);
    letter-spacing: 0.05em;
    transition: var(--transition-smooth);
    position: relative;
    padding-bottom: 4px;
}

.footer-nav a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background: var(--accent-blue);
    transition: var(--transition-smooth);
}

.footer-nav a:hover {
    color: var(--accent-blue);
}

.footer-nav a:hover::after {
    width: 100%;
}

.footer-bottom-full {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 40px;
    margin-top: 0px;
    padding-top: 10px;
    border-top: 1px solid var(--border-fine);
    width: 100%;
}

.footer-legal-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: 24px;
}

.footer-legal-nav a {
    font-size: 0.8rem;
    color: var(--text-muted);
    font-weight: 700;
    transition: var(--transition-smooth);
}

.footer-legal-nav a:hover {
    color: var(--accent-blue);
    opacity: 1;
}

.copyright {
    font-size: 0.75rem;
    color: var(--text-muted);
    opacity: 0.8;
    letter-spacing: 0.05em;
}

/* --- To Top Button --- */




    /* 郢ｧ・ｹ郢晄ｩｸ・ｿ・ｽE邵ｺ・ｧ邵ｺ・ｯ鬮ｫ・ｽ邵ｺ蜷ｶﾂｰ髫ｱ・ｿ隰ｨ・ｴ */
}






        /* 郢ｧ・ｹ郢晄ｩｸ・ｿ・ｽE邵ｺ・ｧ邵ｺ・ｯ郢ｧ・｢郢ｧ・､郢ｧ・ｳ郢晢ｽｳ邵ｺ・ｮ邵ｺ・ｿ邵ｺ・ｫ邵ｺ蜉ｱ窶ｻ郢ｧ・ｹ郢昴・繝ｻ・ｽ繝ｻ・ｽ郢晢ｽｪ邵ｺ霈披雷郢ｧ繝ｻ*/
    }
}

.to-top-btn {
    position: fixed;
    bottom: 24px;
    right: 24px;
    width: 48px;
    height: 48px;
    background: var(--bg-dark);
    color: #fff;
    border: none;
    border-radius: 50%;
    cursor: pointer;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
    transition: var(--transition-smooth);
    opacity: 0;
    visibility: hidden;
}

.to-top-btn.is-visible {
    opacity: 1;
    visibility: visible;
}

.to-top-btn:hover {
    transform: translateY(-5px);
    background: var(--accent-red);
}

/* --- Typing Animation --- */
.typing span {
    display: inline-block;
    width: 6px;
    height: 6px;
    background: #fff;
    border-radius: 50%;
    margin-right: 4px;
    opacity: 0.4;
    animation: typingDots 1.4s infinite;
}

.typing span:nth-child(2) {
    animation-delay: 0.2s;
}

.typing span:nth-child(3) {
    animation-delay: 0.4s;
}

@keyframes typingDots {

    0%,
    100% {
        opacity: 0.4;
        transform: translateY(0);
    }

    50% {
        opacity: 1;
        transform: translateY(-4px);
    }
}

@media (max-width: 992px) {

    .feature-grid,
    .concept-split,
    .cards-grid {
        grid-template-columns: 1fr;
    }

    .hero-main-title {
        font-size: 4rem;
    }

    .hero-description {
        text-align: left;
        border-right: none;
        border-left: 2px solid var(--accent-blue);
        padding: 0 0 0 30px;
        margin-left: 0;
    }

    /* 郢晏･繝｣郢敖郢晢ｽｼ郢晢ｽｭ郢ｧ・ｴ邵ｺ・ｮ郢晢ｽｬ郢ｧ・ｹ郢晄亢ﾎｦ郢ｧ・ｷ郢晞摩・ｯ・ｾ陟｢繝ｻ*/
    .logo a {
        font-size: 1.2rem;
    }

    .site-header {
        padding: 10px 0;
        width: 95%;
    }
}

/* --- Scroll Reveal Animation --- */
[data-reveal] {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 1.2s cubic-bezier(0.2, 0.8, 0.2, 1), transform 1.2s cubic-bezier(0.2, 0.8, 0.2, 1);
}

[data-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
}

.section-footer-link {
    margin-top: 60px;
    text-align: center;
}

/* --- Pricing Overview (Home) --- */
.pricing-overview-section {
    margin-top: 120px;
    padding-top: 80px;
    border-top: 1px dashed var(--border-fine);
    text-align: center;
}

.section-subtitle-small {
    font-family: 'Outfit';
    font-weight: 900;
    font-size: 0.8rem;
    color: var(--accent-red);
    letter-spacing: 0.3em;
    margin-bottom: 12px;
}

.pricing-overview-title {
    font-size: 2rem;
    font-weight: 900;
    margin-bottom: 60px;
}

.pricing-overview-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin-bottom: 60px;
}

.pricing-overview-item {
    background: #fff;
    padding: 40px 20px;
    border-radius: 24px;
    border: 2px solid #cbd5e1;
    /* 隴ｫ・ｽ驍ｱ螢ｹ・定棔・ｪ邵ｺ荳環竏ｵ・ｿ繝ｻ繝ｻ・ｽ繝ｻ・ｽ陞溽判蟲ｩ */
    transition: var(--transition-smooth);
}

.pricing-overview-item:hover {
    transform: translateY(-8px);
    border-color: var(--accent-blue);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
}

.pricing-note {
    text-align: center;
    margin-top: -30px;
    margin-bottom: 40px;
    font-size: 0.95rem;
    color: var(--text-muted);
    font-weight: 500;
}

.pricing-label {
    display: block;
    font-size: 0.9rem;
    font-weight: 800;
    color: var(--text-muted);
    margin-bottom: 16px;
}

.pricing-amount {
    display: block;
    font-family: 'Outfit';
    font-weight: 700;
    font-size: 1.8rem;
    color: var(--text-main);
    margin-bottom: 16px;
    letter-spacing: -0.01em;
}

.pricing-desc {
    font-size: 0.9rem;
    color: var(--text-muted);
    line-height: 1.5;
    margin: 0;
}

@media (max-width: 768px) {
    .pricing-overview-grid {
        grid-template-columns: 1fr;
    }

    .pricing-overview-section {
        margin-top: 80px;
        padding-top: 60px;
    }
}



/* --- Floating LINE Widget --- */
.line-widget {
    position: fixed;
    bottom: 30px;
    left: 30px;
    z-index: 1100;
    /* 郢晏･繝｣郢敖郢晢ｽｼ郢ｧ繝ｻ繝ｻ・ｽ繝ｻ・ｽ繝ｻ・ｽE髫補悪・ｴ・ｽ郢ｧ蛹ｻ・願叉繝ｻ*/
    display: flex;
    align-items: center;
    gap: 12px;
    text-decoration: none;
    transition: var(--transition-smooth);
}

.line-widget-icon {
    width: 60px;
    height: 60px;
    background: #06C755;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 30px rgba(6, 199, 85, 0.3);
    transition: var(--transition-smooth);
    order: 1;
    /* 郢ｧ・｢郢ｧ・､郢ｧ・ｳ郢晢ｽｳ郢ｧ雋橸ｽｷ・ｦ邵ｺ・ｫ */
}

.line-widget-icon svg {
    width: 32px;
    height: 32px;
}

.line-widget-bubble {
    order: 2;
    /* 陷ｷ・ｹ邵ｺ謳ｾ・ｿ・ｽE邵ｺ蜉ｱ・定愾・ｳ邵ｺ・ｫ */
    background: #fff;
    color: var(--text-main);
    padding: 10px 20px;
    border-radius: 12px;
    font-size: 0.9rem;
    font-weight: 700;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
    position: relative;
    opacity: 0;
    transform: translateX(-10px);
    transition: var(--transition-smooth);
    white-space: nowrap;
    pointer-events: none;
}

.line-widget-bubble::after {
    content: '';
    position: absolute;
    left: -8px;
    top: 50%;
    transform: translateY(-50%);
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
    border-right: 8px solid #fff;
}

.line-widget:hover .line-widget-bubble {
    opacity: 1;
    transform: translateX(0);
}

.line-widget:hover .line-widget-icon {
    transform: scale(1.1) rotate(5deg);
    box-shadow: 0 15px 40px rgba(6, 199, 85, 0.4);
}

/* 邵ｺ・ｵ郢ｧ謫ｾ・ｿ・ｽE郢ｧ荳翫＞郢昜ｹ斟鍋ｹ晢ｽｼ郢ｧ・ｷ郢晢ｽｧ郢晢ｽｳ */
@keyframes bubbleFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-8px);
    }
}

.line-widget {
    animation: bubbleFloat 3s ease-in-out infinite;
}

@media (max-width: 768px) {
    .line-widget {
        bottom: 20px;
        left: 20px;
    }

    .line-widget-icon {
        width: 52px;
        height: 52px;
    }

    .line-widget-bubble {
        display: none;
        /* 郢ｧ・ｹ郢晄ｩｸ・ｿ・ｽE邵ｺ・ｧ邵ｺ・ｯ郢ｧ・｢郢ｧ・､郢ｧ・ｳ郢晢ｽｳ邵ｺ・ｮ邵ｺ・ｿ */
    }
}

/* --- Pricing Page Styles --- */
.pricing-hero {
    padding: 200px 0 100px;
    background: var(--bg-main);
    text-align: center;
}

.pricing-hero .hero-description {
    margin: 0 auto;
    text-align: center;
}

/* Model Selection */
.model-selection-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    margin: 60px 0 100px;
}

.model-card {
    background: linear-gradient(135deg, #fff 0%, #f0f9ff 100%);
    padding: 60px 50px;
    border-radius: 32px;
    border: 1px solid var(--accent-blue);
    transition: var(--transition-smooth);
    position: relative;
    display: flex;
    flex-direction: column;
    box-shadow: 0 30px 60px rgba(37, 99, 235, 0.05);
}

.model-badge {
    display: inline-block;
    padding: 6px 14px;
    background: var(--accent-blue);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 800;
    border-radius: 4px;
    margin-bottom: 24px;
    align-self: flex-start;
}

.model-title {
    font-size: 1.8rem;
    font-weight: 900;
    margin-bottom: 20px;
    color: var(--text-main);
}

.model-desc {
    font-size: 1rem;
    color: var(--text-muted);
    margin-bottom: 32px;
    line-height: 1.8;
}

.model-price-info {
    margin-bottom: 32px;
    padding: 24px;
    background: rgba(37, 99, 235, 0.05);
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.model-price-info .label {
    font-size: 0.75rem;
    font-weight: 800;
    color: var(--text-muted);
    text-transform: uppercase;
}

.model-price-info .value {
    font-size: 1.4rem;
    font-weight: 900;
    color: var(--text-main);
}

.model-features {
    list-style: none;
    padding: 0;
    margin: 0;
}

.model-features li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 12px;
    font-weight: 700;
    color: var(--text-main);
}

.model-features li::before {
    content: '遶翫・;
 position: absolute;
    left: 0;
    color: var(--accent-blue);
}

/* Sample Type Badge */
.sample-type {
    display: inline-block;
    padding: 4px 10px;
    background: var(--accent-blue);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 800;
    border-radius: 4px;
    margin-bottom: 12px;
}

.sample-type.is-sub {
    background: var(--accent-blue);
    color: #fff;
}

.pricing-grid {
    display: flex;
    align-items: stretch;
    gap: 30px;
    margin-bottom: 80px;
}

@media (max-width: 768px) {
    .pricing-grid {
        flex-direction: column;
    }

    .pricing-plus {
        transform: rotate(90deg);
        margin: -10px 0;
    }
}

.pricing-card {
    background: linear-gradient(135deg, #fff 0%, rgba(59, 130, 246, 0.02) 100%);
    padding: 60px;
    border-radius: 40px;
    border: 1px solid var(--accent-blue);
    transition: var(--transition-smooth);
    display: flex;
    flex-direction: column;
    flex: 1;
}

/* 郢晏ｸ吶Σ郢晢ｽｼ郢ｧ・｢郢ｧ・ｯ郢ｧ・ｷ郢晢ｽｧ郢晢ｽｳ陷台ｼ∝求 */
.pricing-card:hover {
    transform: none;
    box-shadow: none;
}

.card-title {
    font-size: 0.95rem;
    /* 郢ｧ・ｵ郢ｧ・､郢ｧ・ｺ郢敖郢ｧ・ｦ郢晢ｽｳ繝ｻ・ｽE繝ｻ・ｽ隰暦ｽｧ邵ｺ蛹ｻ・∫ｸｺ・ｫ繝ｻ・ｽE繝ｻ・ｽE*/
    font-weight: 700;
    margin-bottom: 4px;
    color: var(--text-main);
    opacity: 0.8;
    text-align: center;
}

.card-subtitle {
    font-size: 1.8rem;
    /* 郢ｧ・ｵ郢ｧ・､郢ｧ・ｺ郢ｧ・｢郢昴・繝ｻ・ｽE繝ｻ・ｽE繝ｻ・ｽ闕ｳ・ｻ陟厄ｽｹ邵ｺ・ｫ繝ｻ・ｽE繝ｻ・ｽE*/
    font-weight: 900;
    color: var(--accent-orange);
    text-transform: none;
    /* 陞滂ｽｧ隴√・繝ｻ・ｽ繝ｻ・ｽ陜暦ｽｺ陞ｳ螢ｹ・帝囓・｣鬮ｯ・､ */
    letter-spacing: 0;
    /* 陝・挙・ｩ・ｰ郢ｧ竏夲ｽ定ｮ灘綜・ｺ謔ｶ竊・*/
    margin-bottom: 30px;
    text-align: center;
}

.pricing-plus {
    font-size: 3rem;
    font-weight: 300;
    color: var(--accent-orange);
    display: flex;
    align-items: center;
    justify-content: center;
}

.price-display {
    margin-bottom: 40px;
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 12px;
}

.price-from {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--text-muted);
}

.price-value {
    font-size: 2.8rem;
    font-weight: 700;
    font-family: 'Outfit';
    line-height: 1;
    letter-spacing: -0.01em;
}

.card-features {
    list-style: none;
    padding: 0;
    margin: 0 0 40px 0;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.card-features li {
    font-size: 1.1rem;
    color: var(--text-main);
    padding-left: 28px;
    position: relative;
}

.card-features li::before {
    content: '隨ｨ繝ｻ;
 position: absolute;
    left: 0;
    color: var(--accent-blue);
    font-weight: 900;
}

.card-note {
    margin-top: auto;
    font-size: 0.9rem;
    color: var(--text-muted);
    line-height: 1.6;
}

.pricing-policy {
    background: #fff;
    padding: 60px;
    border-radius: 40px;
    border: 1px solid var(--border-fine);
}

.policy-title {
    font-size: 1.5rem;
    font-weight: 900;
    margin-bottom: 40px;
    text-align: center;
}

.policy-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 60px;
}

.policy-item h5 {
    font-size: 1.1rem;
    font-weight: 800;
    margin-bottom: 16px;
    color: var(--text-main);
}

.policy-item p {
    font-size: 1rem;
    color: var(--text-muted);
    margin: 0;
}

.sample-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.sample-item {
    background: linear-gradient(135deg, #fff 0%, #f0f9ff 100%);
    padding: 32px 40px;
    border-radius: 20px;
    border: 1px solid var(--accent-blue);
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: var(--transition-smooth);
    box-shadow: 0 10px 20px rgba(37, 99, 235, 0.02);
}

.sample-item:hover {
    border-color: var(--accent-blue);
    box-shadow: 0 15px 30px rgba(37, 99, 235, 0.05);
}

.sample-info h4 {
    font-size: 1.2rem;
    font-weight: 800;
    margin-bottom: 4px;
}

.sample-info p {
    font-size: 0.9rem;
    color: var(--text-muted);
    margin: 0;
}

.sample-price {
    font-family: 'Outfit';
    font-weight: 700;
    font-size: 1.4rem;
    color: var(--text-main);
    letter-spacing: -0.01em;
    white-space: nowrap;
    /* 陟托ｽｷ陋ｻ・ｶ騾ｧ繝ｻ繝ｻ・ｽ繝ｻ・ｽ闕ｳﾂ髯ｦ蠕娯・邵ｺ蜷ｶ・・*/
}

.sample-price span {
    font-size: 0.9rem;
    opacity: 0.7;
    margin-left: 6px;
    font-weight: 700;
}

@media (max-width: 992px) {

    .pricing-grid,
    .policy-grid,
    .sample-grid {
        grid-template-columns: 1fr;
    }
}

/* --- Case Archive & Single Styles (Refined Based on Reference) --- */
.case-archive-hero {
    padding: 160px 0 60px;
    background: #f8fafc;
    text-align: center;
}

.case-archive-content {
    padding: 100px 0 120px;
}

.case-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}

.case-card-v2 {
    background: #fff;
    border: 1px solid var(--border-fine);
    border-radius: 16px;
    transition: var(--transition-smooth);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
}

.case-card-v2:hover {
    transform: translateY(-10px);
    box-shadow: 0 40px 80px rgba(0, 0, 0, 0.08);
}

.card-thumb {
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
}

.card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-width: 100%;
}

.card-body {
    padding: 32px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.card-meta {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--text-muted);
    margin-bottom: 12px;
    display: flex;
    gap: 10px;
}

.case-card-v2 .card-title {
    font-size: 1.4rem;
    font-weight: 900;
    margin-bottom: 32px;
    line-height: 1.4;
    color: var(--text-main);
    min-height: 2.8em;
}

.summary-item {
    margin-bottom: 24px;
    position: relative;
    padding-top: 12px;
}

.summary-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 40px;
    height: 3px;
    border-radius: 2px;
}

.is-before::before {
    background: var(--accent-red);
}

.is-after::before {
    background: #10b981;
}

.summary-item .item-label {
    display: block;
    font-size: 0.65rem;
    font-weight: 900;
    letter-spacing: 0.1em;
    margin-bottom: 6px;
    opacity: 0.8;
}

.is-before .item-label {
    color: var(--accent-red);
}

.is-after .item-label {
    color: #10b981;
}

.card-summary p {
    font-size: 0.9rem;
    color: var(--text-main);
    margin: 0;
    line-height: 1.6;
}

.card-impact {
    margin-top: auto;
    background: rgba(59, 130, 246, 0.04);
    padding: 20px 24px;
    text-align: center;
    border-top: 1px solid rgba(59, 130, 246, 0.1);
}

.impact-label-small {
    display: block;
    font-family: 'Outfit';
    font-size: 0.6rem;
    font-weight: 800;
    color: var(--accent-blue);
    letter-spacing: 0.2em;
    margin-bottom: 4px;
}

.impact-text {
    display: block;
    font-family: 'Outfit', 'Noto Sans JP';
    font-weight: 900;
    font-size: 1.15rem;
    color: var(--text-main);
    letter-spacing: 0.05em;
}

.tech-tags-mini {
    padding: 16px 32px;
    border-top: 1px solid var(--border-fine);
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tech-tag-mini {
    font-size: 0.7rem;
    color: var(--text-muted);
    background: var(--bg-main);
    padding: 2px 10px;
    border-radius: 4px;
}

/* --- Home Case Cards - Impact Mini --- */
.case-impact-mini {
    margin-top: 16px;
    padding: 12px 16px;
    background: rgba(59, 130, 246, 0.05);
    border-left: 3px solid var(--accent-blue);
    border-radius: 4px;
}

.impact-mini-label {
    display: block;
    font-family: 'Outfit';
    font-size: 0.6rem;
    font-weight: 800;
    color: var(--accent-blue);
    letter-spacing: 0.1em;
    margin-bottom: 4px;
}

.impact-mini-value {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-main);
    margin: 0;
    line-height: 1.4;
}

/* --- Case Single Page (Sophisticated Editorial) --- */
.case-hero-refined {
    padding: 180px 0 100px;
    background: #fff;
    border-bottom: 1px solid var(--border-fine);
}

.hero-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
}

.hero-text-side {
    text-align: left;
}

.case-single .case-label {
    display: inline-block;
    padding: 4px 14px;
    background: var(--accent-blue);
    color: #fff;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 800;
    margin-bottom: 24px;
    letter-spacing: 0.05em;
}

.case-single .case-role {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--text-muted);
    margin-left: 12px;
}

.case-single .case-title {
    font-size: clamp(1.8rem, 4vw, 2.4rem);
    font-weight: 900;
    line-height: 1.4;
    margin-bottom: 40px;
    color: var(--text-main);
    letter-spacing: -0.02em;
}

.case-outcome-badge {
    display: inline-flex;
    flex-direction: column;
    padding: 24px 32px;
    background: #fff;
    border-left: 4px solid var(--accent-blue);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
    border-radius: 0 16px 16px 0;
}

.outcome-label {
    font-family: 'Outfit';
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.2em;
    margin-bottom: 8px;
    color: var(--accent-blue);
}

.outcome-value {
    font-size: 1.6rem;
    font-weight: 900;
    color: var(--text-main);
}

.hero-visual-side {
    position: relative;
}

.case-main-visual {
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.1);
    line-height: 0;
    background: var(--bg-main);
}

.case-main-visual img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    max-width: 100%;
}

.case-story {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin: 80px 0;
}

.story-block {
    background: #fff;
    padding: 50px 40px;
    border-radius: 30px;
    border: 1px solid var(--border-fine);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.02);
}

.story-block .block-label {
    font-family: 'Outfit';
    font-weight: 900;
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    margin-bottom: 30px;
    opacity: 0.5;
}

.story-block h4 {
    font-size: 1.4rem;
    font-weight: 900;
    margin-bottom: 20px;
}

.story-block p {
    font-size: 1rem;
    color: var(--text-main);
    line-height: 1.8;
}

.is-before,
.is-action,
.is-after {
    position: relative;
}

.story-block {
    background: #fff;
    padding: 50px;
    border-radius: 20px;
    border: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02);
    height: 100%;
}

.story-block .block-label {
    display: flex;
    align-items: center;
    gap: 12px;
    font-family: 'Outfit';
    font-weight: 800;
    font-size: 0.85rem;
    letter-spacing: 0.1em;
    margin-bottom: 24px;
    color: var(--text-muted);
}

.story-block .block-label::before {
    content: attr(data-num);
    font-size: 0.75rem;
    font-weight: 900;
    color: #fff;
    width: 24px;
    height: 24px;
    background: var(--text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
}

.is-before .block-label::before {
    background: var(--accent-red);
}

.is-action .block-label::before {
    background: var(--accent-blue);
}

.is-after .block-label::before {
    background: #10b981;
}

.story-block h4 {
    font-size: 1.5rem;
    font-weight: 900;
    margin-bottom: 24px;
    color: var(--text-main);
    line-height: 1.3;
}

.story-block p {
    font-size: 1.05rem;
    color: #475569;
    line-height: 1.9;
    margin: 0;
}

.case-tech-stack {
    margin: 80px 0;
    padding: 60px;
    background: #f8fafc;
    border-radius: 30px;
    text-align: center;
}

.case-tech-stack h5 {
    font-size: 0.85rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.2em;
    margin-bottom: 30px;
    color: var(--text-muted);
}

.tech-tags {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
}

.tech-tag {
    display: inline-block;
    padding: 10px 24px;
    background: #fff;
    border: 1px solid var(--border-fine);
    border-radius: 100px;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-main);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.02);
}

.case-footer-actions {
    display: flex;
    justify-content: center;
    gap: 24px;
    margin: 80px 0 120px;
}

.case-footer-actions .btn-secondary,
.case-footer-actions .btn-contact {
    padding: 16px 40px;
    border-radius: 100px;
    font-weight: 800;
    font-size: 1rem;
    transition: var(--transition-smooth);
    text-decoration: none;
}

.case-footer-actions .btn-secondary {
    background: #fff;
    border: 1px solid var(--border-fine);
    color: var(--text-main);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
}

.case-footer-actions .btn-contact {
    background: linear-gradient(135deg, var(--accent-blue) 0%, #2563eb 100%);
    color: #fff !important;
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 10px 30px rgba(59, 130, 246, 0.3);
}

.case-footer-actions a:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
}

@media (max-width: 992px) {
    .hero-split {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .hero-text-side {
        text-align: center;
    }

    .case-outcome-badge {
        border-left: none;
        border-top: 4px solid var(--accent-blue);
        border-radius: 0 0 16px 16px;
        margin: 0 auto;
    }

    .case-grid,
    .case-story {
        grid-template-columns: 1fr;
    }

    .case-single .case-title {
        font-size: 2rem;
    }

    .case-footer-actions {
        flex-direction: column;
        align-items: center;
    }
}

/* --- Special Single Page (Premium Editorial) --- */
.single-special-article {
    padding-bottom: 120px;
}

.special-header {
    padding: 120px 0 80px;
    text-align: center;
    background: linear-gradient(to bottom, rgba(37, 99, 235, 0.04), transparent);
}

.special-subtitle {
    display: inline-block;
    font-size: 0.9rem;
    font-weight: 900;
    letter-spacing: 0.3em;
    color: var(--accent-blue);
    margin-bottom: 32px;
    text-transform: uppercase;
    position: relative;
}

.special-subtitle::after {
    content: '';
    position: absolute;
    bottom: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 20px;
    height: 2px;
    background: var(--accent-blue);
}

.special-title {
    font-size: clamp(1.8rem, 5vw, 2.8rem);
    font-weight: 900;
    line-height: 1.25;
    margin-bottom: 40px;
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
    color: var(--text-main);
    letter-spacing: -0.02em;
}

.special-lead {
    font-size: 1.25rem;
    color: var(--text-muted);
    max-width: 750px;
    margin: 0 auto 60px;
    line-height: 1.9;
    font-weight: 500;
}

.special-featured-image {
    max-width: 1000px;
    margin: 0 auto 80px;
    border-radius: 32px;
    overflow: hidden;
    box-shadow: 0 40px 120px rgba(0, 0, 0, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.8);
}

.special-featured-image img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    max-width: 100%;
}

.container-narrow {
    max-width: 1000px;
}

.article-nav {
    margin-top: 100px;
    padding-top: 60px;
    border-top: 1px solid var(--border-fine);
}

.nav-links {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 40px;
}

.nav-previous a,
.nav-next a {
    display: flex;
    flex-direction: column;
    font-weight: 800;
    font-size: 1.1rem;
    color: var(--text-main);
}

.nav-previous span,
.nav-next span {
    font-family: 'Outfit';
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    color: var(--text-muted);
    margin-bottom: 8px;
}



@media (max-width: 768px) {
    .special-header {
        padding: 80px 20px 40px;
    }

    .special-title {
        font-size: 2.2rem;
    }

    .special-lead {
        font-size: 1.1rem;
    }

    .nav-links {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 40px;
    }

    .nav-back {
        order: 3;
    }
}

/* --- Common Post Content Styles --- */
.post-content h2 {
    font-size: 1.75rem;
    font-weight: 900;
    margin: 80px 0 32px;
    padding-left: 20px;
    border-left: 4px solid var(--accent-blue);
    line-height: 1.3;
}

.post-content h3 {
    font-size: 1.5rem;
    font-weight: 800;
    margin: 48px 0 24px;
    line-height: 1.4;
}

.post-content p {
    margin-bottom: 24px;
    line-height: 1.8;
}

.post-content ul,
.post-content ol {
    margin-bottom: 32px;
    padding-left: 24px;
}

.post-content li {
    margin-bottom: 12px;
}

.post-content img {
    border-radius: 16px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.05);
    margin: 40px 0;
    max-width: 100%;
}

.post-content blockquote {
    margin: 48px 0;
    padding: 32px 40px;
    background: #f8fafc;
    border-left: 4px solid var(--accent-blue);
    border-radius: 0 16px 16px 0;
    font-style: italic;
    color: var(--text-muted);
}

/* Legal & Contact */
.legal-content,
.contact-content {
    padding-bottom: 120px;
}

.legal-card,
.legal-document {
    background: #fff;
    padding: 80px 60px;
    border-radius: 40px;
    border: 1px solid var(--border-fine);
    box-shadow: 0 40px 80px rgba(0, 0, 0, 0.03);
    max-width: 800px;
    margin: 0 auto;
}

.contact-form-wrapper {
    background: #fff;
    padding: 0px 60px 80px;
    border-radius: 40px;
    border: 1px solid var(--border-fine);
    box-shadow: 0 40px 80px rgba(0, 0, 0, 0.03);
    max-width: 800px;
    margin: 0 auto;
}

/* Form Elements Styling */
.contact-form-wrapper form {
    text-align: center;
    /* 鬨ｾ竏ｽ・ｿ・｡郢晄㈱縺｡郢晢ｽｳ邵ｺ・ｪ邵ｺ・ｩ郢ｧ蜑・ｽｸ・ｭ陞滂ｽｮ陝・・繝ｻ・ｽ繝ｻ・ｽ */
}

.contact-form-wrapper p {
    margin-bottom: 32px;
    font-weight: 700;
    color: var(--text-main);
    text-align: left;
    /* 鬨ｾ竏ｽ・ｿ・｡郢晄㈱縺｡郢晢ｽｳ闔会ｽ･陞溷私・ｿ・ｽE陝ｾ・ｦ陝・・繝ｻ・ｽ繝ｻ・ｽ邵ｺ・ｫ隰鯉ｽｻ邵ｺ繝ｻ*/
}

.contact-form-wrapper .required {
    color: var(--accent-red);
    font-size: 0.85rem;
    margin-left: 10px;
    background: rgba(197, 51, 15, 0.05);
    padding: 2px 8px;
    border-radius: 4px;
}

.contact-form-wrapper .optional {
    color: var(--text-muted);
    font-size: 0.85rem;
    margin-left: 10px;
}

.contact-form-wrapper input[type="text"],
.contact-form-wrapper input[type="email"],
.contact-form-wrapper input[type="tel"],
.contact-form-wrapper select,
.contact-form-wrapper textarea {
    width: 100%;
    padding: 16px 20px;
    border: 1px solid #d0d0d0;
    /* 隴ｫ・ｽ驍ｱ螢ｹ・堤ｹｧ蛹ｻ・企囎荵晢ｽ・ｸｺ蜷ｶ・･髫ｱ・ｿ隰ｨ・ｴ */
    border-radius: 12px;
    background: var(--bg-main);
    font-family: inherit;
    font-size: 1rem;
    margin-top: 12px;
    transition: var(--transition-smooth);
    display: block;
    text-align: left;
}

.wpcf7-form-control-wrap {
    display: block;
}

.wpcf7-submit {
    margin: 40px auto 0;
    display: block !important;
}

/* Responsive adjustment for Contact Form */
@media (max-width: 768px) {
    .contact-form-wrapper {
        padding: 40px 24px;
        border-radius: 24px;
    }

    .contact-form-wrapper p {
        margin-bottom: 24px;
    }
}

.contact-form-wrapper input:focus,
.contact-form-wrapper select:focus,
.contact-form-wrapper textarea:focus {
    border-color: var(--accent-blue);
    background: #fff;
    outline: none;
    box-shadow: 0 10px 20px rgba(59, 130, 246, 0.05);
}

.contact-form-wrapper input[type="submit"] {
    background: var(--text-main);
    color: #fff;
    border: none;
    padding: 18px 60px;
    border-radius: 99px;
    font-weight: 900;
    font-family: 'Outfit';
    letter-spacing: 0.1em;
    cursor: pointer;
    transition: var(--transition-smooth);
    margin-top: 20px;
}

.contact-form-wrapper input[type="submit"]:hover {
    background: var(--accent-blue);
    transform: translateY(-3px);
    box-shadow: 0 20px 40px rgba(59, 130, 246, 0.2);
}

.legal-table {
    width: 100%;
    border-collapse: collapse;
}

.legal-table th,
.legal-table td {
    padding: 24px 0;
    border-bottom: 1px solid var(--border-fine);
    text-align: left;
}

.legal-table th {
    width: 200px;
    font-weight: 800;
    color: var(--text-muted);
}

/* Cookie Consent */
.cookie-consent-banner {
    position: fixed;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    width: 90%;
    max-width: 800px;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    color: var(--text-main);
    padding: 24px 32px;
    border-radius: 20px;
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.8);
    opacity: 0;
    visibility: hidden;
    transition: var(--transition-smooth);
}

.cookie-consent-banner.is-visible {
    opacity: 1;
    visibility: visible;
}

.cookie-text {
    font-size: 0.9rem;
    line-height: 1.6;
    color: var(--text-main);
}

.cookie-text a {
    color: var(--accent-blue);
    text-decoration: underline;
    font-weight: 700;
}

.cookie-actions {
    display: flex;
    gap: 12px;
    flex-shrink: 0;
}

.cookie-btn {
    background: var(--accent-blue);
    color: #fff;
    border: 1px solid var(--accent-blue);
    padding: 12px 28px;
    border-radius: 100px;
    font-weight: 800;
    font-size: 0.9rem;
    cursor: pointer;
    white-space: nowrap;
    transition: var(--transition-smooth);
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.2);
}

.cookie-btn:hover {
    background: #1d4ed8;
    border-color: #1d4ed8;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(37, 99, 235, 0.3);
}

.cookie-btn-secondary {
    background: #f1f5f9;
    color: var(--text-muted);
    border: 1px solid #e2e8f0;
    box-shadow: none;
}

.cookie-btn-secondary:hover {
    background: #e2e8f0;
    color: var(--text-main);
    border-color: #cbd5e1;
}

@media (max-width: 768px) {
    .cookie-consent-banner {
        flex-direction: column;
        text-align: center;
        padding: 24px 20px;
        bottom: 20px;
        gap: 20px;
    }

    .cookie-actions {
        width: 100%;
        flex-direction: column;
        gap: 10px;
    }

    .cookie-btn {
        width: 100%;
        padding: 14px;
    }
}


/* 郢ｧ・ｵ郢晏私・ｿ・ｽE郢晢ｽｼ郢ｧ・ｸ郢晢ｽｻ郢晄慣・ｿ・ｽE郢晢ｽｭ郢晢ｽｼ (Eye-catch Header - Clean Version) */
/* 郢ｧ・ｵ郢晏私・ｿ・ｽE郢晢ｽｼ郢ｧ・ｸ郢晢ｽｻ郢晄慣・ｿ・ｽE郢晢ｽｭ郢晢ｽｼ (Eye-catch Header - Clean Version) */
.page-hero {
    position: relative;
    min-height: 440px;
    /* 鬯ｮ蛟･・・ｹｧ雋槫ｴ玖楜螢ｹ・邵ｺ・ｦ郢ｧ・ｺ郢晢ｽｬ郢ｧ蜻茨ｿｽ・ｹ驍ｨ・ｶ */
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: var(--text-main);
    overflow: hidden;
    text-align: center;
    border-bottom: 1px solid var(--border-fine);
}

.page-hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url('../images/hero-bg-jp.webp?v=1.7') center/cover no-repeat;
    filter: blur(4px);
    transform: scale(1.05);
    z-index: 1;
}

.page-hero-bg::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.78);
}

.page-hero .container {
    position: relative;
    z-index: 2;
    width: 100%;
}

.page-cat-label {
    display: inline-block;
    font-family: 'Outfit';
    font-weight: 900;
    font-size: 0.85rem;
    letter-spacing: 0.3em;
    color: var(--accent-blue);
    margin-bottom: 24px;
    text-transform: uppercase;
}

.page-hero .page-title {
    font-size: 2.8rem;
    font-weight: 900;
    color: var(--text-main);
    margin-bottom: 24px;
    letter-spacing: -0.02em;
}

.page-hero .page-description {
    font-size: 1.15rem;
    color: var(--text-muted);
    max-width: 650px;
    margin: 0 auto;
    line-height: 1.8;
    font-weight: 500;
    min-height: 3.6em;
    /* 髫ｱ・ｬ隴丞叙譫夂ｸｺ・ｮ郢ｧ・ｨ郢晢ｽｪ郢ｧ・｢郢ｧ繧具ｽｫ蛟･・・ｹｧ蝣､・｢・ｺ闖ｫ譏ｴ・邵ｺ・ｦ陞ｳ迚呻ｽｮ螢ｹ・・ｸｺ蟶呻ｽ・*/
}

/* 邵ｺ髮∵牒邵ｺ繝ｻ繝ｻ・ｽ繝ｻ・ｽ郢ｧ荳岩雷郢晢ｽｻ陷ｷ繝ｻ繝ｻ・ｽ繝ｻ・ｽ郢ｧ・ｳ郢晢ｽｳ郢昴・繝ｻ・ｽ繝ｻ・ｽ郢昴・繝ｻ・ｽ繝ｻ・ｽ郢ｧ・ｯ郢ｧ・ｷ郢晢ｽｧ郢晢ｽｳ */
/* --- Subpage Content Layout Unity --- */
.subpage-main-content,
.case-archive-content,
.special-archive-content,
.contact-content,
.legal-content {
    padding: 100px 0 120px;
    background: #f8fafc;
    position: relative;
    z-index: 10;
}

.contact-form-wrapper {
    background: #fff;
    padding: 80px 60px;
    border-radius: 40px;
    box-shadow: 0 40px 120px rgba(0, 0, 0, 0.1);
}

@media (max-width: 992px) {
    .service-detail-block {
        margin-bottom: 100px;
    }

    .service-detail-content {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .service-detail-block:nth-child(even) .service-detail-content {
        direction: ltr;
    }

    .service-main-title {
        font-size: 2rem;
    }

    .service-num-watermark {
        font-size: 10rem;
        top: -20px;
    }
}

/* Responsive Section Spacing */
@media (max-width: 768px) {

    .section,
    .section-compact {
        padding: 60px 0;
    }

    .hero-v2 {
        min-height: auto;
        padding: 140px 0 80px;
    }

    .bg-light-gradient {
        margin: 60px 0 0;
        border-radius: 40px 40px 0 0;
    }
}

/* --- Services Page Specific Styles --- */
.pain-point-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 30px;
    margin-top: 60px;
}

#pain-points {
    background-color: #f1f5f9 !important;
}

.pain-point-card {
    background: #fff;
    padding: 50px 30px;
    border-radius: 32px;
    text-align: center;
    border: 2px solid #cbd5e1;
    box-shadow: 0 15px 50px rgba(0, 0, 0, 0.08);
    transition: var(--transition-smooth);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.pain-point-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 40px 80px rgba(0, 0, 0, 0.08);
    border-color: var(--accent-blue);
}

.pain-point-icon {
    width: 80px;
    height: 80px;
    background: rgba(37, 99, 235, 0.05);
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
    transition: var(--transition-smooth);
}

.pain-point-card:hover .pain-point-icon {
    background: var(--accent-blue);
    transform: scale(1.05);
}

.pain-point-svg {
    color: var(--accent-blue);
    transition: var(--transition-smooth);
}

.pain-point-card:hover .pain-point-svg {
    color: #fff;
}

.pain-point-card h3 {
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--text-main);
}

.service-detail-block {
    margin-bottom: 160px;
    padding: 0;
    background: transparent;
    border-radius: 0;
    border: none;
    box-shadow: none;
    position: relative;
    scroll-margin-top: 160px;
    /* 郢晏･繝｣郢敖郢晢ｽｼ邵ｺ・ｮ鬯ｮ蛟･・・ｹｧ螳堋繝ｻ繝ｻ・ｽE */
}

.service-detail-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
}

/* Alternate Layout */
.service-detail-block:nth-child(even) .service-detail-content {
    direction: rtl;
}

.service-detail-block:nth-child(even) .service-detail-content>* {
    direction: ltr;
}

.service-num-watermark {
    position: absolute;
    top: -40px;
    left: -20px;
    font-family: 'Outfit';
    font-size: 15rem;
    font-weight: 900;
    color: var(--accent-blue);
    opacity: 0.03;
    line-height: 1;
    z-index: 0;
    pointer-events: none;
}

.service-detail-header {
    position: relative;
    z-index: 2;
    margin-bottom: 40px;
    display: flex;
    align-items: center;
    gap: 20px;
}

.service-detail-header .service-num {
    font-size: 1.2rem;
    opacity: 1;
    color: #fff;
    background: var(--accent-blue);
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-weight: 900;
}

.service-main-title {
    font-size: 2.8rem;
    font-weight: 900;
    letter-spacing: -0.02em;
    color: var(--text-main);
}

.service-visual-area {
    border-radius: 30px;
    overflow: hidden;
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.1);
}

.service-visual-area img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.6s ease;
    max-width: 100%;
}

.service-detail-block:hover .service-visual-area img {
    transform: scale(1.05);
}

.service-info-area {
    position: relative;
    z-index: 2;
}

.service-summary {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--text-main);
    margin-bottom: 30px;
    line-height: 1.4;
    border-left: 4px solid var(--accent-blue);
    padding-left: 24px;
}

.service-items h4,
.service-target-box h4 {
    font-size: 0.8rem;
    font-weight: 900;
    letter-spacing: 0.2em;
    color: var(--text-muted);
    text-transform: uppercase;
    margin-bottom: 24px;
}

.service-items ul {
    list-style: none;
    padding: 0;
    margin: 0 0 40px;
}

.service-items li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 16px;
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--text-main);
}

.service-items li::before {
    content: '遶翫・;
 position: absolute;
    left: 0;
    color: var(--accent-blue);
    font-weight: 900;
}

.service-target-box {
    background: #fff;
    padding: 40px;
    border-radius: 24px;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.06);
    border: 2px solid #cbd5e1;
}

.service-target-box ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.service-target-box li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 12px;
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--text-muted);
}

/* Service Page Specific Boxes (Area & Policy) */
.service-area-box,
.service-policy-box {
    margin: 30px 0;
    padding: 24px;
    background: #fff;
    border-radius: 16px;
    border: 1px solid var(--border-fine);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
}

.service-area-box {
    background: #f0f9ff;
    border-color: var(--accent-blue);
}

.service-area-box h4 {
    margin-bottom: 12px !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
    color: var(--accent-blue) !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}

.service-policy-box h4 {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px !important;
    font-size: 1.35rem !important;
    /* 郢晁ｼ斐°郢晢ｽｳ郢晏現・定棔・ｧ邵ｺ髦ｪ・･ */
    font-weight: 900 !important;
    color: var(--accent-orange) !important;
    letter-spacing: 0.02em !important;
    text-transform: none !important;
}

.policy-icon {
    color: #ffb800;
    /* 髴域亢・･魄溘・繝ｻ・ｽ繝ｻ・ｽ */
    filter: drop-shadow(0 0 8px rgba(255, 184, 0, 0.6));
    /* 髴域亢窶ｳ郢ｧ・ｨ郢晁ｼ斐♂郢ｧ・ｯ郢昴・*/
    animation: pulse-glow 2s infinite alternate;
}

@keyframes pulse-glow {
    from {
        transform: scale(1);
        filter: drop-shadow(0 0 4px rgba(255, 184, 0, 0.4));
    }

    to {
        transform: scale(1.15);
        filter: drop-shadow(0 0 15px rgba(255, 184, 0, 0.9));
    }
}

.service-area-box p,
.service-policy-box p {
    font-size: 0.95rem;
    margin: 0;
    line-height: 1.8;
    color: var(--text-main);
}

.service-items li,
.service-target-box li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 16px;
    font-weight: 600;
}

.service-items li::before {
    content: '遶翫・;
 position: absolute;
    left: 0;
    color: var(--accent-blue);
}

.service-target-box {
    background: var(--bg-main);
    padding: 40px;
    border-radius: 24px;
}

.service-target-box li::before {
    content: '隨ｨ繝ｻ;
 position: absolute;
    left: 0;
    color: var(--accent-red);
}

/* Pricing Plans on Service Page */
.plan-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin-top: 60px;
}

.plan-card {
    background: #fff;
    border: 1px solid #cbd5e1;
    padding: 60px 40px;
    border-radius: 32px;
    transition: var(--transition-smooth);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02);
}

.plan-card.featured {
    background: #fff;
    border-color: #cbd5e1;
    transform: scale(1.05);
    z-index: 2;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02);
}

.plan-header h3 {
    font-size: 1.4rem;
    font-weight: 900;
    margin-bottom: 20px;
}

.plan-price {
    font-family: 'Outfit';
    font-size: 2.6rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.01em;
    text-align: center;
}

.plan-price span {
    display: block;
    font-size: 1.1rem;
    opacity: 0.6;
    margin-top: 10px;
    font-weight: 700;
    text-align: center;
}

.plan-desc {
    margin: 30px 0;
    font-size: 0.9rem;
    color: var(--text-muted);
    text-align: center;
}

.plan-features {
    list-style: none;
    padding: 0;
    margin: 0;
    border-top: 1px solid var(--border-fine);
    padding-top: 30px;
}

.plan-features li {
    position: relative;
    padding-left: 32px;
    margin-bottom: 16px;
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--text-main);
}

.plan-features li::before {
    content: '隨ｨ繝ｻ;
 position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    background: #e2e8f0;
    color: var(--text-muted);
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    font-weight: 900;
}

/* Horizontal Flow */
.flow-steps-horizontal {
    display: flex;
    justify-content: space-between;
    margin-top: 80px;
    position: relative;
}

.flow-steps-horizontal::before {
    content: '';
    position: absolute;
    top: 25px;
    left: 50px;
    right: 50px;
    height: 2px;
    background: #cbd5e1;
    z-index: 1;
}

.flow-step {
    position: relative;
    z-index: 2;
    text-align: center;
    flex: 1;
}

.flow-step span {
    width: 50px;
    height: 50px;
    background: #fff;
    border: 1px solid var(--accent-blue);
    color: var(--accent-blue);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    margin: 0 auto 20px;
    font-family: 'Outfit';
    font-weight: 900;
    transition: var(--transition-smooth);
}

.flow-step:hover span {
    background: var(--accent-blue);
    color: #fff;
    transform: scale(1.1);
}

.flow-step p {
    font-weight: 800;
    font-size: 0.9rem;
}

/* FAQ CTA */
.faq-cta-box {
    background: #fff;
    padding: 80px;
    border-radius: 40px;
    border: 1px solid var(--border-fine);
    text-align: center;
}

.faq-list {
    display: inline-block;
    text-align: left;
    margin: 40px 0;
    list-style: none;
    padding: 0;
}

.faq-list li {
    position: relative;
    padding-left: 40px;
    margin-bottom: 20px;
    font-size: 1.2rem;
    font-weight: 700;
}

.faq-list li::before {
    content: 'Q.';
    position: absolute;
    left: 0;
    color: var(--accent-red);
    font-family: 'Outfit';
    font-weight: 900;
}

@media (max-width: 992px) {
    .service-detail-block {
        padding: 40px;
    }

    .service-detail-content {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .plan-grid {
        grid-template-columns: 1fr;
    }

    .plan-card.featured {
        transform: none;
    }

    .flow-steps-horizontal {
        flex-wrap: wrap !important;
        gap: 0 !important;
        /* 郢晢ｽｦ郢晢ｽｼ郢ｧ・ｶ郢晢ｽｼ隶貞∞・ｿ・ｽE隰悶・繝ｻ・ｽ繝ｻ・ｽ鬨ｾ螢ｹ・拡ap郢ｧ蛛ｵ竊醍ｸｺ荳奇ｼ邵ｺ・ｦ2陋ｻ蜉ｱ竊・*/
        margin-top: 40px !important;
    }

    .flow-steps-horizontal::before {
        display: none;
    }

    .flow-step {
        flex: 0 0 50% !important;
        /* 陝ｶ・ｸ邵ｺ・ｫ2陋ｻ繝ｻ*/
        margin-bottom: 40px !important;
    }
}

@media (max-width: 768px) {
    .flow-step {
        flex: 0 0 50%;
    }

    .service-main-title {
        font-size: 1.6rem;
    }

    .faq-cta-box {
        padding: 40px 20px;
    }
}

/* --- Special Archive & Single (Premium Editorial) --- */
.special-archive-content {
    padding: 100px 0 120px;
}

.special-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
    gap: 50px;
}

.special-card {
    background: #fff;
    border: 1px solid var(--border-fine);
    border-radius: 24px;
    overflow: hidden;
    transition: var(--transition-smooth);
    display: flex;
    flex-direction: column;
    height: 100%;
}

.special-card:hover {
    transform: translateY(-12px);
    box-shadow: 0 40px 80px rgba(0, 0, 0, 0.08);
    border-color: var(--accent-blue);
}

.special-card .card-body {
    padding: 40px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.special-card .card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 20px;
    align-items: center;
}

.special-card .card-label {
    display: inline-block;
    background: rgba(37, 99, 235, 0.08);
    color: var(--accent-blue);
    padding: 6px 14px;
    border-radius: 100px;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    line-height: 1.4;
}

.special-card .pin-badge {
    background: var(--accent-blue);
    color: #fff;
    white-space: nowrap;
    /* PICK UP邵ｺ繝ｻ髯ｦ蠕娯・邵ｺ・ｪ郢ｧ蟲ｨ竊醍ｸｺ繝ｻ繝ｻ・ｽ繝ｻ・ｽ邵ｺ繝ｻ繝ｻ・ｽ繝ｻ・ｽ */
}

.special-card .card-title {
    font-size: 1.6rem;
    font-weight: 900;
    margin-bottom: 20px;
    line-height: 1.4;
    color: var(--text-main);
    letter-spacing: -0.02em;
    min-height: 2.8em;
    /* 2髯ｦ魃会ｽｿ・ｽE郢ｧ蝣､・｢・ｺ闖ｫ譏ｴ・邵ｺ・ｦ鬯ｮ蛟･・・ｹｧ蜻育ｴ皮ｸｺ蛹ｻ・・*/
}

.special-card .card-summary {
    font-size: 1rem;
    color: var(--text-muted);
    line-height: 1.7;
    margin-bottom: 32px;
}

.single-special-article {
    background: #fff;
}

.single-special-article .special-header {
    padding: 120px 0 60px;
    background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
    text-align: center;
    border-bottom: 1px solid var(--border-fine);
}

.special-subtitle {
    display: inline-block;
    background: var(--accent-blue);
    color: #fff;
    padding: 8px 24px;
    border-radius: 100px;
    font-weight: 800;
    font-size: 0.9rem;
    letter-spacing: 0.1em;
    margin-bottom: 32px;
    box-shadow: 0 10px 20px rgba(37, 99, 235, 0.2);
}

.special-title {
    font-size: clamp(1.4rem, 4vw, 2.2rem);
    font-weight: 900;
    line-height: 1.3;
    margin-bottom: 32px;
    color: var(--text-main);
    letter-spacing: -0.02em;
}

.special-lead {
    font-size: 1.15rem;
    line-height: 1.7;
    color: var(--text-muted);
    max-width: 700px;
    margin: 0 auto;
    font-weight: 500;
}

.special-content {
    padding: 80px 0 120px;
}

.gutenberg-content {
    font-size: 1.15rem;
    line-height: 2;
    color: var(--text-main);
}

@media (max-width: 768px) {
    .gutenberg-content {
        font-size: 1rem !important;
        line-height: 1.8 !important;
    }
}

.gutenberg-content h2 {
    font-size: 1.5rem;
    font-weight: 900;
    margin: 50px 0 24px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--accent-blue);
}

.gutenberg-content h3 {
    font-size: 1.25rem;
    font-weight: 900;
    margin: 40px 0 20px;
    color: var(--text-main);
}

@media (max-width: 768px) {
    .gutenberg-content h2 {
        font-size: 1.35rem !important;
        margin: 40px 0 20px !important;
    }

    .gutenberg-content h3 {
        font-size: 1.15rem !important;
        margin: 30px 0 15px !important;
    }
}

.gutenberg-content p {
    margin-bottom: 30px;
}

.gutenberg-content img {
    max-width: 100%;
    height: auto;
    border-radius: 20px;
    margin: 40px 0;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.05);
}

.special-card .card-thumb {
    width: 100%;
    height: 240px;
    overflow: hidden;
}

.special-card .card-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: var(--transition-smooth);
    max-width: 100%;
}

.special-card:hover .card-thumb img {
    transform: scale(1.05);
}

.special-featured-image {
    max-width: 680px;
    margin: 0 auto 48px;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.1);
}

.special-featured-image img {
    width: 100%;
    max-height: 580px;
    object-fit: cover;
    display: block;
    max-width: 100%;
}

/* --- Article Navigation (Single Special) --- */
.article-nav {
    margin-top: 100px;
    padding-top: 60px;
    border-top: 1px solid var(--border-fine);
}

.nav-links {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 40px;
}

.nav-previous a,
.nav-next a {
    text-decoration: none;
    display: flex;
    flex-direction: column;
    gap: 8px;
    transition: var(--transition-smooth);
}

.nav-previous a span,
.nav-next a span {
    font-family: 'Outfit';
    font-size: 0.7rem;
    font-weight: 800;
    color: var(--accent-blue);
    letter-spacing: 0.2em;
}

.nav-previous a {
    text-align: left;
    color: var(--text-main);
    font-weight: 700;
    font-size: 1rem;
}

.nav-next a {
    text-align: right;
    color: var(--text-main);
    font-weight: 700;
    font-size: 1rem;
}

.nav-previous a:hover,
.nav-next a:hover {
    color: var(--accent-blue);
}

.nav-back {
    text-align: center;
}

.btn-back {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 40px;
    background: #fff;
    color: var(--text-main);
    text-decoration: none;
    border-radius: 100px;
    font-size: 1rem;
    font-weight: 800;
    transition: var(--transition-smooth);
    border: 2px solid #cbd5e1;
}

.btn-back:hover {
    background: var(--accent-blue);
    color: #fff;
    border-color: var(--accent-blue);
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(37, 99, 235, 0.2);
}

@media (max-width: 768px) {
    .nav-links {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .nav-back {
        order: 3;
    }

    .nav-previous {
        order: 1;
        text-align: center;
    }

    .nav-next {
        order: 2;
        text-align: center;
    }

    .nav-previous a,
    .nav-next a {
        text-align: center;
    }
}


.subsidy-intro {
    background-color: var(--bg-main);
    padding-bottom: 40px;
    /* 陝ｾ・ｨ陞滂ｽｧ邵ｺ・ｪ闖ｴ蜥丞項郢ｧ雋樒ｎ雋ゅ・*/
}

#national-subsidies {
    padding-top: 60px;
    /* 闕ｳ莨∃夂ｸｺ・ｨ邵ｺ・ｮ鬮｢鬥ｴ蝗育ｹｧ蟶昶・雎・ｽ｣陋ｹ繝ｻ*/
}



.intro-box {
    background: #fff;
    padding: 60px;
    border-radius: 32px;
    border: 1px solid var(--border-fine);
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.02);
    margin-bottom: 30px;
}


.update-notice {
    font-size: 0.85rem;
    color: var(--text-muted);
    margin-bottom: 20px;
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: 8px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.update-notice::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    background: var(--accent-blue);
    border-radius: 50%;
}

.intro-content {
    margin: 30px 0;
    font-size: 1.15rem;
    color: var(--text-main);
    line-height: 1.8;
}

.intro-content {
    margin: 40px 0;
    font-size: 1.15rem;
    color: var(--text-main);
    line-height: 2;
}

.intro-content p {
    margin-bottom: 24px;
}

.intro-content strong {
    color: var(--accent-blue);
    font-weight: 800;
}

.disclaimer-box {
    margin-top: 50px;
    padding: 32px 40px;
    background: #fffafa;
    border-left: 4px solid var(--accent-red);
    border-radius: 4px 12px 12px 4px;
    font-size: 0.95rem;
    color: var(--text-muted);
    line-height: 1.8;
    overflow-wrap: break-word;
    /* 邵ｺ・ｯ邵ｺ・ｿ陷・ｽｺ邵ｺ驤ｴ莠溯ｱ・ｽ｢ */
}

@media (max-width: 768px) {
    .intro-content {
        font-size: 1rem !important;
        line-height: 1.7 !important;
        margin: 30px 0 !important;
    }

    .disclaimer-box {
        padding: 20px !important;
        border-left-width: 3px !important;
        font-size: 0.85rem !important;
        margin-top: 30px !important;
    }
}

.subsidy-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
    gap: 40px;
    margin-top: 80px;
}

.subsidy-card {
    background: #fff;
    border-radius: 32px;
    border: 1px solid var(--border-fine);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.03);
    transition: var(--transition-smooth);
    padding: 60px 50px;
    display: flex;
    flex-direction: column;
    position: relative;
    scroll-margin-top: 140px;
}

.subsidy-card:hover {
    transform: translateY(-12px);
    box-shadow: 0 40px 100px rgba(0, 0, 0, 0.08);
    border-color: var(--accent-blue);
}

.featured-subsidy {
    background-color: #f8fafc;
    border-color: var(--accent-blue);
}

.subsidy-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 800;
    padding: 8px 24px;
    background: #f1f5f9;
    color: #64748b;
    border-radius: 100px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    align-self: flex-start;
    line-height: 1.2;
}

.subsidy-badge.primary {
    background-color: var(--accent-blue);
    color: #fff;
    box-shadow: 0 4px 15px rgba(37, 99, 235, 0.2);
}

.subsidy-card h3 {
    font-size: 1.6rem;
    font-weight: 900;
    margin: 28px 0 20px;
    line-height: 1.3;
    letter-spacing: -0.02em;
}

.subsidy-desc {
    font-size: 1rem;
    color: var(--text-muted);
    margin-bottom: 40px;
    flex-grow: 1;
    line-height: 1.8;
}

.subsidy-meta {
    background: #f8fafc;
    padding: 30px;
    border-radius: 24px;
    margin-bottom: 40px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    border: 1px solid rgba(0, 0, 0, 0.02);
}

.meta-item {
    font-size: 0.95rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: var(--text-muted);
}

.meta-item strong {
    font-weight: 800;
    color: var(--text-main);
    font-family: 'Outfit', sans-serif;
}

/* Region Directory */
.region-nav-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    /* 320px邵ｺ荵晢ｽ・80px邵ｺ・ｸ邵ｲ・ｪPhone SE驕ｲ蟲ｨ竏育ｸｺ・ｮ陝・ｽｾ陟｢繝ｻ*/
    gap: 30px;
    /* 50px邵ｺ荵晢ｽ・0px邵ｺ・ｸ邵ｲ繧・○郢晄ｩｸ・ｿ・ｽE邵ｺ・ｧ邵ｺ・ｮ闖ｴ蜥丞項郢晁・ﾎ帷ｹ晢ｽｳ郢ｧ・ｹ */
    margin-top: 40px;
}

.region-block {
    background: #fff;
    padding: 32px;
    border-radius: 24px;
    border: 1px solid var(--border-fine);
    transition: var(--transition-smooth);
}

.region-block:hover {
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.03);
    border-color: var(--accent-blue);
}

.region-block h3 {
    font-size: 1.1rem;
    font-weight: 900;
    margin-bottom: 24px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--border-fine);
    color: var(--text-main);
    letter-spacing: 0.05em;
}

.prefecture-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.pref-link {
    font-size: 0.85rem;
    padding: 8px 16px;
    background: #f8fafc;
    border: 1px solid var(--border-fine);
    border-radius: 100px;
    transition: var(--transition-smooth);
    color: var(--text-muted);
}

.pref-link.exists {
    color: var(--text-main);
    font-weight: 700;
    background: #fff;
    border-color: rgba(37, 99, 235, 0.2);
}

.pref-link:hover {
    background: var(--accent-blue);
    color: #fff !important;
    border-color: var(--accent-blue);
    transform: scale(1.05);
}

.external-search-box {
    margin-top: 80px;
    padding: 40px;
    background: #f8fafc;
    border-radius: 24px;
    text-align: center;
}

/* Breadcrumbs */
.breadcrumb-container {
    padding-top: 30px;
}

.breadcrumbs {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-muted);
}

.breadcrumbs a {
    color: var(--accent-blue);
}

.breadcrumbs .sep {
    margin: 0 10px;
    opacity: 0.5;
}

/* Layout for Single Region */
.subsidy-main-wrapper {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 60px;
}

.subsidy-article .entry-content {
    font-size: 1.1rem;
    line-height: 1.9;
}

.sub-section-title {
    font-size: 1.5rem;
    font-weight: 900;
    margin: 60px 0 30px;
}

.municipality-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.muni-link {
    padding: 8px 16px;
    background: #f1f5f9;
    border-radius: 100px;
    font-size: 0.9rem;
    font-weight: 700;
    transition: var(--transition-smooth);
}

.muni-link:hover {
    background: var(--accent-blue);
    color: #fff;
}

.region-advice-box {
    margin-top: 60px;
    padding: 40px;
    border-radius: 24px;
}

.region-advice-box h4 {
    margin-bottom: 20px;
    font-size: 1.3rem;
}

.advice-list {
    list-style: none;
    padding: 0;
}

.advice-list li {
    margin-bottom: 12px;
    padding-left: 24px;
    position: relative;
}

.advice-list li::before {
    content: '隨ｳ繝ｻ;
 position: absolute;
    left: 0;
    color: var(--accent-blue);
    font-size: 0.8rem;
    top: 2px;
}

/* Sidebar */
.subsidy-sidebar {
    display: flex;
    flex-direction: column;
    gap: 30px;
}

.sidebar-widget {
    background: #fff;
    padding: 30px;
    border-radius: 20px;
    border: 1px solid var(--border-fine);
}

.sidebar-widget h4 {
    font-size: 1.1rem;
    margin-bottom: 20px;
    border-bottom: 2px solid var(--accent-blue);
    padding-bottom: 10px;
}

.side-subsidy-links {
    list-style: none;
    padding: 0;
}

.side-subsidy-links li {
    margin-bottom: 12px;
}

.side-subsidy-links a {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-main);
}

.side-subsidy-links a:hover {
    color: var(--accent-blue);
}

.sidebar-cta {
    background: var(--bg-dark);
    color: #fff;
    padding: 40px 30px;
    border-radius: 20px;
    text-align: center;
}

.sidebar-cta p {
    font-size: 1.1rem;
    font-weight: 800;
    margin-bottom: 24px;
}

@media (max-width: 992px) {
    .subsidy-main-wrapper {
        grid-template-columns: 1fr;
    }
}

/* --- Municipality Search Cards --- */
.muni-section-desc {
    font-size: 0.95rem;
    line-height: 1.7;
    color: var(--text-muted);
    margin-bottom: 24px;
}

.muni-name-list-box {
    margin: 30px 0 40px;
    padding: 24px;
    background: #fff;
    border-radius: 16px;
    border: 1px solid var(--border-fine);
}

.muni-list-intro {
    font-size: 0.9rem;
    font-weight: 800;
    color: var(--text-main);
    margin-bottom: 16px;
}

.muni-names-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 12px;
}

.muni-name-item {
    font-size: 0.85rem;
    padding: 8px 12px;
    background: #f8fafc;
    border-radius: 6px;
    text-align: center;
    color: var(--text-muted);
    font-weight: 700;
    border: 1px solid transparent;
    transition: var(--transition-smooth);
    text-decoration: none;
    /* 闕ｳ迢暦ｽｷ螢ｹ・定ｱｸ蛹ｻ笘・*/
    display: block;
    /* 郢晢ｽｪ郢晢ｽｳ郢ｧ・ｯ郢ｧ・ｨ郢晢ｽｪ郢ｧ・｢郢ｧ雋橸ｽｺ繝ｻ繝ｻ・ｽ繝ｻ・ｽ郢ｧ繝ｻ*/
}

.muni-name-item:hover {
    background: #fff;
    border-color: var(--accent-blue);
    color: var(--accent-blue);
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.1);
    transform: translateY(-2px);
}

.muni-search-section {
    margin-top: 60px;
    padding: 40px;
    border-radius: 24px;
}

.muni-links-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
    margin: 30px 0;
}

.muni-search-card {
    display: flex;
    flex-direction: column;
    padding: 30px;
    background: #fff;
    border: 2px solid rgba(30, 41, 59, 0.3);
    border-radius: 16px;
    transition: var(--transition-smooth);
}

.muni-search-card:hover {
    transform: translateY(-5px);
    border-color: var(--accent-blue);
    box-shadow: 0 15px 30px rgba(37, 99, 235, 0.1);
}

.muni-card-title {
    font-size: 1.1rem;
    font-weight: 900;
    margin-bottom: 10px;
    color: var(--accent-blue);
}

.muni-card-desc {
    font-size: 0.85rem;
    color: var(--text-muted);
    line-height: 1.5;
}

.sidebar-cta-simple {
    background: #fff;
    color: var(--text-main);
    padding: 40px 30px;
    border-radius: 24px;
    text-align: center;
    border: 2px solid rgba(30, 41, 59, 0.3);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
    transition: var(--transition-smooth);
}

.sidebar-cta-simple:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 40px rgba(37, 99, 235, 0.1);
    border-color: var(--accent-blue);
}

.sidebar-cta-simple p {
    font-size: 1rem;
    font-weight: 800;
    margin-bottom: 24px;
    color: var(--text-main);
    line-height: 1.6;
}

.sidebar-cta-simple .btn-primary {
    color: var(--accent-blue) !important;
    font-size: 1.3rem;
    font-weight: 900;
    display: inline-block;
    padding-bottom: 5px;
    border-bottom: 2px solid var(--accent-blue);
    transition: var(--transition-smooth);
}

.sidebar-cta-simple .btn-primary::after {
    display: none !important;
}

.sidebar-cta-simple .btn-primary:hover {
    opacity: 0.8;
}

/* ============================================================
   Special Package Intro
   ============================================================ */
.special-intro {
    padding-bottom: 0;
}

.intro-content-box {
    background: #fff;
    padding: 60px;
    border-radius: 40px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.03);
    border: 1px solid #f1f5f9;
    max-width: 900px;
    margin: 0 auto 80px; /* 闕ｳ荵昶・80px邵ｺ・ｮ闖ｴ蜥丞項郢ｧ螳夲ｽｿ・ｽ陷会ｿｽ */
    text-align: center;
}

.intro-text .lead-text {
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1.6;
    color: var(--text-main);
    margin-bottom: 24px;
}

@media (max-width: 768px) {
    .intro-text .lead-text {
        font-size: 1.15rem !important;
        /* 1.5rem邵ｺ荵晢ｽ蛾し・ｮ陝・・*/
        line-height: 1.5 !important;
    }

    .intro-text p {
        font-size: 0.95rem !important;
    }
}

.intro-text p {
    font-size: 1.1rem;
    color: #64748b;
    line-height: 1.8;
}

.intro-text .highlight {
    color: var(--accent-blue);
    position: relative;
    padding: 0 4px;
    font-weight: 900;
}

@media (max-width: 1150px) {
    body {
        padding-top: 80px;
        font-size: 16px;
    }

    .container {
        padding: 0 20px;
    }

    .section,
    .section-compact {
        padding: 60px 0;
    }

    /* --- Header & Navigation (Mobile Optimized) --- */
    .site-header {
        top: 3px;
        width: 96%;
        left: 50%;
        transform: translateX(-50%);
    }

    .site-header-pill {
        padding: 2px 0;
        border-radius: 50px;
    }

    .pill-container {
        padding: 0 16px;
    }

    .logo-img-header {
        height: 32px;
    }

    .logo-text-group {
        gap: 0;
    }

    .logo-name {
        font-size: 1.1rem;
    }

    .logo-tagline {
        display: none;
    }

    /* Hamburger Menu Button (Refined) */
    .menu-toggle {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: 40px;
        height: 40px;
        background: #fff;
        /* 騾具ｽｽ髢ｭ譴ｧ蜍ｹ邵ｺ・ｫ邵ｺ蜉ｱ窶ｻ雎ｬ・ｮ邵ｺ蜥ｲ・ｫ荵昶螺邵ｺ蟶呻ｽ・*/
        border: 1px solid rgba(0, 0, 0, 0.08);
        border-radius: 50%;
        cursor: pointer;
        padding: 0;
        z-index: 2100;
        position: relative;
        gap: 6px;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    }

    .menu-toggle span {
        display: block;
        width: 20px;
        height: 2px;
        background-color: var(--text-main);
        transition: var(--transition-smooth);
        border-radius: 2px;
    }

    .menu-toggle.is-active span:nth-child(1) {
        transform: translateY(4px) rotate(45deg);
    }

    .menu-toggle.is-active span:nth-child(2) {
        transform: translateY(-4px) rotate(-45deg);
    }

    /* Mobile Nav Overlay (High-End Redesign based on User Request) */
    .global-nav {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        background: rgba(255, 255, 255, 0.98) !important;
        /* 郢ｧ蛹ｻ・企具ｽｽ邵ｺ荵暦ｽｸ繝ｻ繝ｻ・ｽ繝ｻ・ｽ隲｢貅倥・邵ｺ繧・ｽ矩妙譴ｧ蜍ｹ */
        backdrop-filter: blur(20px);
        -webkit-backdrop-filter: blur(20px);
        display: flex;
        flex-direction: column;
        opacity: 0;
        visibility: hidden;
        transform: translateY(-10px);
        transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1);
        z-index: 2000;
        overflow-y: auto;
        /* 郢ｧ・ｳ郢晢ｽｳ郢昴・繝ｻ・ｽ繝ｻ・ｽ郢昴・繝ｻ・ｽ繝ｻ・ｽ陞溷｣ｹ・櫁撻・ｴ陷ｷ蛹ｻ竊鍋ｹｧ・ｹ郢ｧ・ｯ郢晢ｽｭ郢晢ｽｼ郢晢ｽｫ陷ｿ・ｯ髢ｭ・ｽ邵ｺ・ｫ */
        padding: 60px 0;
    }

    .global-nav.is-visible {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }

    .nav-content-inner {
        width: 100%;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 40px;
        min-height: min-content;
    }

    /* Header Info in Nav */
    .nav-header-info {
        text-align: center;
        width: 100%;
        margin-bottom: 0;
    }

    .nav-logo {
        margin-bottom: 12px;
    }

    .nav-logo-img {
        height: 50px !important;
        width: auto;
    }

    .nav-brand-name {
        font-family: 'Outfit';
        font-weight: 900;
        font-size: 1.4rem;
        letter-spacing: -0.02em;
        color: var(--text-main);
        margin-bottom: 8px;
    }

    .nav-operated {
        font-size: 0.85rem !important;
        font-weight: 800;
        color: var(--text-main);
        margin-bottom: 4px;
    }

    .nav-related {
        font-size: 0.8rem !important;
        font-weight: 800;
    }

    .nav-related a {
        color: var(--text-muted);
        text-decoration: underline;
    }

    /* Menu List in Nav */
    .nav-menu-list {
        flex-direction: column;
        gap: 12px !important;
        /* 鬯・・繝ｻ・ｽ繝ｻ・ｽ鬮｢髮｣・ｿ・ｽE鬮ｫ蜥惹ｿ｣郢ｧ螳夲ｽｩ・ｰ郢ｧ竏ｵ・ｰ諤懆｢也ｸｺ・ｫ */
        text-align: center;
        padding: 0;
        margin: 0;
        list-style: none;
    }

    .nav-menu-list li {
        opacity: 0;
        transform: translateY(10px);
        transition: all 0.6s cubic-bezier(0.19, 1, 0.22, 1);
    }

    .global-nav.is-visible .nav-menu-list li {
        opacity: 1;
        transform: translateY(0);
    }

    /* Staggered Delay */
    .global-nav.is-visible li:nth-child(1) {
        transition-delay: 0.1s;
    }

    .global-nav.is-visible li:nth-child(2) {
        transition-delay: 0.15s;
    }

    .global-nav.is-visible li:nth-child(3) {
        transition-delay: 0.2s;
    }

    .global-nav.is-visible li:nth-child(4) {
        transition-delay: 0.25s;
    }

    .global-nav.is-visible li:nth-child(5) {
        transition-delay: 0.3s;
    }

    .global-nav.is-visible li:nth-child(6) {
        transition-delay: 0.35s;
    }

    .nav-menu-list a {
        font-size: 1.15rem;
        font-weight: 800;
        letter-spacing: 0.05em;
        padding: 10px;
        display: block;
        color: var(--text-main);
    }

    .nav-contact-link {
        color: var(--accent-blue) !important;
    }

    /* Legal Links in Nav */
    .nav-legal {
        margin-top: 20px;
        display: flex;
        flex-direction: column;
        gap: 12px;
        align-items: center;
        padding-top: 30px;
        border-top: 1px solid rgba(0, 0, 0, 0.05);
        width: 80%;
    }

    .nav-copyright {
        font-size: 0.7rem;
        opacity: 0.5;
        margin-top: 20px;
        letter-spacing: 0.05em;
    }

    .nav-legal a {
        font-size: 0.85rem;
        font-weight: 700;
        color: var(--text-muted);
    }

    .global-nav a:active {
        transform: scale(0.95);
        color: var(--accent-blue);
    }

    .global-nav .btn-contact {
        margin-top: 20px;
        padding: 16px 40px !important;
        background: var(--accent-blue) !important;
        color: #fff !important;
        border-radius: 100px;
        font-size: 1.1rem;
        box-shadow: 0 10px 30px rgba(37, 99, 235, 0.2);
    }

    body.menu-open {
        overflow: hidden;
    }

    /* --- Hero Section (Optimized for Readability) --- */
    .hero-v2 {
        height: auto;
        min-height: auto;
        padding: 140px 0 80px;
        margin-top: -80px;
        background-position: 30% center;
    }

    .hero-flex {
        grid-template-columns: 1fr;
        gap: 40px;
        text-align: left;
    }

    .hero-badge {
        font-size: 0.9rem;
        margin-bottom: 16px;
        white-space: normal;
        line-height: 1.4;
    }

    .hero-main-title {
        font-size: 2.4rem;
        line-height: 1.2;
        margin-bottom: 24px;
    }

    .hero-description {
        font-size: 1rem;
        line-height: 1.6;
        padding-left: 16px;
        border-left: 3px solid var(--accent-blue);
    }

    .hero-actions {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
        margin-top: 32px;
    }

    .btn-primary {
        font-size: 1.3rem;
        width: 100%;
        text-align: center;
        padding-bottom: 15px;
    }

    .hero-visual-area {
        width: 100%;
        max-width: 100%;
    }

    .hero-usecase-preview {
        padding: 24px;
        border-radius: 20px;
        box-shadow: 0 20px 40px rgba(0, 0, 0, 0.05);
    }

    .hero-preview-title {
        font-size: 1.2rem;
        margin-bottom: 16px;
    }

    .hero-preview-features {
        flex-wrap: wrap;
        gap: 8px;
    }

    .preview-feature-badge {
        font-size: 0.65rem;
        padding: 3px 10px;
    }

    .hero-uc-grid {
        gap: 20px;
    }

    .hero-uc-item {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .hero-uc-label {
        width: fit-content;
        padding: 4px 12px;
        font-size: 0.6rem;
    }

    .hero-uc-tags {
        gap: 6px;
    }

    .hero-uc-tag {
        font-size: 0.7rem;
        padding: 3px 10px;
    }

    /* --- Sections & Grids --- */
    .feature-grid,
    .plan-grid,
    .pricing-grid,
    .sample-grid,
    .policy-grid,
    .special-grid,
    .pain-point-grid,
    .cards-grid,
    .subsidy-grid,
    .region-nav-container,
    .pricing-overview-grid,
    .hero-split,
    .case-story,
    .model-selection-grid,
    .case-grid,
    .subsidy-main-wrapper,
    .prefecture-grid,
    .muni-links-grid,
    .db-grid,
    .db-main-content {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
        display: grid !important;
        /* 陟托ｽｷ陋ｻ・ｶ騾ｧ繝ｻ繝ｻ・ｽ繝ｻ・ｽ郢ｧ・ｰ郢晢ｽｪ郢昴・繝ｻ・ｽ繝ｻ・ｽ陋ｹ繝ｻ*/
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .subsidy-sidebar {
        order: 2;
        /* 郢晢ｽ｢郢晁・縺・ｹ晢ｽｫ邵ｺ・ｧ邵ｺ・ｯ郢ｧ・ｳ郢晢ｽｳ郢昴・繝ｻ・ｽ繝ｻ・ｽ郢昴・繝ｻ・ｽE闕ｳ荵昶・鬩溷調・ｽ・ｮ */
    }

    .subsidy-article {
        order: 1;
    }

    .case-hero-refined {
        padding: 120px 0 60px;
        text-align: center;
    }

    .hero-text-side {
        text-align: center;
    }

    .case-single .case-title {
        font-size: 1.8rem;
        margin-bottom: 30px;
    }

    .case-outcome-badge {
        border-radius: 16px;
        border-left: none;
        border-top: 4px solid var(--accent-blue);
        width: 100%;
    }

    .case-story {
        margin: 40px 0;
    }

    .story-block {
        padding: 30px 20px;
    }

    .case-tech-stack {
        padding: 40px 20px;
        margin: 40px 0;
    }

    .case-footer-actions {
        flex-direction: column;
        gap: 16px;
        margin: 60px 0 80px;
    }

    .case-footer-actions a {
        width: 100%;
        text-align: center;
    }

    .usecase-category.has-image {
        grid-template-columns: 1fr;
        padding: 24px;
    }

    .usecase-img-wrapper {
        height: 180px;
        order: -1;
        margin-bottom: 16px;
    }

    .feature-card {
        padding: 40px 24px;
    }

    /* --- Concept --- */
    .concept-split {
        flex-direction: column;
        gap: 30px;
        width: 100%;
        margin: 0;
        padding: 0;
    }

    .concept-text {
        min-width: 0 !important;
        width: 100% !important;
        order: 2;
    }

    .concept-visual {
        min-width: 0 !important;
        width: 100% !important;
        order: 1;
        margin-bottom: 20px;
    }

    .concept-main-img {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        border-radius: 20px;
    }

    .concept-message {
        font-size: 1rem;
        text-align: left;
        margin-bottom: 40px;
    }

    /* --- Flow Section --- */
    .flow-grid-v2 {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .flow-item-v2 {
        flex-direction: column;
        text-align: center;
        align-items: center;
    }

    .flow-icon-wrapper {
        width: 120px;
        height: 120px;
        border-radius: 32px;
    }

    .flow-footer-card {
        padding: 30px;
        border-radius: 30px;
        flex-direction: column;
        text-align: center;
        gap: 20px;
    }

    /* --- LINE Button & Chat --- */
    .big-line-btn {
        padding: 16px 24px;
        border-radius: 20px;
    }

    .big-line-btn .btn-icon {
        width: 36px;
        height: 32px;
        margin-right: 16px;
    }

    .big-line-btn .btn-main {
        font-size: 1.1rem;
    }

    .chat-integrated-light,
    .chat-integrated {
        border-radius: 30px;
        padding: 8px 12px 8px 20px;
        flex-wrap: wrap;
        gap: 10px;
    }

    .chat-integrated-light .search-input,
    .chat-integrated .search-input {
        font-size: 1rem;
        min-width: 150px;
    }

    .chat-integrated-light .search-submit-btn,
    .chat-integrated .search-submit-btn {
        padding: 10px 20px;
        font-size: 0.8rem;
        width: 100%;
    }

    .chat-msg {
        max-width: 90%;
        font-size: 0.95rem;
        padding: 12px 16px;
    }

    /* --- Footer (Final Refinement) --- */
    .site-footer {
        padding: 40px 0;
    }

    .footer-content {
        display: flex !important;
        flex-direction: column-reverse !important;
        /* 郢晢ｽ｡郢昜ｹ斟礼ｹ晢ｽｼ郢ｧ蜑・ｽｸ鄙ｫﾂ竏墅溽ｹｧ・ｴ郢ｧ蜑・ｽｸ荵昶・ */
        padding: 0 !important;
        gap: 40px !important;
        text-align: center !important;
    }

    .footer-info {
        text-align: center;
        width: 100%;
        margin-bottom: 0;
    }

    .related-link-wrapper {
        display: flex;
        justify-content: center;
        margin-top: 16px;
    }

    .footer-logo {
        margin-bottom: 16px;
        display: flex;
        justify-content: center;
    }

    .footer-logo-img {
        height: 160px;
        /* 郢晢ｽ｢郢晁・縺・ｹ晢ｽｫ邵ｺ・ｧ郢ｧ繧・ｼ邵ｺ・｣邵ｺ荵晢ｽ企囎荵昶斡郢ｧ荵昴＠郢ｧ・､郢ｧ・ｺ邵ｺ・ｫ髫ｱ・ｿ隰ｨ・ｴ */
    }

    .footer-brand-group {
        margin-bottom: 16px;
    }

    .footer-brand-name {
        font-size: 1.4rem !important;
        margin-bottom: 8px !important;
    }

    .footer-right {
        align-items: center;
        text-align: center;
        width: 100%;
        gap: 30px;
    }

    .footer-nav ul {
        flex-direction: column;
        gap: 12px;
        align-items: center;
    }

    .footer-nav a {
        font-size: 1rem;
        padding: 8px;
    }

    .footer-bottom-full {
        display: flex;
        flex-direction: column !important;
        align-items: center !important;
        width: 100% !important;
        margin-top: 50px !important;
        padding-top: 30px !important;
        border-top: 1px solid rgba(0, 0, 0, 0.06) !important;
    }

    .copyright {
        margin-top: 0 !important;
        font-size: 0.7rem !important;
        opacity: 0.5 !important;
        letter-spacing: 0.05em !important;
        text-align: center !important;
    }

    /* --- To Top Button (Mobile Adjustment) --- */
    .to-top-btn {
        bottom: 20px;
        right: 20px;
        width: 44px;
        height: 44px;
        z-index: 9999;
        /* 隴崢陷大涵謫・ｸｺ・ｫ */
    }
}

@media (max-width: 768px) {
    .hero-main-title {
        font-size: 1.6rem;
        /* 1.8rem邵ｺ荵晢ｽ臥ｸｺ霈費ｽ臥ｸｺ・ｫ驍ｵ・ｮ陝・・*/
    }

    .section-title {
        font-size: 1.6rem;
    }

    .display-text {
        font-size: 1.3rem !important;
    }

    .subsidy-card {
        padding: 32px 20px;
    }

    .intro-content-box,
    .intro-box {
        padding: 30px 20px;
    }

    .usecase-category {
        padding: 20px;
    }

    .service-detail-block {
        padding: 30px 16px;
    }

    /* --- Global Heading Adjustments (Mobile) --- */
    .page-hero {
        min-height: 280px !important;
        padding: 100px 0 40px !important;
    }

    .page-title {
        font-size: 1.8rem !important;
        /* 2rem邵ｺ荵晢ｽ・.8rem邵ｺ・ｸ驍ｵ・ｮ陝・・*/
        margin-bottom: 16px !important;
        line-height: 1.2 !important;
    }

    .page-description {
        font-size: 1rem !important;
        min-height: auto !important;
        line-height: 1.6 !important;
    }

    .page-cat-label {
        font-size: 0.75rem !important;
        margin-bottom: 12px !important;
        letter-spacing: 0.2em !important;
    }

    h2,
    .section-title {
        font-size: 1.4rem !important;
        /* 1.6rem邵ｺ荵晢ｽ臥ｸｺ霈費ｽ臥ｸｺ・ｫ驍ｵ・ｮ陝・・*/
    }

    h3 {
        font-size: 1.15rem !important;
        /* 1.25rem邵ｺ荵晢ｽ臥ｸｺ霈費ｽ臥ｸｺ・ｫ驍ｵ・ｮ陝・・*/
    }

    .service-main-title {
        font-size: 1.4rem !important;
        /* 1.8rem邵ｺ荵晢ｽ蛾し・ｮ陝・・*/
    }

    .service-summary {
        font-size: 1.05rem !important;
        /* 1.1rem邵ｺ荵晢ｽ芽包ｽｮ髫ｱ・ｿ隰ｨ・ｴ */
        padding-left: 16px !important;
    }

}

/* 邵ｺ阮呻ｼ・ｸｺ・ｧ768px邵ｺ・ｮ郢晄じﾎ溽ｹ昴・繝ｻ・ｽ繝ｻ・ｽ郢ｧ蟶晏陶邵ｺ蛟･・・*/

/* --- Flow Section Mobile Override (Unified for Tablet/Mobile) --- */
@media (max-width: 992px) {
    #flow .section-title {
        text-align: center !important;
    }

    #flow .section-title::after {
        left: 50% !important;
        transform: translateX(-50%) !important;
    }

    #flow .flow-grid-v2 {
        display: grid !important;
        grid-template-columns: 1fr !important;
        justify-items: center !important;
        gap: 80px !important;
        width: 100% !important;
    }

    #flow .flow-path-line {
        display: block !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        top: 80px !important;
        width: 3px !important;
        height: calc(100% - 160px) !important;
        background-color: var(--accent-blue) !important;
        background: var(--accent-blue) !important;
        opacity: 0.25 !important;
        z-index: 0 !important;
    }

    #flow .flow-item-v2 {
        display: flex !important;
        flex-direction: column !important;
        text-align: center !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 20px !important;
        width: 100% !important;
        max-width: 400px !important;
        position: relative !important;
        z-index: 1 !important;
    }

    #flow .flow-icon-wrapper {
        margin: 0 auto 10px !important;
        width: 120px !important;
        height: 120px !important;
        border-radius: 36px !important;
        background-color: #fff !important;
    }

    #flow .flow-title-v2 {
        font-size: 1.15rem !important;
        width: 100% !important;
    }
}

/* Hide hamburger on desktop */
@media (min-width: 1151px) {
    .menu-toggle {
        display: none;
    }
}

/* Contact Form 7 - Custom Styles */
.zip-note {
    font-size: 0.85em;
    color: var(--text-muted);
    display: block;
    margin-bottom: 5px;
}

/* Contact Form 7 - 郢ｧ・ｨ郢晢ｽｩ郢晢ｽｼ郢晢ｽｻ郢晢ｽ｡郢昴・繝ｻ・ｽ繝ｻ・ｽ郢晢ｽｼ郢ｧ・ｸ邵ｺ・ｮ髯ｬ繝ｻ繝ｻ・ｽ繝ｻ・ｽ */

/* 陷ｷ繝ｻ繝ｻ・ｽE陷牙ｹ・ｿｽ繝ｻ繝ｻ・ｽ繝ｻ・ｽ邵ｺ・ｮ闕ｳ荵昶・陷・ｽｺ郢ｧ荵昴♀郢晢ｽｩ郢晢ｽｼ郢晢ｽ｡郢昴・繝ｻ・ｽ繝ｻ・ｽ郢晢ｽｼ郢ｧ・ｸ */
.wpcf7-not-valid-tip {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--accent-red) !important;
    margin-top: 6px;
    display: block;
    animation: fadeInSlide 0.4s ease forwards;
}

/* 郢晁ｼ斐°郢晢ｽｼ郢晢ｿｽ邵ｺ・ｮ闕ｳﾂ騾｡・ｪ闕ｳ荵昶・陷・ｽｺ郢ｧ蜈ｷ・ｿ・ｽE闖ｴ阮厥鍋ｹ昴・繝ｻ・ｽ繝ｻ・ｽ郢晢ｽｼ郢ｧ・ｸ邵ｺ・ｮ驍ゑｽｱ */
.wpcf7-response-output {
    margin: 5px 0 0 !important;
    padding: 20px 30px !important;
    border-radius: 12px !important;
    border: none !important;
    /* 郢昴・繝ｻ・ｽ繝ｻ・ｽ郢ｧ・ｩ郢晢ｽｫ郢晁肩・ｿ・ｽE郢ｧ・ｪ郢晢ｽｬ郢晢ｽｳ郢ｧ・ｸ隴ｫ・ｽ郢ｧ蜻茨ｽｶ莠･謔・*/
    font-size: 0.95rem;
    font-weight: 700;
    text-align: center;
    line-height: 1.6;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

/* 郢晁・ﾎ懃ｹ昴・繝ｻ・ｽE郢ｧ・ｷ郢晢ｽｧ郢晢ｽｳ郢ｧ・ｨ郢晢ｽｩ郢晢ｽｼ邵ｺ蠕娯旺郢ｧ蛹ｺ蜃ｾ邵ｺ・ｮ陷茨ｽｨ闖ｴ阮厥鍋ｹ昴・繝ｻ・ｽ繝ｻ・ｽ郢晢ｽｼ郢ｧ・ｸ繝ｻ・ｽE繝ｻ・ｽ隘搾ｽ､陝・圜・ｿ・ｽE隘搾ｽ､隴ｫ・ｽ郢ｧ・ｹ郢ｧ・ｿ郢ｧ・､郢晢ｽｫ繝ｻ・ｽE繝ｻ・ｽE*/
.wpcf7-validation-errors {
    background: rgba(255, 77, 77, 0.05) !important;
    /* 邵ｺ譁撰ｿ･髦ｮ繝ｻ繝ｻ・ｽ繝ｻ・ｽ隘搾ｽ､髢ｭ譴ｧ蜍ｹ */
    color: #ff4d4d !important;
    /* 邵ｺ・ｯ邵ｺ・｣邵ｺ髦ｪ・顔ｸｺ・ｨ邵ｺ蜉ｱ笳・･搾ｽ､陝・・*/
    border: 1px solid #ff4d4d !important;
    /* 隘搾ｽ､邵ｺ繝ｻ繝ｻ・ｽ繝ｻ・ｽ驍ｱ繝ｻ*/
    border-left: 4px solid #ff4d4d !important;
    /* 陝ｾ・ｦ陋幢ｽｴ郢ｧ雋橸ｽｰ莉｣・陞滂ｽｪ邵ｺ荳奇ｼ邵ｺ・ｦ陟托ｽｷ髫ｱ・ｿ */
}

/* 鬨ｾ竏ｽ・ｿ・｡隰御ｻ咏ｲ･隴弱ｑ・ｿ・ｽE陷茨ｽｨ闖ｴ阮厥鍋ｹ昴・繝ｻ・ｽ繝ｻ・ｽ郢晢ｽｼ郢ｧ・ｸ */
.wpcf7-mail-sent-ok {
    background: rgba(16, 185, 129, 0.05) !important;
    /* 髦ｮ繝ｻ繝ｻ・ｽ繝ｻ・ｽ驍ｱ鬘後Ξ隴趣ｽｯ */
    color: #10b981 !important;
    border-left: 4px solid #10b981 !important;
}

/* 郢ｧ・ｨ郢晢ｽｩ郢晢ｽｼ髯ｦ・ｨ驕会ｽｺ隴弱ｑ・ｿ・ｽE郢ｧ・｢郢昜ｹ斟鍋ｹ晢ｽｼ郢ｧ・ｷ郢晢ｽｧ郢晢ｽｳ */
@keyframes fadeInSlide {
    from {
        opacity: 0;
        transform: translateY(-5px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* 鬨ｾ竏ｽ・ｿ・｡闕ｳ・ｭ邵ｺ・ｮ郢ｧ・ｹ郢晄鱒繝ｪ郢晢ｽｼ郢ｧ蟶晄直髯ｦ・ｨ驕会ｽｺ邵ｺ・ｫ邵ｺ蜷ｶ・・*/
.wpcf7-spinner {
    display: none !important;
}




/* --- Footer Legal Side Column Redesign --- */
.footer-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.footer-nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: flex-end;
}

.footer-legal-nav-side {
    margin-top: 40px;
}

.footer-legal-nav-side ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: flex-end;
}

.footer-legal-nav-side a {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--text-muted);
    transition: var(--transition-smooth);
}

.footer-legal-nav-side a:hover {
    color: var(--accent-blue);
}

.footer-bottom-full {
    display: flex;
    justify-content: center;
    margin-top: 40px;
    padding-top: 20px;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}

@media (max-width: 1150px) {
    .footer-right {
        align-items: center;
        text-align: center;
    }

    .footer-nav ul,
    .footer-legal-nav-side ul {
        align-items: center;
    }

    .footer-legal-nav-side {
        margin-top: 30px;
    }

    .footer-bottom-full {
        margin-top: 40px !important;
        padding-top: 20px !important;
    }
}

/* --- Archive Pages Mobile Refinement --- */
@media (max-width: 768px) {
    .card-body {
        padding: 24px !important;
    }

    .case-card-v2 .card-title {
        font-size: 1.25rem !important;
        margin-bottom: 24px !important;
        min-height: auto !important;
        /* 郢ｧ・ｹ郢晄ｩｸ・ｿ・ｽE邵ｺ・ｧ邵ｺ・ｯ鬯ｮ蛟･・・ｹｧ雋槫ｴ玖楜螢ｹ・邵ｺ・ｪ邵ｺ繝ｻ*/
    }

    .special-card .card-title {
        font-size: 1.25rem !important;
    }

    .card-summary p {
        font-size: 0.85rem !important;
    }

    .tech-tags-mini {
        padding: 12px 24px !important;
    }

    .card-impact {
        padding: 16px 20px !important;
    }

    .impact-text {
        font-size: 1.05rem !important;
    }

    /* 郢晏､ｲ・ｿ・ｽE郢ｧ・ｸ郢晄誓・ｿ・ｽE郢ｧ・ｷ郢晢ｽｧ郢晢ｽｳ邵ｺ・ｮ髫ｱ・ｿ隰ｨ・ｴ */
    .pagination {
        margin-top: 60px !important;
        display: flex;
        justify-content: center;
    }

    .pagination .nav-links {
        display: flex;
        gap: 8px;
        flex-wrap: wrap;
        justify-content: center;
    }

    .pagination .page-numbers {
        width: 44px;
        height: 44px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: #fff;
        border: 1px solid var(--border-fine);
        border-radius: 8px;
        font-weight: 700;
        font-size: 0.9rem;
        color: var(--text-main);
        text-decoration: none;
    }

    .pagination .page-numbers.current {
        background: var(--accent-blue);
        color: #fff;
        border-color: var(--accent-blue);
    }

}

/* --- Gutenberg Buttons Override (Premium Friendly Style) --- */
.wp-block-button__link.wp-element-button {
    background: linear-gradient(135deg, var(--accent-blue) 0%, #3b82f6 100%) !important;
    color: #fff !important;
    border-radius: 100px !important;
    padding: 16px 40px !important;
    font-weight: 800 !important;
    font-size: 1.05rem !important;
    border: none !important;
    box-shadow: 0 10px 25px rgba(37, 99, 235, 0.2) !important;
    transition: var(--transition-smooth) !important;
    text-decoration: none !important;
    display: inline-block !important;
}

.wp-block-button__link.wp-element-button:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 15px 35px rgba(37, 99, 235, 0.3) !important;
    opacity: 0.95 !important;
    color: #fff !important;
}

/* --- Footer CTA Redesign (Premium & Friendly) --- */
.cta-content-wrapper {
    text-align: center;
    max-width: 900px;
    margin: 0 auto;
}

.cta-description {
    font-size: 1.1rem;
    color: var(--text-muted);
    margin-top: 20px;
    line-height: 1.8;
}

.consultation-actions-v2 {
    display: flex;
    justify-content: center;
    gap: 32px;
    margin-top: 60px;
}

.cta-btn {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 24px 40px;
    border-radius: 24px;
    text-decoration: none;
    transition: var(--transition-smooth);
    width: 380px;
    text-align: left;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.08);
    background: #fff;
}

.cta-btn:hover {
    box-shadow: 0 25px 55px rgba(0, 0, 0, 0.12);
}

.btn-line {
    background: linear-gradient(135deg, #06c755 0%, #05b34c 100%);
    color: #fff !important;
    border: none;
}


.btn-email {
    background: linear-gradient(135deg, var(--accent-blue) 0%, #3b82f6 100%);
    color: #fff !important;
    border: none;
}

.btn-email .btn-icon {
    color: #fff;
}


.cta-btn .btn-icon {
    width: 54px;
    height: 54px;
    flex-shrink: 0;
}

.cta-btn .btn-icon svg {
    width: 100%;
    height: 100%;
}

.cta-btn .btn-text {
    display: flex;
    flex-direction: column;
}

.btn-sub {
    font-size: 0.8rem;
    font-weight: 700;
    opacity: 0.85;
    letter-spacing: 0.05em;
    margin-bottom: 6px;
}

.btn-main {
    font-size: 1.3rem;
    font-weight: 900;
    letter-spacing: 0.02em;
}

/* Responsive CTA */
@media (max-width: 850px) {
    .consultation-actions-v2 {
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }

    .cta-btn {
        width: 100%;
        max-width: 450px;
        padding: 20px 30px;
    }

    .btn-main {
        font-size: 1.15rem;
    }
}

/* --- Legal Pages (TOS, Privacy Policy) --- */
.legal-page {
    background-color: var(--bg-main);
    padding-bottom: 80px;
}

.legal-page .page-hero {
    min-height: 380px !important;
}

.legal-page .section {
    padding: 40px 0 80px;
}

.legal-card {
    background: #fff;
    border-radius: 32px;
    padding: 50px 60px;
    box-shadow: 0 40px 100px rgba(0, 0, 0, 0.04);
    border: 1px solid var(--border-fine);
    max-width: 960px;
    margin: 0 auto;
}

.legal-content {
    padding: 0 !important;
    background: transparent !important;
}

.legal-content>*:first-child {
    margin-top: 0 !important;
}

.legal-content h2 {
    font-size: 1.8rem;
    font-weight: 800;
    margin: 50px 0 25px;
    padding-bottom: 15px;
    border-bottom: 2px solid var(--accent-blue);
    color: var(--text-main);
}

.legal-content h3 {
    font-size: 1.3rem;
    font-weight: 800;
    margin: 35px 0 15px;
    color: var(--text-main);
    display: flex;
    align-items: center;
    gap: 12px;
}

.legal-content h3::before {
    content: '';
    width: 4px;
    height: 24px;
    background: var(--accent-blue);
    border-radius: 2px;
}

.legal-content p {
    margin-bottom: 20px;
    color: var(--text-main);
    line-height: 1.8;
}

.legal-content ul {
    margin-bottom: 25px;
    padding-left: 20px;
}

.legal-content li {
    margin-bottom: 10px;
}

.legal-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 0;
}

.legal-table tr {
    border-bottom: 1px solid var(--border-fine);
}

.legal-table tr:last-child {
    border-bottom: none;
}

.legal-table th,
.legal-table td {
    padding: 24px 0;
    text-align: left;
    vertical-align: top;
}

.legal-table th {
    width: 240px;
    font-weight: 800;
    color: var(--text-muted);
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.legal-table td {
    font-size: 1.1rem;
    color: var(--text-main);
}

@media (max-width: 768px) {
    .legal-card {
        padding: 30px 20px;
        border-radius: 20px;
    }

    .legal-table th,
    .legal-table td {
        display: block;
        width: 100%;
        padding: 10px 0;
    }

    .legal-table th {
        padding-top: 20px;
    }

    .legal-table td {
        padding-bottom: 20px;
    }
}
/* Floating Footer Menu */
.floating-footer-menu {
    position: fixed;
    bottom: 3px;
    left: 50%;
    transform: translateX(-50%) translateY(20px);
    width: 92%;
    max-width: 480px;
    background: #fff;
    border-radius: 100px;
    display: flex;
    justify-content: space-around;
    align-items: center;
    padding: 5px 12px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.18);
    z-index: 2000;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

.floating-footer-menu.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
}

.floating-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: #1a2b4b;
    gap: 2px;
    flex: 1;
}

.floating-icon {
    width: 21px;
    height: 21px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.floating-icon.line { color: #06C755; }
.floating-icon.mail { color: #2563eb; }
.floating-icon.top { color: #1a2b4b; }

.floating-item span {
    font-size: 10px;
    font-weight: 800;
}

/* PC邵ｺ・ｧ郢ｧ繧奇ｽ｡・ｨ驕会ｽｺ邵ｺ蜷ｶ・狗ｹｧ蛹ｻ竕ｧ邵ｺ・ｫ陞溽判蟲ｩ */
/* @media (min-width: 769px) {
    .floating-footer-menu { display: none; }
} */


/* --- Premium Pagination (Archive Pages) --- */
.pagination {
    margin: 100px 0 60px;
    display: flex;
    justify-content: center;
}

.pagination .screen-reader-text {
    display: none;
}

.pagination .nav-links {
    display: flex !important;
    gap: 12px !important;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}

.pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 16px;
    background: #fff;
    border: 1px solid var(--border-fine);
    color: var(--text-main);
    font-weight: 800;
    font-size: 1rem;
    transition: var(--transition-smooth);
    text-decoration: none;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.02);
}

.pagination .page-numbers.current {
    background: var(--accent-blue);
    color: #fff;
    border-color: var(--accent-blue);
    box-shadow: 0 8px 20px rgba(37, 99, 235, 0.25);
    transform: scale(1.05);
}

.pagination .page-numbers:not(.current):hover {
    border-color: var(--accent-blue);
    color: var(--accent-blue);
    background: #fff;
    transform: translateY(-3px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.06);
}

.pagination .next, .pagination .prev {
    width: auto !important;
    padding: 0 28px;
    font-family: 'Outfit', sans-serif;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-size: 0.85rem;
}

/* --- Premium Post Navigation (Single Pages) --- */
.post-navigation {
    margin: 120px 0 80px;
    padding-top: 80px;
    border-top: 1px solid var(--border-fine);
}

.post-nav-links {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
}

.nav-previous a, .nav-next a {
    display: flex;
    flex-direction: column;
    gap: 16px;
    text-decoration: none;
    transition: var(--transition-smooth);
    padding: 30px;
    border-radius: 24px;
    border: 1px solid transparent;
    background: rgba(255, 255, 255, 0.5);
}

.nav-previous a:hover, .nav-next a:hover {
    background: #fff;
    border-color: var(--border-fine);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.04);
}

.nav-label {
    font-size: 0.7rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.3em;
    color: var(--text-muted);
}

.nav-title {
    font-size: 1.25rem;
    font-weight: 900;
    color: var(--text-main);
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.nav-next { text-align: right; }

.nav-previous a:hover .nav-title, 
.nav-next a:hover .nav-title {
    color: var(--accent-blue);
}

@media (max-width: 768px) {
    .post-nav-links {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    .nav-next { text-align: left; }
    .pagination .page-numbers:not(.next):not(.prev) {
        width: 42px;
        height: 42px;
    }
}
