/* TOPの最初の画面：大きな写真＋一言のシンプルな4枚（2026-10-04） */

.hero:has(.hero-slide--simple.active) .hero-scene { opacity: 0; }
.hero-slide--simple .hs-photo {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 62%;
    background-size: cover;
    background-repeat: no-repeat;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 28%);
    mask-image: linear-gradient(90deg, transparent 0%, #000 28%);
    z-index: 0;
}
/* チームの写真は全面に（写真の中に一言が入っているため、文字は重ねない） */
.hero-slide--s-team .hs-photo { width: 100%; -webkit-mask-image: none; mask-image: none; background-position: center 30% !important; }
.hero-slide--s-team .hero-content { display: none; }
body.corp .hero-slide--simple .hero-title { font-size: clamp(34px, 4.6vw, 60px); font-weight: 900; line-height: 1.25; }
body.corp .hero-slide--simple .hero-subtitle { font-size: 17px; }
body.corp .hero-slide--simple .hero-content > * { max-width: min(560px, 44vw); }
@media (max-width: 768px) {
    .hero-slide--simple .hs-photo { width: 100%; height: 58%; bottom: auto; -webkit-mask-image: linear-gradient(180deg, #000 60%, transparent); mask-image: linear-gradient(180deg, #000 60%, transparent); }
    body.corp .hero-slide--simple .hero-content > * { max-width: none; }
    .hero-slide--s-team .hs-photo { height: 100%; background-size: contain !important; background-color: #eaf2ff; }
}

/* チームの写真も、他と同じく右に写真・左に一言 */
.hero-slide--s-team .hs-photo { width: 66%; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 24%); mask-image: linear-gradient(90deg, transparent 0%, #000 24%); background-position: center 20% !important; }
.hero-slide--s-team .hero-content { display: block; }
.hero-slide--simple .hs-photo { width: 52%; }
@media (max-width: 768px) { .hero-slide--s-team .hs-photo { width: 100%; height: 58%; background-size: cover !important; } }
.hero-slide--simple.hero-slide--s-team .hs-photo { width: 70%; background-size: cover; }
.hero-slide--simple.hero-slide--s-team .hs-photo { width: 58%; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 30%); mask-image: linear-gradient(90deg, transparent 0%, #000 30%); }
@media (max-width: 768px) { .hero-slide--simple.hero-slide--s-team .hs-photo { width: 100%; -webkit-mask-image: linear-gradient(180deg, #000 60%, transparent); mask-image: linear-gradient(180deg, #000 60%, transparent); } }

/* ---------- スマホ：写真を画面の上半分いっぱいに、文字はその下に（2026-10-04） ---------- */
@media (max-width: 768px) {
    body.corp .hero { height: 760px !important; min-height: 0 !important; }
    body.corp .hero-slide.hero-slide--simple { align-items: flex-end; padding-bottom: 86px; }
    body.corp .hero-slide.hero-slide--simple .hs-photo,
    body.corp .hero-slide.hero-slide--simple.hero-slide--s-team .hs-photo {
        left: 0; right: 0; top: 0; bottom: auto;
        width: 100% !important;
        height: 400px !important;
        background-size: cover !important;
        -webkit-mask-image: linear-gradient(180deg, #000 78%, transparent) !important;
        mask-image: linear-gradient(180deg, #000 78%, transparent) !important;
    }
    body.corp .hero-slide--s-team .hs-photo { background-position: 60% 12% !important; }
    body.corp .hero-slide--s-rapid .hs-photo { background-position: 55% 10% !important; }
    body.corp .hero-slide--s-eng .hs-photo { background-position: 40% 0% !important; }
    body.corp .hero-slide--simple .hero-content { background: none !important; padding: 0 20px; }
    body.corp .hero-slide--simple .hero-title { font-size: 30px; }
    body.corp .hero-slide--simple .hero-subtitle { font-size: 14px; }
    body.corp .hero-slide--simple .hero-buttons .btn { width: 100%; justify-content: center; }
    /* 地球とロボットのスライド */
    .hs-earth { top: 40px !important; }
    .hs-robot { top: 30px !important; }
    body.corp .hero-slide--team { padding-bottom: 86px; }
}

/* ---------- 写真を切らずに全体を表示（2026-10-04） ---------- */
body.corp .hero-slide.hero-slide--simple .hs-photo {
    background-size: contain !important;
    background-position: right center !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
    width: 56% !important;
    top: 6% !important;
    bottom: 6% !important;
    right: 3% !important;
    height: auto !important;
}
@media (max-width: 768px) {
    body.corp .hero-slide.hero-slide--simple .hs-photo {
        left: 16px !important; right: 16px !important; top: 16px !important; bottom: auto !important;
        width: auto !important;
        height: 330px !important;
        background-position: center top !important;
    }
}

/* 図解を拡大して見る（2026-10-04） */
.hs-photo[data-zoom] { cursor: zoom-in; z-index: 3 !important; transition: transform .3s ease; }
.hs-photo[data-zoom]:hover { transform: scale(1.02); }
.hs-photo[data-zoom]::after {
    content: "00e  タップで図解を見る";
    font-family: "Font Awesome 6 Free", "Noto Sans JP", sans-serif; font-weight: 900;
    position: absolute; right: 12px; bottom: 12px;
    padding: 8px 14px; border-radius: 999px;
    background: rgba(11, 22, 56, .85); color: #fff; font-size: 13px;
}
.hs-zoom-btn { cursor: pointer; }
.zoom-lb { position: fixed; inset: 0; z-index: 3000; background: rgba(5, 10, 30, .9); display: flex; flex-direction: column; }
.zoom-lb[hidden] { display: none; }
.zoom-body { flex: 1; overflow: auto; -webkit-overflow-scrolling: touch; padding: 56px 16px 8px; display: flex; justify-content: center; align-items: flex-start; }
.zoom-body img { display: block; width: min(1536px, 100%); height: auto; border-radius: 8px; box-shadow: 0 20px 60px rgba(0, 0, 0, .5); }
.zoom-close { position: absolute; top: 10px; right: 14px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: #fff; color: #0b1638; font-size: 20px; cursor: pointer; z-index: 2; }
.zoom-hint { margin: 0; padding: 10px 16px 16px; text-align: center; font-size: 13px; color: #c9d2e6; }
.zoom-hint a { color: #ffd77a; font-weight: 800; }
@media (max-width: 768px) {
    .zoom-body img { width: 1100px; max-width: none; }
    .zoom-body { justify-content: flex-start; }
}
.hero-slide--simple .hs-photo[data-zoom] { pointer-events: auto; }
.hero-slide--simple .hero-buttons { flex-wrap: wrap; gap: 10px; }

/* 製品一覧の画像スライド：全体を表示（2026-10-04） */
.hero-slide--fullbanner { padding: 0 !important; }
.hero-slide--fullbanner .hero-banner-bg { background-image: url("../images/hero-services-20261004c.jpg"); }
.hero:has(.hero-slide--fullbanner.active) .hero-scene { opacity: 0; }
.hb-zoom { position: absolute; right: 10px; bottom: 10px; z-index: 3; padding: 8px 14px; border: 0; border-radius: 999px; background: rgba(11,22,56,.85); color: #fff; font-weight: 800; font-size: 13px; cursor: pointer; }
@media (max-width: 768px) {
    .hero-slide--fullbanner .hero-banner-frame { width: 100%; top: 50%; transform: translate(-50%, -60%); }
}

/* ロボットの画面：上段7・下段7で全製品を表示 */
.hero-services { display: block !important; }
.hsv-row--top { grid-template-columns: repeat(7, minmax(0, 1fr)) !important; justify-content: stretch; }
.hsv-row--bottom { grid-template-columns: repeat(7, minmax(0, 1fr)) !important; }
.hsv-row { width: min(1320px, calc(100% - 24px)); gap: 6px; }
.hsv-item { gap: 6px; padding: 5px 6px 5px 5px; }
.hsv-item img { width: 44px; height: 32px; }
.hsv-item b { font-size: 11.5px; }
.hsv-item small { font-size: 9.5px; }
.hsv-row--bottom li { display: block !important; }
body.corp .hero-slide--team .hero-content { padding-top: 60px; }
@media (max-width: 1100px) {
    .hsv-row--top, .hsv-row--bottom { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
    .hsv-item small { display: none; }
}
@media (max-width: 768px) {
    .hero-services { display: block !important; }
    .hsv-row--top { top: 6px; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
    .hsv-row--bottom { bottom: 64px; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
    .hsv-item img { display: none; }
    .hsv-item { padding: 5px 7px; }
}

.hb-spot.is-gold { background: transparent !important; border: 0 !important; }
.hb-spot.is-gold::before, .hb-spot.is-gold::after { content: none !important; }

/* ---------- TOPを一面に：余白なし（2026-10-04） ---------- */
@media (min-width: 769px) {
    body.corp .hero { height: calc(100vw * 941 / 1672) !important; min-height: 0 !important; max-height: none !important; }
    .hero-slide--fullbanner .hero-banner-bg { display: none; }
    .hero-slide--fullbanner .hero-banner-frame { left: 0 !important; top: 0 !important; transform: none !important; width: 100% !important; height: 100% !important; box-shadow: none; }
    .hero-slide--fullbanner .hero-banner-frame img { width: 100%; height: 100%; object-fit: cover; }
    /* 写真のスライドも全面に写真、文字は左に重ねる */
    body.corp .hero-slide.hero-slide--simple:not(.hero-slide--fullbanner) .hs-photo {
        inset: 0 !important; width: 100% !important; height: 100% !important;
        background-size: cover !important; background-position: 70% 30% !important;
    }
    body.corp .hero-slide.hero-slide--simple:not(.hero-slide--fullbanner)::before {
        content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
        background: linear-gradient(90deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.85) 32%, rgba(255,255,255,0) 58%);
    }
    body.corp .hero-slide--simple .hero-content { position: relative; z-index: 4; }
    .hs-photo[data-zoom]::after { z-index: 5; }
    .hs-photo[data-zoom]:hover { transform: none; }
}
@media (max-width: 768px) {
    .hero-slide--fullbanner .hero-banner-bg { display: none; }
    .hero-slide--fullbanner .hero-banner-frame { left: 0 !important; top: 0 !important; transform: none !important; width: 100% !important; height: 100% !important; aspect-ratio: auto !important; }
    .hero-slide--fullbanner .hero-banner-frame img { width: 100%; height: 100%; object-fit: cover; object-position: 30% 50%; }
    .hero-slide--fullbanner .hb-spot { display: none; }
    body.corp .hero-slide.hero-slide--simple:not(.hero-slide--fullbanner) .hs-photo { left: 0 !important; right: 0 !important; top: 0 !important; width: 100% !important; height: 420px !important; background-size: cover !important; }
}

/* 最初の画面はロボットの1枚（2026-10-04） */
body.corp .hero-nav { display: none; }
@media (min-width: 769px) { body.corp .hero { height: min(calc(100vw * 941 / 1672), 92vh) !important; } }

/* アニメでわかるラスク */
.anime-gallery { padding: 72px 0; background: linear-gradient(180deg, #f5f8ff, #ffffff); }
.ag-en { margin: 0; text-align: center; font-family: "Inter", sans-serif; font-size: 13px; font-weight: 800; letter-spacing: .3em; color: #f36f21; }
.ag-title { margin: 8px 0 0; text-align: center; font-size: clamp(26px, 3.4vw, 40px); font-weight: 900; color: #0b1638; }
.ag-lead { margin: 12px auto 0; max-width: 720px; text-align: center; font-size: 15px; line-height: 1.9; color: #5b6577; }
.ag-grid { list-style: none; margin: 32px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.ag-card { display: flex; flex-direction: column; width: 100%; padding: 0; border: 1px solid #e3e7ef; border-radius: 18px; overflow: hidden; background: #fff; text-align: left; cursor: zoom-in; box-shadow: 0 10px 30px rgba(20, 40, 90, .08); transition: transform .25s ease, box-shadow .25s ease; font: inherit; }
.ag-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(20, 40, 90, .14); }
.ag-thumb { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #0b1638; }
.ag-thumb img { width: 100%; height: 100%; object-fit: cover; object-position: center top; transition: transform .5s ease; }
.ag-card:hover .ag-thumb img { transform: scale(1.05); }
.ag-open { position: absolute; right: 10px; bottom: 10px; padding: 6px 12px; border-radius: 999px; background: rgba(11, 22, 56, .85); color: #fff; font-size: 12px; font-weight: 800; }
.ag-cap { display: flex; flex-direction: column; gap: 3px; padding: 14px 16px 16px; }
.ag-cap small { font-family: "Inter", sans-serif; font-size: 11px; font-weight: 800; letter-spacing: .2em; color: #1c49c9; }
.ag-cap b { font-size: 16px; color: #0b1638; }
.ag-cap em { font-style: normal; font-size: 13px; color: #5b6577; }
@media (max-width: 1024px) { .ag-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .ag-grid { grid-template-columns: 1fr; } }

/* ヘッダーとロボット画面の上段が重ならないように（2026-10-04） */
body.corp .hero { margin-top: 78px !important; }
.hsv-row--top { top: 14px !important; }
@media (max-width: 768px) { body.corp .hero { margin-top: 60px !important; } }
@media (min-width: 769px) and (max-width: 1200px) { body.corp .hero { height: 760px !important; } body.corp .hero-slide--team .hero-content { padding-top: 40px; } }

/* 13拠点をゴールドで表記（2026-10-04） */
.ho-dot { fill: #f2c14e; stroke: #fff6d6; stroke-width: 1.5; }
.ho-lead { stroke: #d4af37; stroke-width: 1.5; fill: none; stroke-dasharray: 3 3; }
.ho-label, .ho-head, .ho-title, .ho-sub { font-family: "Inter", "Segoe UI", sans-serif; fill: #b8860b; paint-order: stroke; stroke: rgba(255,255,255,.85); stroke-width: 3px; }
.ho-label { font-size: 15px; font-weight: 700; letter-spacing: .08em; }
.ho-hq { fill: #9c7416; font-weight: 900; }
.ho-head { font-size: 16px; font-weight: 900; letter-spacing: .14em; fill: #9c7416; }
.ho-title { font-size: 20px; font-weight: 900; letter-spacing: .2em; fill: #9c7416; }
.ho-sub { font-size: 12px; font-weight: 700; letter-spacing: .12em; }

/* ---------- 画像を切らずに全体を表示（2026-10-04） ---------- */
.pr-item.has-img img,
body.corp .product-thumb img,
.ag-thumb img,
.nl-shots img,
.news-card .news-thumb img {
    height: auto !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
}
.pr-item.has-img img { aspect-ratio: auto !important; }
body.corp .product-thumb, .product-thumb { aspect-ratio: auto !important; background: #0b1638; }
.ag-thumb { aspect-ratio: auto !important; }
.nl-shots li { aspect-ratio: auto !important; background: #0b1638; display: flex; align-items: center; }
.nl-shots img { width: 100%; }
.hsv-item img { object-fit: contain !important; background: #0b1638; }
/* 写真が縦に伸びすぎないよう、グリッドは上揃え */
.pr-list, .products-grid--8, .ag-grid, .nl-shots { align-items: start; }

/* 拠点・所在地（2026-10-04） */
.offices { margin: 48px 0 32px; }
.of-en { margin: 0; text-align: center; font-family: "Inter", sans-serif; font-size: 12px; font-weight: 800; letter-spacing: .28em; color: #9c7416; }
.of-title { margin: 6px 0 24px; text-align: center; font-size: clamp(22px, 2.8vw, 30px); font-weight: 900; color: #0b1638; }
.of-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 28px; align-items: start; }
.of-map { position: sticky; top: 100px; margin: 0; padding: 14px; border-radius: 20px; background: #eef3fb; border: 1px solid #e3e7ef; }
.of-map svg { display: block; width: 100%; height: auto; }
.om-dot { fill: #d4af37; stroke: #fff; stroke-width: 3; }
.om-dot.hq { fill: #b8860b; }
.om-lb { font-family: "Inter", sans-serif; font-size: 26px; font-weight: 900; letter-spacing: .1em; fill: #9c7416; paint-order: stroke; stroke: #fff; stroke-width: 6px; }
.of-map figcaption { margin-top: 10px; font-size: 12px; color: #5b6577; text-align: center; }
.of-h { margin: 0 0 10px; font-family: "Inter", sans-serif; font-size: 13px; font-weight: 900; letter-spacing: .14em; color: #1c49c9; }
.of-h:not(:first-child) { margin-top: 22px; }
.of-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid #e3e7ef; }
.of-list li { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 12px; padding: 11px 4px; border-bottom: 1px solid #e3e7ef; font-size: 13.5px; line-height: 1.7; }
.of-list li.hq { background: #fffaf0; }
.of-list b { color: #0b1638; font-weight: 800; }
.of-list b small { display: block; font-family: "Inter", sans-serif; font-size: 10.5px; letter-spacing: .14em; color: #9c7416; }
.of-list span { color: #3a4456; }
@media (max-width: 900px) {
    .of-grid { grid-template-columns: 1fr; }
    .of-map { position: static; }
    .of-list li { grid-template-columns: 1fr; gap: 2px; }
}
.ho-label { font-size: 14px; } .ho-head { font-size: 15px; }
/* サービス名を省略せず全部表示（2026-10-04） */
.hsv-item b, .hsv-item small { white-space: normal !important; overflow: visible !important; text-overflow: clip !important; line-height: 1.25; }
@media (max-width: 768px) { .hsv-item b { font-size: 10.5px; } .hsv-item { min-height: 30px; align-items: center; } }
.vb-2040 { color: #9c7416; font-weight: 900; }

/* グループ会社のビジュアル（2026-10-04） */
.group-card .group-visual { display: block; width: calc(100% + 2px); max-width: none; margin: -1px -1px 18px; aspect-ratio: 10 / 3; object-fit: cover; object-position: left center; border-radius: 14px; background: #050a1c; box-shadow: 0 10px 24px rgba(11, 22, 56, .18); }
.group-card .group-icon { width: 28px; height: 28px; margin-right: 8px; border-radius: 7px; vertical-align: -8px; }
.group-card .group-copy { margin: 4px 0 10px; font-size: 15px; font-weight: 800; line-height: 1.7; background: linear-gradient(90deg, #7a3fe0, #c04ad8 50%, #2f7bff); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* RSKAGEHA 幼虫から蝶へ（2026-10-04） */
.ac-story { margin: 0 0 48px; }
.ac-face { display: block; width: 100%; height: auto; border-radius: 22px; box-shadow: 0 18px 40px rgba(60, 40, 140, .18); }
.ac-story-title { margin: 28px 0 22px; text-align: center; font-size: clamp(18px, 2.4vw, 26px); font-weight: 900; color: #0b1638; line-height: 1.6; }
.ac-story-title span { display: block; font-size: clamp(26px, 3.6vw, 40px); background: linear-gradient(90deg, #ff3fb4, #a64dff 45%, #2f9bff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.ac-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; counter-reset: st; }
.ac-steps li { position: relative; list-style: none; }
.ac-steps li::before { content: none !important; }
.ac-steps li:not(:last-child)::after { content: "›"; position: absolute; right: -16px; top: 38%; font-size: 34px; font-weight: 900; color: #a64dff; z-index: 2; }
.ac-steps figure { position: relative; margin: 0; border-radius: 18px; overflow: hidden; background: #050a1c; box-shadow: 0 10px 26px rgba(40, 20, 110, .25); }
.ac-steps img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.ac-steps figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 10px 14px; text-align: center; background: linear-gradient(180deg, transparent, rgba(5, 8, 28, .85)); }
.ac-steps figcaption b { display: block; font-size: clamp(26px, 3.2vw, 40px); font-weight: 900; letter-spacing: .08em; line-height: 1.2; background: linear-gradient(90deg, #ff5ec8, #c77dff 45%, #4fd8ff); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 0 10px rgba(200, 120, 255, .85)) drop-shadow(0 0 2px rgba(255, 255, 255, .6)); }
.ac-steps figcaption small { display: block; margin-top: 4px; font-family: "Inter", sans-serif; font-size: 11px; font-weight: 800; letter-spacing: .24em; color: #fff; text-shadow: 0 0 8px rgba(120, 180, 255, .9); }
.ac-steps p { margin: 12px 4px 0; text-align: center; font-size: 13.5px; font-weight: 700; line-height: 1.7; color: #26324a; }
@media (max-width: 900px) {
    .ac-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ac-steps li:nth-child(2)::after { display: none; }
}

/* ===== 2026-10-04 v18 ===== */
/* ヒーローの日本語サブコピーを読みやすく */
.hero-slide--team .hero-subtitle { display: inline-block; padding: 12px 18px; border-radius: 14px; background: rgba(255, 255, 255, .88); color: #0b1638 !important; font-weight: 700; text-shadow: none; box-shadow: 0 8px 22px rgba(11, 22, 56, .14); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
/* 製品一覧：画像の枠と、カードの高さをそろえる */
body.corp .products-grid--8 { align-items: stretch !important; }
body.corp .products-grid--8 .product-card { display: flex; flex-direction: column; height: 100%; }
body.corp .products-grid--8 .product-thumb { aspect-ratio: 3 / 2 !important; display: flex; align-items: center; justify-content: center; }
body.corp .products-grid--8 .product-thumb img { width: 100% !important; height: 100% !important; object-fit: contain !important; }
body.corp .products-grid--8 .product-cta { margin-top: auto; padding-top: 8px; }
/* 開発・育成プログラム（製品ではないものを目立たせる） */
.program-band { margin: 0 0 40px; padding: 26px; border-radius: 24px; background: linear-gradient(135deg, #0b1638, #1c2f7a 55%, #3b1f7a); box-shadow: 0 18px 40px rgba(11, 22, 56, .22); }
.program-en { margin: 0; text-align: center; font-family: "Inter", sans-serif; font-size: 12px; font-weight: 800; letter-spacing: .28em; color: #f6c75a; }
.program-title { margin: 6px 0 20px; text-align: center; font-size: clamp(20px, 2.6vw, 28px); font-weight: 900; color: #fff; }
.program-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.program-card { display: flex; flex-direction: column; border-radius: 18px; overflow: hidden; background: #fff; border: 2px solid #f6c75a; text-decoration: none; transition: transform .25s ease, box-shadow .25s ease; }
.program-card:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(0, 0, 0, .3); }
.program-card img { display: block; width: 100%; height: auto; }
.program-body { padding: 16px 20px 20px; display: flex; flex-direction: column; flex: 1; }
.program-badge { align-self: flex-start; padding: 4px 12px; border-radius: 999px; background: linear-gradient(90deg, #f36f21, #f6c75a); color: #fff; font-family: "Inter", sans-serif; font-size: 11px; font-weight: 800; letter-spacing: .1em; }
.program-card h4 { margin: 10px 0 2px; font-size: 22px; font-weight: 900; color: #0b1638; }
.program-tag { margin: 0 0 6px; font-size: 13px; font-weight: 800; color: #f36f21; }
.program-body p:not(.program-tag) { margin: 0 0 10px; font-size: 13.5px; line-height: 1.8; color: #3a4456; }
.program-cta { margin-top: auto; font-size: 13px; font-weight: 800; color: #f36f21; }
@media (max-width: 760px) { .program-grid { grid-template-columns: 1fr; } .program-band { padding: 18px 14px; } }
/* 事業内容：AIエンジニア育成 */
body.corp .business-card--academy { border: 2px solid #a64dff; background: linear-gradient(180deg, #f7f0ff, #ffffff 60%); }
/* グループのブランドロゴ */
.brand-strip { margin-top: 36px; text-align: center; }
.brand-en { margin: 0 0 14px; font-family: "Inter", sans-serif; font-size: 12px; font-weight: 800; letter-spacing: .28em; color: #9c7416; }
.brand-strip ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.brand-strip li { border-radius: 16px; overflow: hidden; background: #04060e; box-shadow: 0 10px 24px rgba(11, 22, 56, .18); }
.brand-strip img { display: block; width: 100%; height: auto; }
@media (max-width: 600px) { .brand-strip ul { gap: 8px; } .brand-strip li { border-radius: 10px; } }

.program-tag--big { font-size: 17px !important; }
.program-stat { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; margin: 4px 0 2px; padding: 10px 14px; border-radius: 12px; background: #fff6ef; border: 1px solid #ffd9bf; }
.program-stat span { width: 100%; font-size: 11.5px; font-weight: 800; color: #5b6577; }
.program-stat b { font-family: "Inter", sans-serif; font-size: 22px; font-weight: 900; color: #8a94a6; }
.program-stat b.up { font-size: 32px; color: #f36f21; }
.program-stat b small { font-size: 13px; margin-left: 2px; }
.program-stat i { color: #f36f21; }
.program-body p.program-note { margin: 0 0 8px; font-size: 11px; color: #8a94a6; }
body.corp .products-grid--8 { grid-auto-rows: 1fr; }

.program-chips { list-style: none; margin: 4px 0 10px; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.program-chips li { padding: 10px 12px; border-radius: 12px; background: #fff6ef; border: 1px solid #ffd9bf; font-size: 13px; font-weight: 800; color: #0b1638; }
.program-chips i { margin-right: 6px; color: #f36f21; }

/* 製品一覧：Rapid / EVOLVE（プログラム）は同じ大きさで色を変えて目立たせる（2026-10-04） */
body.corp .products-grid--8 .product-card.product-program { background: linear-gradient(160deg, #1a1040 0%, #3b1f7a 55%, #f36f21 140%) !important; border: 2px solid #f6c75a !important; box-shadow: 0 14px 34px rgba(243, 111, 33, .28); }
body.corp .product-program .product-thumb { background: #0b1638; }
body.corp .product-program .product-no { color: #f6c75a !important; }
body.corp .product-program .product-new { background: linear-gradient(90deg, #f36f21, #f6c75a) !important; color: #fff !important; }
body.corp .product-program .product-name { color: #fff !important; }
body.corp .product-program .product-tagline { color: #ffd27a !important; font-weight: 900; }
body.corp .product-program .product-desc { color: rgba(255, 255, 255, .86) !important; }
body.corp .product-program .product-desc small { display: block; margin-top: 4px; font-size: 10.5px; color: rgba(255, 255, 255, .6); }
body.corp .product-program .product-cta { color: #f6c75a !important; }
.product-stat { margin: 0 0 6px; font-size: 12px; font-weight: 800; color: #fff; }
.product-stat s { opacity: .6; }
.product-stat b { font-family: "Inter", sans-serif; font-size: 20px; font-weight: 900; color: #ffb36b; }
body.corp .product-program .product-no { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
body.corp .product-program .product-new { white-space: nowrap; letter-spacing: .02em; }

/* 地図：東京・仙台の金色地点（2026-10-04） */
.ho-key-dot { fill: #ffd76a; stroke: #fff6d6; stroke-width: 2.5; }
.ho-key-ring { fill: none; stroke: #f2c14e; stroke-width: 3; transform-box: fill-box; transform-origin: center; animation: hoKey 2.4s ease-out infinite; }
@keyframes hoKey { 0% { transform: scale(1); opacity: .9; } 100% { transform: scale(3.2); opacity: 0; } }

/* ===== グループブランドのスライド（2026-10-04） ===== */
.hero-slide--brand { background: #02040c; overflow: hidden; justify-content: flex-start; padding: 0 !important; }
.hero-slide--brand .hb2-bg { position: absolute; inset: -60px; background-size: cover; background-position: center; filter: blur(46px) saturate(1.4) brightness(.5); transform: scale(1.1); }
.hero-slide--brand::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(2, 4, 12, .92) 0%, rgba(2, 4, 12, .6) 42%, rgba(2, 4, 12, 0) 70%); pointer-events: none; }
.hb2-visual { position: absolute; right: 5%; top: 50%; z-index: 1; height: 88%; aspect-ratio: 1; transform: translateY(-50%); border-radius: 28px; overflow: hidden;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .65), 0 0 90px color-mix(in srgb, var(--bc) 55%, transparent); border: 1px solid color-mix(in srgb, var(--bc) 60%, transparent); }
.hb2-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hb2-b { opacity: 1; }
.hero-slide--brand.active .hb2-b { animation: hb2Morph 1.4s ease 1.8s forwards; }
.hero-slide--brand.active .hb2-a { animation: hb2Zoom 9s ease-out forwards; }
@keyframes hb2Morph { 0% { opacity: 1; filter: brightness(1); } 40% { filter: brightness(1.8); } 100% { opacity: 0; filter: brightness(2.2); } }
@keyframes hb2Zoom { from { transform: scale(1); } to { transform: scale(1.07); } }
.hb2-copy { position: relative; z-index: 2; margin-left: 6%; max-width: min(560px, 44%); color: #fff; }
.hb2-eb { margin: 0 0 14px; font-family: "Inter", sans-serif; font-size: 13px; font-weight: 800; letter-spacing: .2em; color: var(--bc); text-shadow: 0 0 14px color-mix(in srgb, var(--bc) 70%, transparent); }
.hb2-title { margin: 0 0 18px; font-size: clamp(30px, 3.6vw, 54px); font-weight: 900; line-height: 1.3; color: #fff; text-shadow: 0 4px 24px rgba(0, 0, 0, .6); }
.hb2-desc { margin: 0 0 26px; font-size: clamp(14px, 1.2vw, 17px); line-height: 1.9; color: rgba(255, 255, 255, .86); }
.hero-slide--brand .btn-secondary { background: rgba(255, 255, 255, .08) !important; color: #fff !important; border: 1px solid rgba(255, 255, 255, .5) !important; }
.hero-slide--brand.active .hb2-copy > * { animation: hb2Up .8s ease both; }
.hero-slide--brand.active .hb2-copy > *:nth-child(2) { animation-delay: .12s; }
.hero-slide--brand.active .hb2-copy > *:nth-child(3) { animation-delay: .24s; }
.hero-slide--brand.active .hb2-copy > *:nth-child(4) { animation-delay: .36s; }
@keyframes hb2Up { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
/* ブランドのスライドの間は、ロボット・地図・サービスの帯を隠す */
.hero-scene, .hero-services { transition: opacity .8s ease; }
.hero:has(.hero-slide--brand.active) .hero-scene,
.hero:has(.hero-slide--brand.active) .hero-services { opacity: 0; pointer-events: none; }
/* スライドの切り替えボタン */
body.corp .hero-nav { display: flex !important; position: absolute; left: 50%; bottom: 10px; transform: translateX(-50%); z-index: 6; gap: 10px; align-items: center; }
body.corp .hero-nav .hero-nav-btn { display: none; }
.hero-indicator { width: 34px !important; height: 5px !important; border-radius: 3px !important; border: 0 !important; background: rgba(140, 150, 170, .55) !important; }
.hero-indicator.active { background: #f36f21 !important; }
.hero:has(.hero-slide--team.active) .hero-nav { bottom: 4px; }
@media (max-width: 768px) {
    .hero-slide--brand { align-items: flex-end; }
    .hb2-visual { right: 50%; top: 14px; height: auto; width: min(86%, 420px); transform: translateX(50%); }
    .hero-slide--brand::after { background: linear-gradient(180deg, rgba(2, 4, 12, 0) 35%, rgba(2, 4, 12, .9) 62%); }
    .hb2-copy { max-width: none; margin: 0 16px 56px; }
    .hb2-title { font-size: 26px; }
    .hb2-desc br, .hb2-title br { display: none; }
}
.hb2-title { font-size: clamp(28px, 3vw, 46px); }
@media (min-width: 769px) { .hb2-copy { max-width: min(640px, 48%); } }

/* ===== ブランドのスライドを全画面に（2026-10-05） ===== */
.hero-slide--brand { container-type: size; }
.hero-slide--brand .hb2-bg { left: 0; top: 0; bottom: 0; right: calc(100cqh * .92); inset-block: 0; filter: none; transform: none; background-size: 100% 100%; background-position: right center; }
.hero-slide--b-rsk .hb2-bg { background-image: url("../images/hero/brand-rsk-ext.jpg") !important; }
.hero-slide--b-goat .hb2-bg { background-image: url("../images/hero/brand-goat-ext2.jpg") !important; }
.hero-slide--b-ageha .hb2-bg { background-image: url("../images/hero/brand-ageha-ext.jpg") !important; }
.hero-slide--brand .hb2-visual { right: 0; top: 0; height: 100%; width: auto; aspect-ratio: 1; transform: none; border-radius: 0; border: 0; box-shadow: none;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 12%); mask-image: linear-gradient(90deg, transparent 0, #000 12%); }
.hero-slide--brand::after { background: linear-gradient(90deg, rgba(2, 4, 12, .75) 0%, rgba(2, 4, 12, .35) 38%, rgba(2, 4, 12, 0) 55%); }
.hero-slide--brand .hb2-title, .hero-slide--brand .hb2-desc { text-shadow: 0 2px 18px rgba(0, 0, 0, .85); }
/* ラスク・GOATは最初から迫力のあるアート（ロゴ版からの変身はAGEHAのみ） */
.hero-slide--b-rsk .hb2-b, .hero-slide--b-goat .hb2-b { display: none; }
@media (max-width: 768px) {
    .hero-slide--brand .hb2-bg { display: none; }
    .hero-slide--brand .hb2-visual { left: 0; right: 0; top: 0; width: 100%; height: auto; -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent); mask-image: linear-gradient(180deg, #000 70%, transparent); }
}
/* スマホ：ブランドのスライドの文字が画像に重ならないように（2026-10-05） */
@media (max-width: 768px) {
    .hero-slide--brand .hb2-visual { height: 46%; width: 100%; aspect-ratio: auto; }
    .hero-slide--brand .hb2-visual img { object-position: center 40%; }
    .hb2-copy { margin: 0 16px 44px; }
    .hb2-eb { margin-bottom: 8px; font-size: 11px; letter-spacing: .12em; }
    .hb2-title { margin-bottom: 10px; font-size: 23px !important; }
    .hb2-desc { margin-bottom: 14px; font-size: 13px; line-height: 1.7; }
    .hero-slide--brand .hero-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
    .hero-slide--brand .hero-buttons .btn { width: 100%; padding: 10px 8px; justify-content: center; }
    .rg-emblem--hero { margin: 0 0 14px; padding: 8px 10px; gap: 10px; }
    .rg-emblem--hero .rg-svg { width: 44px !important; }
    .rg-emblem--hero .rg-cap { font-size: 12px; }
    .hero-slide--b-ageha .hb2-desc { display: none; }
}

/* 地図：ハノイ・マニラを見やすく、拠点拡大予定（2026-10-05） */
.ho-lead { fill: none; stroke: #c8941e; stroke-width: 2; stroke-dasharray: 5 5; opacity: .9; }
.ho-dot--ov { fill: #ffd76a; stroke: #fff6d6; stroke-width: 2.5; }
.ho-label--ov { font-size: 19px !important; font-weight: 900; letter-spacing: .12em; fill: #8a5a00; stroke: #fff; stroke-width: 6px; }
.ho-more { font-family: "Inter", "Noto Sans JP", sans-serif; font-size: 15px; font-weight: 800; letter-spacing: .06em; fill: #b8860b; paint-order: stroke; stroke: rgba(255, 255, 255, .9); stroke-width: 4px; }
.of-more { display: inline-block; margin-top: 6px; color: #9c7416; font-weight: 800; }

/* 拠点拡大予定の文字は右の列の下へ（ロボットに重ならない） */
/* 代表の署名は黒（2026-10-05） */
body.corp .ceo-name-large { background: none !important; -webkit-background-clip: border-box !important; background-clip: border-box !important; -webkit-text-fill-color: #000 !important; color: #000 !important; animation: none !important; filter: none !important; text-shadow: none !important; }

/* 拠点のある国はゴールド、光が降り注ぐ（2026-10-05） */
body.corp .hs-map { background-image: url("../images/world-map-gold.png") !important; filter: none !important; mix-blend-mode: normal !important; opacity: .95 !important; }
.gold-beams .gb { animation: goldBeam 4.8s ease-in-out infinite; animation-delay: var(--d); transform-box: fill-box; transform-origin: 50% 100%; }
@keyframes goldBeam { 0%, 100% { opacity: .35; transform: scaleY(.85); } 50% { opacity: 1; transform: scaleY(1.05); } }
@media (prefers-reduced-motion: reduce) { .gold-beams .gb { animation: none; opacity: .8; } }
.of-map { background: linear-gradient(180deg, #fffdf6, #f3f6fb) !important; }

/* 拠点の国は輝く青（ロゴと同じ青）、光と地点はゴールドのまま（2026-10-05） */
body.corp .hs-map { background-image: url("../images/world-map-blue2.png") !important; }
/* Rapid 廃止でヒーロー上段は6つ */
.hsv-row--top { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
@media (max-width: 1100px) { .hsv-row--top { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; } }
@media (max-width: 768px) { .hsv-row--top { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }

/* 製品一覧：AIメーカーとして分野別に（2026-10-05） */
.pc-maker { margin: 6px 0 4px; font-size: clamp(20px, 2.4vw, 28px); font-weight: 900; letter-spacing: .04em; color: #0b1638; }
.pc-stats { list-style: none; margin: 22px auto 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; max-width: 860px; }
.pc-stats li { padding: 14px 10px; border-radius: 16px; background: #fff; border: 1px solid #e3e7ef; box-shadow: 0 10px 24px -16px rgba(11, 22, 56, .3); }
.pc-stats b { display: block; font-family: "Inter", sans-serif; font-size: clamp(26px, 3vw, 36px); font-weight: 900; line-height: 1.1; background: linear-gradient(90deg, #1c49c9, #3d8bff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pc-stats b small { font-size: .5em; }
.pc-stats span { font-size: 12px; font-weight: 700; color: #5b6577; }
.pc-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 8px 0 28px; }
.pc-tab { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 18px; border-radius: 14px; border: 1px solid #d5dbe6; background: #fff; color: #0b1638; cursor: pointer; transition: all .25s ease; }
.pc-tab b { font-family: "Inter", sans-serif; font-size: 12px; font-weight: 900; letter-spacing: .14em; }
.pc-tab small { font-size: 11.5px; font-weight: 700; color: #5b6577; }
.pc-tab:hover { border-color: #c9961a; color: #9c7416; }
.pc-tab.is-on { background: #0b1638; border-color: #0b1638; color: #fff; box-shadow: 0 10px 24px -12px rgba(11, 22, 56, .6); }
.pc-tab.is-on small { color: #f6c75a; }
.product-cat { align-self: flex-start; display: inline-block; margin: 2px 0 4px; padding: 3px 10px; border-radius: 999px; font-size: 11px; font-weight: 800; color: #fff; }
.product-cat--mgmt { background: #1c49c9; }
.product-cat--hr { background: #0f9d76; }
.product-cat--dx { background: #7a3fe0; }
.product-cat--biz { background: #d97a12; }
@media (max-width: 760px) { .pc-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pc-tab { padding: 8px 12px; } }

/* RSK METAMORPH（2026-10-05） */
.ag-grid { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)) !important; }
.mm-block { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 32px; align-items: center; margin: 0 0 56px; padding: 26px; border-radius: 28px; background: linear-gradient(135deg, #12081f, #2a0f3d 60%, #3b1050); color: #fff; box-shadow: 0 30px 70px -30px rgba(60, 10, 80, .6); }
.mm-visual { position: relative; display: block; padding: 0; border: 0; border-radius: 18px; overflow: hidden; cursor: zoom-in; background: #000; }
.mm-visual img { display: block; width: 100%; height: auto; }
.mm-visual .ag-open { position: absolute; right: 10px; bottom: 10px; }
.mm-en { margin: 0 0 8px; font-family: "Inter", sans-serif; font-size: 13px; font-weight: 900; letter-spacing: .18em; background: linear-gradient(90deg, #ff5ec8, #c77dff, #4fd8ff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.mm-en small { color: #d9c8ff; -webkit-text-fill-color: #d9c8ff; letter-spacing: .1em; }
.mm-title { margin: 0 0 14px; font-size: clamp(24px, 2.8vw, 34px); font-weight: 900; line-height: 1.4; color: #fff; }
.mm-title span { background: linear-gradient(90deg, #ff5ec8, #ffd27a); -webkit-background-clip: text; background-clip: text; color: transparent; }
.mm-lead { margin: 0 0 14px; font-size: 14.5px; line-height: 1.9; color: rgba(255, 255, 255, .86); }
.mm-points { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 8px; }
.mm-points li { font-size: 14px; font-weight: 700; color: #fff; }
.mm-points i { width: 22px; color: #ff7ad9; }
.mm-cta { background: linear-gradient(90deg, #ff3fb4, #a64dff) !important; border: 0 !important; }
.mm-note { margin: 12px 0 0; font-size: 11.5px; color: rgba(255, 255, 255, .6); }
@media (max-width: 900px) { .mm-block { grid-template-columns: 1fr; padding: 16px; } }

/* 製品一覧：お悩みから探す（2026-10-05） */
.pc-all { display: block; margin: 0 auto 18px; padding: 10px 20px; border-radius: 999px; border: 1px solid #c9961a; background: #fffaf0; color: #7a5a10; font-size: 13.5px; font-weight: 800; cursor: zoom-in; }
.pc-ask { margin: 0 0 12px; text-align: center; font-size: clamp(17px, 2vw, 21px); font-weight: 900; color: #0b1638; }
.pc-tab b { font-family: "Noto Sans JP", sans-serif; letter-spacing: .02em; font-size: 14px; }
.pc-types { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin: -10px 0 26px; }
.pc-type { padding: 6px 14px; border-radius: 999px; border: 1px solid #d5dbe6; background: #fff; color: #3a4456; font-size: 12.5px; font-weight: 800; cursor: pointer; }
.pc-type.is-on { background: #c9961a; border-color: #c9961a; color: #fff; }
.product-cat--grow { background: #d97a12; }
.product-cat--talent { background: #0f9d76; }
.product-cat--office { background: #1c49c9; }
.product-cat--dx { background: #7a3fe0; }
button.product-thumb { position: relative; width: 100%; padding: 0; border: 0; cursor: zoom-in; }
.pt-zoom { position: absolute; right: 8px; bottom: 8px; padding: 5px 10px; border-radius: 999px; background: rgba(11, 22, 56, .85); color: #fff; font-size: 11.5px; font-weight: 800; }
button.product-cta { padding: 0; border: 0; background: none; text-align: left; cursor: zoom-in; font-weight: 800; }

/* 代表：学歴・X・note（2026-10-05） */
.ceo-edu { margin: 6px 0 14px; font-size: 14px; font-weight: 700; color: #0b1638; }
.ceo-edu span { display: inline-block; margin-right: 8px; padding: 2px 10px; border-radius: 999px; background: #0b1638; color: #fff; font-size: 11.5px; }
.ceo-sns { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.ceo-sns a { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 12px; border-radius: 14px; background: #fff; border: 1px solid #e3e7ef; color: #0b1638; font-size: 12.5px; font-weight: 800; text-decoration: none; transition: transform .2s, box-shadow .2s; }
.ceo-sns a:hover { transform: translateY(-3px); box-shadow: 0 12px 24px -12px rgba(11, 22, 56, .4); }
.ceo-sns img { width: 110px; height: 110px; display: block; }
.ceo-signature { flex-wrap: wrap; }
.ceo-signature .ceo-edu, .ceo-signature .ceo-sns { flex: 0 0 100%; width: 100%; }
.ceo-signature .ceo-edu { white-space: nowrap; }
.ceo-signature .ceo-sns { justify-content: flex-start; margin-top: 4px; }
.ceo-signature .ceo-edu, .ceo-signature .ceo-sns { grid-column: 1 / -1; }

/* ===== ブランドスライド v27（2026-10-05） ===== */
/* RSK：落ち着いたヘッダー画像を全面に、下に自社AI製品 */
.hero-slide--bn { background: #030712; }
.hero-slide--bn::after { display: none; }
.bn-img { position: absolute; left: 0; right: 0; top: 0; height: 64%; background-size: cover; background-position: center; }
.hero-slide--bn.active .bn-img { animation: bnCalm 14s ease-out forwards; }
@keyframes bnCalm { from { transform: scale(1.04); opacity: .6; } 15% { opacity: 1; } to { transform: scale(1); opacity: 1; } }
.bn-img::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 40%; background: linear-gradient(180deg, transparent, #030712); }
.bn-strip { position: absolute; left: 0; right: 0; bottom: 0; top: 60%; z-index: 2; display: flex; flex-direction: column; justify-content: center; gap: 12px; padding: 0 5% 34px; }
.bn-co { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; color: #fff; }
.bn-co b { font-size: 20px; font-weight: 900; }
.bn-co span { font-size: 14px; color: #9fc2ff; font-weight: 700; }
.bn-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.bn-chips a { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 6px; border-radius: 10px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .16); color: #fff; font-size: 12.5px; font-weight: 800; text-decoration: none; transition: background .2s, border-color .2s; }
.bn-chips a:hover { background: rgba(61, 139, 255, .25); border-color: #3d8bff; }
.bn-chips--prod a img { width: 46px; height: 30px; object-fit: cover; border-radius: 6px; }
.bn-chips--serv { margin: 0 0 18px; max-width: 640px; }
.bn-chips--serv a { padding: 5px 11px; font-size: 12px; }
.bn-btns .btn { padding: 10px 20px; }
.hero-slide--bn.active .bn-strip > * { animation: hb2Up .8s ease both; }
.hero-slide--bn.active .bn-strip > *:nth-child(2) { animation-delay: .15s; }
.hero-slide--bn.active .bn-strip > *:nth-child(3) { animation-delay: .3s; }
/* GOAT：最初はヘッダー画像（ヤギが大きく動く）→ アート＋サービス一覧へ切り替わる */
.gx-intro { position: absolute; inset: 0; z-index: 5; background-size: cover; background-position: 70% center; opacity: 0; pointer-events: none; }
.hero-slide--goatx.active .gx-intro { animation: goatIntro 3.6s cubic-bezier(.2, .8, .2, 1) forwards; }
@keyframes goatIntro {
    0% { opacity: 1; transform: scale(1.35) translateX(-6%); filter: brightness(1.3); }
    45% { opacity: 1; transform: scale(1.08) translateX(0); filter: brightness(1); }
    70% { opacity: 1; transform: scale(1.12); filter: brightness(1.8); }
    100% { opacity: 0; transform: scale(1.2); filter: brightness(2.4); }
}
.hero-slide--goatx.active .hb2-a { animation: goatArt 8s ease-out 2.4s both; }
@keyframes goatArt { from { transform: scale(1.18) translateY(3%); } to { transform: scale(1) translateY(0); } }
.hero-slide--goatx.active .hb2-copy > * { animation-delay: 2.6s !important; }
.hero-slide--goatx.active .hb2-copy > *:nth-child(n+2) { animation-delay: 2.8s !important; }
.hero-slide--goatx .hb2-title { font-size: clamp(26px, 2.8vw, 40px) !important; }
@media (max-width: 768px) {
    .bn-img { height: 42%; background-size: contain; background-repeat: no-repeat; background-position: center top; }
    .bn-strip { top: 36%; padding: 0 16px 52px; justify-content: flex-start; }
    .bn-chips--prod a img { display: none; }
    .bn-chips--serv { display: none; }
    .gx-intro { background-size: contain; background-repeat: no-repeat; background-position: center 20%; background-color: #030712; }
}
@media (prefers-reduced-motion: reduce) { .gx-intro { display: none; } }

.ceo-sns-lead { grid-column: 1 / -1; margin: 0 0 10px; font-size: 14px; line-height: 1.8; color: #3a4456; }
.ceo-sns-lead b { color: #0b1638; }

.ag-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
@media (max-width: 760px) { .ag-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
#anime .ag-thumb { aspect-ratio: 3 / 2 !important; display: block; overflow: hidden; background: #0b1638; }
#anime .ag-thumb img { width: 100% !important; height: 100% !important; object-fit: cover !important; object-position: center top; }
#anime .ag-grid { align-items: stretch !important; }

/* アニメ動画（2026-10-05） */
#anime .ag-grid > li { display: flex; flex-direction: column; }
#anime .ag-card { flex: 1; }
.ag-play { margin-top: 8px; padding: 9px 12px; border-radius: 12px; border: 0; background: linear-gradient(90deg, #1c49c9, #3d8bff); color: #fff; font-size: 13px; font-weight: 800; cursor: pointer; transition: transform .2s, box-shadow .2s; }
.ag-play:hover { transform: translateY(-2px); box-shadow: 0 10px 22px -10px rgba(28, 73, 201, .7); }
.ag-play i { margin-right: 6px; }
.vlb { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(2, 4, 12, .88); }
.vlb[hidden] { display: none; }
.vlb-in { position: relative; width: min(1100px, 100%); }
.vlb video { display: block; width: 100%; height: auto; border-radius: 14px; background: #000; box-shadow: 0 30px 80px rgba(0, 0, 0, .6); }
.vlb-x { position: absolute; right: -6px; top: -44px; width: 38px; height: 38px; border-radius: 50%; border: 0; background: #fff; color: #0b1638; font-size: 24px; line-height: 1; cursor: pointer; }

.ceo-sign--jp span { font-size: clamp(28px, 3.2vw, 44px) !important; letter-spacing: .02em !important; font-weight: 900 !important; }
.ceo-sign--jp small { font-size: clamp(16px, 1.6vw, 22px) !important; font-weight: 900 !important; color: #8a93a3; letter-spacing: .06em; }

/* 拠点国：ロゴと同じ青で輝く（2026-10-05） */
.hs-countries { position: absolute; inset: 0; z-index: 0; pointer-events: none; background: url("../images/world-countries-glow.png?v=3") center / cover no-repeat;
    -webkit-mask-image: radial-gradient(90% 90% at 55% 45%, #000 40%, transparent 85%); mask-image: radial-gradient(90% 90% at 55% 45%, #000 40%, transparent 85%);
    animation: countriesGlow 3.2s ease-in-out infinite; }
@keyframes countriesGlow { 0%, 100% { filter: brightness(1) drop-shadow(0 0 6px rgba(60, 150, 255, .6)); } 50% { filter: brightness(1.25) drop-shadow(0 0 16px rgba(90, 190, 255, .95)); } }
.hero:has(.hero-slide--brand.active) .hs-countries { opacity: 0; transition: opacity .8s ease; }
@media (prefers-reduced-motion: reduce) { .hs-countries { animation: none; } }
/* AGEHA：ハートは目より前（顔の前方）から出す */
.eye-fx--hearts { left: calc(var(--ex) + 4%); top: calc(var(--ey) + 1%); }
.eye-fx--hearts i { font-size: 18px; }
@keyframes heartFly { 0% { opacity: 0; transform: translate(-50%, -50%) scale(.3); } 20% { opacity: 1; } 100% { opacity: 0; transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1.3) rotate(var(--r)); } }
@media (max-width: 768px) { .dn-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .dn { padding: 12px 8px; } .dn-ring { width: 110px; height: 110px; } .dn-c b { font-size: 19px; } .dn figcaption b { font-size: 13px; } }
@media (max-width: 768px) { .hero-slide--team .hero-buttons .btn-secondary { display: none; } }

/* GOAT：サービスも絵付き（RSKと同じ見せ方）／画像を欠けさせない（2026-10-05） */
.bn-chips--img { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px !important; max-width: 660px; }
.bn-chips--img a { padding: 4px 8px 4px 4px !important; font-size: 11.5px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bn-chips--img a img { flex: 0 0 auto; width: 38px; height: 25px; object-fit: cover; border-radius: 5px; }
.hero-slide--goatx .hb2-copy { max-width: min(680px, 50%) !important; }
.hero-slide--goatx .hb2-title { margin-bottom: 10px !important; }
.hero-slide--goatx .hb2-desc { margin-bottom: 12px !important; }
/* RSK・GOATのヘッダー画像は欠けないように全体表示 */
.bn-img { background-size: contain !important; background-repeat: no-repeat !important; background-position: center top !important; background-color: #030712; }
.bn-img::after { height: 25%; }
.gx-intro { background-size: contain !important; background-repeat: no-repeat !important; background-position: center !important; background-color: #030712; }
@media (max-width: 768px) { .bn-chips--img { display: none !important; } .hero-slide--goatx .hb2-copy { max-width: none !important; } }
@media (min-width: 769px) {
    .hero-slide--goatx .hb2-visual { -webkit-mask-image: none !important; mask-image: none !important; }
    .hero-slide--goatx .hb2-copy { max-width: min(640px, calc(100% - 100cqh - 6%)) !important; }
    .hero-slide--goatx .bn-chips--img { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.bn-chips--ageha { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; margin-bottom: 16px !important; }
.bn-chips--ageha a:hover { background: rgba(255, 79, 195, .25) !important; border-color: #ff4fc3 !important; }
/* GOAT：サービスを絵の大きいカードで（TOPの製品帯のように）2026-10-05 */
@media (min-width: 769px) {
    .hero-slide--goatx .bn-chips--img { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 8px !important; max-width: none; }
    .hero-slide--goatx .bn-chips--img a { flex-direction: column; align-items: stretch; gap: 4px; padding: 4px !important; border-radius: 10px; white-space: normal; font-size: 10.5px !important; line-height: 1.25; text-align: center; min-height: 0; }
    .hero-slide--goatx .bn-chips--img a img { width: 100%; height: auto; aspect-ratio: 3 / 2; border-radius: 7px; box-shadow: 0 6px 14px rgba(0, 0, 0, .45); transition: transform .3s ease; }
    .hero-slide--goatx .bn-chips--img a:hover img { transform: scale(1.06); }
    .hero-slide--goatx .bn-chips--img a:hover { box-shadow: 0 0 18px rgba(61, 139, 255, .6); }
    .hero-slide--goatx .hb2-title { font-size: clamp(24px, 2.4vw, 34px) !important; }
    .hero-slide--goatx .hb2-copy { max-width: min(720px, calc(100% - 100cqh - 4%)) !important; }
    .hero-slide--goatx .hb2-eb { margin-bottom: 6px !important; }
}
.bn-chips--img a img { object-fit: contain !important; background: #0b1638; }

/* 拠点名：ランダムにふわっと出る（2026-10-05） */
.hs-gold .ho-label { opacity: 0; transition: opacity .6s ease, transform .6s ease; transform-box: fill-box; transform: translateY(6px); }
.hs-gold .ho-label.ho-in { opacity: 1; transform: none; }
.ho-num { font-weight: 900; }
.ho-stat { font-family: "Inter", "Noto Sans JP", sans-serif; font-size: 15px; font-weight: 800; letter-spacing: .06em; fill: #b8860b; paint-order: stroke; stroke: rgba(255, 255, 255, .9); stroke-width: 4px; }
@media (prefers-reduced-motion: reduce) { .hs-gold .ho-label { opacity: 1; transform: none; } }

.ho-stat { font-size: 17px; }
/* サービスのカード：見やすく（2026-10-05） */
.bn-chips a { background: rgba(8, 14, 36, .82) !important; border-color: rgba(255, 255, 255, .28) !important; text-shadow: 0 1px 3px rgba(0, 0, 0, .8); font-size: 12.5px !important; }
.bn-chips a::after { content: "›"; margin-left: auto; padding-left: 4px; color: #9fc2ff; font-weight: 900; }
@media (min-width: 769px) {
    .hero-slide--goatx .bn-chips--img a { font-size: 11.5px !important; font-weight: 800; }
    .hero-slide--goatx .bn-chips--img a::after { display: none; }
}

/* AGEHAのサービス：欠けず・重ならない（2026-10-05） */
.bn-chips--ageha a { white-space: normal !important; overflow: visible !important; align-items: center; min-width: 0; }
.bn-chips--ageha a span { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.bn-chips--ageha a small { font-size: 10.5px; font-weight: 700; color: #ffc2ec; }
.bn-chips--ageha a img { width: 46px !important; height: 31px !important; }
@media (min-width: 769px) { .hero-slide--b-ageha .hb2-copy { max-width: min(600px, calc(100% - 100cqh - 4%)) !important; } }

/* ===== RSK：切り替わる一瞬、神AIロボットがレインボーの光を放つ（2026-10-05） ===== */
.rsk-intro { position: absolute; inset: 0; z-index: 6; background: radial-gradient(ellipse at 50% 30%, #0b1a4a, #02040c 70%); opacity: 0; pointer-events: none; overflow: hidden; }
.rsk-intro-art { position: absolute; left: 50%; top: 0; height: 100%; aspect-ratio: 1; transform: translateX(-50%); }
.rsk-intro-art img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; -webkit-mask-image: radial-gradient(circle at 50% 45%, #000 55%, transparent 75%); mask-image: radial-gradient(circle at 50% 45%, #000 55%, transparent 75%); }
.rsk-rays { position: absolute; left: 54.7%; top: 17.6%; width: 260%; aspect-ratio: 1; transform: translate(-50%, -50%) scale(0); z-index: 0; border-radius: 50%; opacity: 0; mix-blend-mode: screen;
    background: repeating-conic-gradient(from 0deg, rgba(255, 77, 109, .55) 0 4deg, transparent 4deg 12deg, rgba(255, 224, 102, .55) 12deg 16deg, transparent 16deg 24deg, rgba(76, 217, 123, .5) 24deg 28deg, transparent 28deg 36deg, rgba(62, 199, 255, .55) 36deg 40deg, transparent 40deg 48deg, rgba(178, 107, 255, .55) 48deg 52deg, transparent 52deg 60deg);
    -webkit-mask-image: radial-gradient(circle, #000 0, rgba(0, 0, 0, .7) 25%, transparent 60%); mask-image: radial-gradient(circle, #000 0, rgba(0, 0, 0, .7) 25%, transparent 60%); }
.rsk-eye { z-index: 2; }
.rsk-eye i { min-width: 900px !important; height: 18px !important; }
.rsk-eye i:nth-child(2) { transform-origin: 0 50%; --rot: -14deg; }
.rsk-eye i:nth-child(3) { --rot: 26deg; height: 10px !important; }
@keyframes rskIntro { 0% { opacity: 1; } 78% { opacity: 1; } 100% { opacity: 0; } }
@keyframes rskArt { 0% { transform: scale(1.25) translateY(6%); filter: brightness(.6); } 40% { transform: scale(1.05) translateY(0); filter: brightness(1.1); } 70% { transform: scale(1.08); filter: brightness(1.6) saturate(1.3); } 100% { transform: scale(1.12); filter: brightness(2.2); } }
@keyframes rskRays { 0% { opacity: 0; transform: translate(-50%, -50%) scale(.2) rotate(0); } 35% { opacity: 1; } 100% { opacity: .9; transform: translate(-50%, -50%) scale(1.2) rotate(40deg); } }
@keyframes eyeBeamR { 0% { opacity: 0; transform: translateY(-50%) rotate(var(--rot, 6deg)) scaleX(0); } 30% { opacity: 1; } 100% { opacity: 1; transform: translateY(-50%) rotate(var(--rot, 6deg)) scaleX(1); } }
.hero-slide--b-rsk.active .rsk-intro { animation: rskIntro 3.6s ease forwards; }
.hero-slide--b-rsk.active .rsk-intro-art img { animation: rskArt 3.6s cubic-bezier(.2, .8, .2, 1) forwards; }
.hero-slide--b-rsk.active .rsk-rays { animation: rskRays 2.6s ease-out 1s both; }
.hero-slide--b-rsk.active .rsk-eye::before { animation: eyeFlare 1s ease-out .9s both; }
.hero-slide--b-rsk.active .rsk-eye i { animation: eyeBeamR 1.4s ease-out 1.1s both; }
.hero-slide--b-rsk.active .rsk-eye i:nth-child(2) { animation-delay: 1.3s; }
.hero-slide--b-rsk.active .rsk-eye i:nth-child(3) { animation-delay: 1.5s; }
.hero-slide--b-rsk.active .bn-img { animation: bnCalm 14s ease-out 3.2s both; }
.hero-slide--b-rsk.active .bn-strip > * { animation-delay: 3.4s !important; }
@media (max-width: 768px) { .rsk-intro-art { height: auto; width: 100%; top: 10%; } .rsk-eye i { min-width: 420px !important; } }
@media (prefers-reduced-motion: reduce) { .rsk-intro { display: none; } }

.pc-more { display: inline-block; margin-top: 8px; font-size: 13px; font-weight: 800; color: #f6c75a !important; }

.ho-cap { font-weight: 900; fill: #9a6a00; }
.ho-stat--sub { font-size: 14px; }

/* RSK：製品もGOATと同じ大きな絵のカードに（2026-10-05） */
@media (min-width: 769px) {
    .bn-chips--prod { display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px !important; max-width: 1000px; }
    .bn-chips--prod a { flex-direction: column; align-items: stretch; gap: 6px; padding: 5px !important; border-radius: 12px; font-size: 12.5px !important; text-align: center; }
    .bn-chips--prod a::after { display: none; }
    .bn-chips--prod a img { width: 100% !important; height: auto !important; aspect-ratio: 3 / 2; object-fit: contain !important; background: #0b1638; border-radius: 8px; box-shadow: 0 6px 14px rgba(0, 0, 0, .45); transition: transform .3s ease; }
    .bn-chips--prod a:hover img { transform: scale(1.06); }
    .bn-chips--prod a:hover { box-shadow: 0 0 18px rgba(61, 139, 255, .6); }
    .bn-strip { top: 55%; gap: 10px; }
    .bn-img { height: 58%; }
}

.rsk-eye2 { z-index: 2; width: 12% !important; }
.hero-slide--b-rsk.active .rsk-eye2 { animation: eyeIgnite 1.2s cubic-bezier(.2, .8, .2, 1) 1s both, eyeFlicker 1.4s ease-in-out 2.2s infinite; }
@keyframes rskArt { 0% { transform: scale(1.2) translateY(5%); filter: brightness(.6); } 40% { transform: scale(1.05) translateY(0); filter: brightness(1.05); } 75% { transform: scale(1.07); filter: brightness(1.35) saturate(1.2); } 100% { transform: scale(1.1); filter: brightness(1.9); } }

.no-sales { margin: 14px auto 0; max-width: 720px; padding: 10px 16px; border-radius: 12px; background: #fff4f2; border: 1px solid #f3c4bb; color: #8a2b1a; font-size: 13px; font-weight: 700; line-height: 1.7; }
.no-sales i { margin-right: 6px; }

/* バックオフィス0人（2026-10-05） */
.nb-kpis .nb-bo { background: linear-gradient(135deg, #0b1638, #1c49c9) !important; color: #fff; }
.nb-kpis .nb-bo .nb-k, .nb-kpis .nb-bo b, .nb-kpis .nb-bo em { color: #fff !important; -webkit-text-fill-color: #fff; }
.nb-kpis .nb-bo em { opacity: .85; font-size: 12px; }
.nl-bo { margin: 0 0 12px; padding: 10px 14px; border-radius: 12px; background: #0b1638; color: #fff; font-size: 14px; font-weight: 700; }
.nl-bo b { color: #f6c75a; } .nl-bo i { color: #f6c75a; margin-right: 6px; }
.nb-kpis .nb-bo { grid-column: 1 / -1; }

/* グローバルネットワーク：創業時→現在（2026-10-05） */
.gb-since { margin: 0 0 14px; font-size: 14px; font-weight: 700; color: rgba(255, 255, 255, .85); }
.gb-since span { display: inline-block; margin-right: 8px; padding: 2px 10px; border-radius: 999px; background: #c9a227; color: #fff; font-size: 12px; }
.gb-since b { color: #f6c75a; } .gb-since i { margin: 0 6px; color: #f6c75a; }
.gb-stats em { display: block; margin-top: 2px; font-style: normal; font-size: 11px; opacity: .7; }
body.corp .gb-since { color: #26324a; } body.corp .gb-since b, body.corp .gb-since i { color: #9c7416; } body.corp .gb-stats em { color: #5b6577; }
.gb-stats b .gb-n { display: inline !important; font: inherit !important; color: inherit !important; -webkit-text-fill-color: inherit !important; letter-spacing: inherit !important; margin: 0 !important; opacity: 1 !important; }
.gb-since { margin-top: 10px !important; }

/* レインボーのロゴ＋1兆円カウントダウン（2026-10-05） */
.vb-goal { max-width: 720px; margin: 28px auto 36px; padding: 26px 22px 20px; border-radius: 24px; text-align: center;
    background: radial-gradient(120% 80% at 50% -10%, #1a1060 0%, #05060f 65%); box-shadow: 0 24px 60px -24px rgba(11, 22, 56, .7), 0 0 0 1px rgba(255, 213, 74, .25); }
.rb-logo { position: relative; display: inline-block; line-height: 0; }
.rb-logo img { display: block; height: clamp(80px, 12vw, 140px); width: auto; filter: drop-shadow(0 0 16px rgba(255, 92, 200, .4)) drop-shadow(0 0 18px rgba(124, 242, 255, .4)); }
.rb-logo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #ff3b3b, #ff8a00, #ffd400, #00c853, #00d4b4, #00b8ff, #2f6bff, #8f4bff, #ff3dc8, #ff3b3b); background-size: 200% 100%;
    mix-blend-mode: color; -webkit-mask: var(--logo) center / contain no-repeat; mask: var(--logo) center / contain no-repeat; animation: rbLogo 3s linear infinite; pointer-events: none; }
@keyframes rbLogo { to { background-position: 200% 0; } }
.goal-box { margin: 14px auto 0; max-width: 620px; padding: 12px 16px; border-radius: 18px; background: rgba(5, 10, 26, .6); border: 1px solid rgba(255, 213, 74, .35); box-shadow: 0 0 24px rgba(255, 190, 40, .15); }
.goal-t { display: flex; justify-content: center; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.goal-t b { font-size: 20px; letter-spacing: .06em; background: linear-gradient(90deg, #ffe08a, #ffb300, #fff2c2, #ffb300); -webkit-background-clip: text; background-clip: text; color: transparent; }
.goal-t span { color: #ffd54a; font-weight: 700; letter-spacing: .2em; font-size: 13px; }
.goal-n { margin-top: 6px; font-size: 15px; color: #f4f6ff; transition: opacity .35s; min-height: 1.8em; }
.goal-n.fade { opacity: 0; }
.goal-n b { font-size: clamp(22px, 3.6vw, 30px); font-variant-numeric: tabular-nums; color: #ffd54a; text-shadow: 0 0 12px rgba(255, 190, 40, .55); }
.goal-bar { height: 6px; border-radius: 4px; background: rgba(255, 255, 255, .12); margin: 10px 0 8px; overflow: hidden; }
.goal-bar i { display: block; width: 0; height: 100%; background: linear-gradient(90deg, #ffb300, #ffe08a); box-shadow: 0 0 10px #ffb300; transition: width 2.2s cubic-bezier(.2, .8, .2, 1); }
.goal-s { font-size: 12px; color: rgba(232, 238, 255, .66); }
@media (prefers-reduced-motion: reduce) { .rb-logo::after { animation: none; } }
.rb-logo::after { -webkit-mask: url("../images/logo/logo-rsk-glow.png") center / contain no-repeat !important; mask: url("../images/logo/logo-rsk-glow.png") center / contain no-repeat !important; }

/* 企業理念 Purpose / Mission / Vision / Values（2026-10-05） */
.pv-sec{position:relative}
.pv-panel{color:#e9eefc}
.pv-g{background:var(--pv-grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.pv-panel small{display:flex;align-items:baseline;gap:10px;font-family:Inter,Lexend,sans-serif;font-size:11.5px;font-weight:800;letter-spacing:.28em;color:var(--pv-acc)}
.pv-panel small em{font-style:normal;font-family:"Noto Sans JP",sans-serif;font-size:11px;font-weight:500;letter-spacing:.08em;color:rgba(233,238,252,.6)}
.pv-slogan{text-align:center;padding:10px 0 34px}
.pv-slogan small{justify-content:center}
.pv-slogan p{margin:10px 0 6px;font-family:"Noto Sans JP",sans-serif;font-weight:900;font-size:clamp(26px,4.2vw,48px);line-height:1.3;letter-spacing:.02em}
.pv-slogan span{font-size:13px;letter-spacing:.12em;color:rgba(233,238,252,.7)}
.pv-purpose{position:relative;overflow:hidden;padding:34px 36px;border-radius:24px;border:1px solid color-mix(in srgb,var(--pv-acc) 45%,transparent);background:radial-gradient(80% 140% at 0% 0%,color-mix(in srgb,var(--pv-acc) 22%,transparent),transparent 60%),rgba(8,12,30,.78)}
.pv-purpose h3{margin:12px 0 10px;font-family:"Noto Sans JP",sans-serif;font-weight:900;font-size:clamp(24px,3.2vw,38px);line-height:1.35;color:#fff}
.pv-purpose p{margin:0;max-width:760px;font-size:14.5px;line-height:1.9;color:rgba(233,238,252,.78)}
.pv-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}
.pv-card{padding:26px 24px;border-radius:20px;border:1px solid rgba(255,255,255,.1);background:rgba(10,14,32,.72)}
.pv-card h4{margin:12px 0 8px;font-family:"Noto Sans JP",sans-serif;font-weight:800;font-size:18px;line-height:1.5;color:#fff}
.pv-card p{margin:0;font-size:13.5px;line-height:1.85;color:rgba(233,238,252,.72)}
.pv-card ol{margin:12px 0 0;padding:0;list-style:none;counter-reset:pv}
.pv-card li{counter-increment:pv;position:relative;padding:0 0 12px 30px}
.pv-card li::before{content:counter(pv);position:absolute;left:0;top:2px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font:800 11px/1 Inter,sans-serif;background:var(--pv-acc);color:#0a0f22}
.pv-card li b{display:block;font-size:15px;color:#fff}
.pv-card li span{display:block;font-size:12.5px;line-height:1.7;color:rgba(233,238,252,.7)}
@media (max-width:900px){.pv-grid{grid-template-columns:1fr}.pv-purpose{padding:26px 22px}}

.pv-sec--rsk{padding:110px 0;background:radial-gradient(70% 60% at 50% 0%,#14205a 0%,transparent 70%),#04060f}
.pv-sec--rsk .pv-k{margin:0;text-align:center;font:800 12px/1 Inter,sans-serif;letter-spacing:.34em;color:#9fc0ff}
.pv-sec--rsk .pv-h{margin:14px 0 8px;text-align:center;font-weight:900;font-size:clamp(28px,4vw,44px);color:#fff !important;-webkit-text-fill-color:#fff}
.pv-sec--rsk .pv-lead{margin:0 0 26px;text-align:center;font-size:14px;color:rgba(233,238,252,.7) !important}
.pv-tabs{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:0 0 30px}
.pv-tab{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:150px;padding:10px 18px;border-radius:14px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.04);color:#fff;font:800 14px/1.2 Inter,sans-serif;letter-spacing:.14em;cursor:pointer;transition:.25s}
.pv-tab small{font:500 11px/1.2 "Noto Sans JP",sans-serif;letter-spacing:.04em;color:rgba(255,255,255,.6)}
.pv-tab:hover{border-color:var(--pv-acc)}
.pv-tab.on{border-color:var(--pv-acc);background:color-mix(in srgb,var(--pv-acc) 18%,transparent);box-shadow:0 0 22px -6px var(--pv-acc);color:var(--pv-acc)}
.pv-sec--rsk .pv-panel h3,.pv-sec--rsk .pv-panel h4,.pv-sec--rsk .pv-card li b{color:#fff !important;-webkit-text-fill-color:#fff}
.pv-sec--rsk .pv-panel p:not(.pv-g),.pv-sec--rsk .pv-card li span{color:rgba(233,238,252,.75) !important}
@media (max-width:640px){.pv-tab{min-width:0;flex:1}}

/* ヒーロー地図：拠点が散らばっていく（2026-10-05） */
.hs-gold .ho-hide { visibility: hidden; }
.hs-gold circle.ho-pop { transform-box: fill-box; transform-origin: center; animation: hoPop .7s cubic-bezier(.3, 1.6, .5, 1); }
@keyframes hoPop { 0% { transform: scale(0); } 100% { transform: scale(1); } }
.hs-gold .ho-ripple { fill: none; stroke: #ffd76a; stroke-width: 3; transform-box: fill-box; transform-origin: center; animation: hoRipple 1.2s ease-out forwards; pointer-events: none; }
@keyframes hoRipple { 0% { transform: scale(1); opacity: 1; } 100% { transform: scale(6); opacity: 0; } }

/* バックオフィス：人件費・システム0、年7,000万円削減（2026-10-05） */
.ad-cut { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin: 16px 0 18px; padding: 14px 18px; border-radius: 16px; background: linear-gradient(135deg, #0b1638, #14205a); border: 1px solid rgba(255, 213, 74, .45); box-shadow: 0 10px 30px -12px rgba(11, 22, 56, .6); }
.ad-cut p { flex: 1 1 260px; margin: 0; font-size: 14px; line-height: 1.75; color: #e8eeff !important; }
.ad-cut p i { margin-right: 8px; color: #ffd54a; }
.ad-cut p b { color: #ffd54a; }
.ad-cut-n { text-align: right; }
.ad-cut-n small { display: block; font-size: 11.5px; color: rgba(232, 238, 255, .7); }
.ad-cut-n b { font-size: 15px; color: #fff; }
.ad-cut-v { font-family: "Inter", sans-serif; font-size: clamp(28px, 3.4vw, 38px); font-weight: 900; color: #ffd54a; text-shadow: 0 0 12px rgba(255, 190, 40, .5); font-variant-numeric: tabular-nums; margin: 0 2px; }
.ad-cut-n em { font-style: normal; font-weight: 800; color: #ffd54a; }
@media (max-width: 640px) { .ad-cut-n { text-align: left; } }
