/* =========================
    AgentFlow Section
   ========================= */
.af-section {
    position: relative;
    padding: 8rem 0 6rem;
    background: #0f0f10; /* SilentGuard と同一 */
    color: #fff;
}

/* レイアウト */
.af-container {
    width: min(1200px, 92vw);
    margin: 0 auto;
    display: grid;
    gap: 3rem;
}

/* PC：左テキスト・右SVG（SilentGuard と同じ） */
@media (min-width: 960px) {
    .af-container {
        grid-template-columns: 1.1fr 1fr; /* 左:テキスト / 右:SVG */
        align-items: start;
    }
    .visual-wrap { order: 1; }
    .af-head { order: 2; }
}

/* SP：上SVG → 下テキスト（同じ） */
@media (max-width: 959px) {
    .visual-wrap { order: 1; }
    .af-head     { order: 2; }
}

/* タイポ（SilentGuard と同値） */
.af-head { max-width: 720px; }
.af-head .eyebrow {
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #9aa0a6;
    font-size: 0.8rem;
}
.af-head .title {
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.1;
    color: #fff;
    margin: 0.4rem 0 1rem;
    text-shadow: 0 0 12px rgba(180, 200, 255, 0.18);
}
.af-head .lede {
    color: #bdbdbd;
    font-size: 1.05rem;
}
.af-head .lede span { color: #fff; }
.af-head .bullets {
    margin: 1.2rem 0 1.6rem;
    color: #bdbdbd;
    display: grid;
    gap: 0.4rem;
}
.af-head .cta-row {
    display: flex;
    gap: 0.8rem;
    align-items: center;
}
.af-head .cta {
    display: inline-block;
    padding: 0.7rem 1rem;
    background: #fff;
    color: #232323ff;
    border-radius: 0.75rem;
    font-weight: 600;
}

.af-head .en {
    display: block;
    color: rgba(255,255,255,0.65);
    font-size: 0.88em;
    letter-spacing: 0.02em;
    margin-top: 0.25em;
    line-height: 1.55;
}
.af-head .bullets .en {
    color: rgba(255,255,255,0.55);
    font-size: 0.84em;
}

/* ====== ビジュアル（SilentGuard と揃える） ====== */
.visual-wrap {
    position: relative;
}

@media (min-width: 960px) {
    .af-section .visual-wrap { justify-self: start; }  /* 左配置の対称性を保証 */
    .af-frame { width: min(640px, 46vw); }             /* ← 安定する“定規” */
}

.af-glow {
    position: absolute;
    inset: -18% -10% auto -10%;
    height: 52%;
    filter: blur(22px);
    opacity: 0;
    pointer-events: none;
    mix-blend-mode: screen;
}

.af-frame {
    margin: 0;
    aspect-ratio: 16 / 14;
    border-radius: 1.2rem;
    overflow: hidden;
    border: 1px solid rgba(0, 255, 255, 0.3);
    background-color: #0f0f10; /* セクション背景と一致 */
    box-shadow:
        0 30px 80px rgba(0, 0, 0, 0.6),
        inset 0 1px rgba(255, 255, 255, 0.05); /* ← SilentGuard と同じ強さ */
    display: grid;
    place-items: center;
    animation: af-fade 900ms ease both;
}

@media (min-width: 960px) {
    .af-section .visual-wrap { justify-self: start; }  /* 左配置の対称性を保証 */
    .af-frame { width: min(640px, 46vw); }             /* ← 安定する“定規” */
}

/* SVG 表示（SilentGuard と同じスケール） */
.af-svg {
    width: 78%;
    height: auto;
    display: block;
    opacity: 0.95;
    filter: drop-shadow(0 0 10px rgba(0, 255, 255, 0.3));
}

/* Motion */
@keyframes af-fade {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
    .af-frame { animation: none !important; }
}