/* =============================================================================
   RocketBooster Contract — LP styles (site03.png 再現 / 宇宙テーマ)
   背景は site02.png（functions.php が --rbc-bg-image を注入）
   ========================================================================== */

:root {
    --rbc-bg-image: none; /* functions.php が上書き */
    --rbc-max: 1200px;
    --rbc-ink: #f8faff;
    --rbc-ink-2: rgba(233, 236, 255, 0.72);
    --rbc-ink-3: rgba(210, 215, 245, 0.55);
    --rbc-line: rgba(150, 165, 255, 0.18);
    --rbc-line-2: rgba(180, 190, 255, 0.28);
    --rbc-glass: rgba(18, 20, 48, 0.55);
    --rbc-glass-2: rgba(28, 30, 66, 0.6);
    --rbc-accent: #818cf8;
    --rbc-grad: linear-gradient(135deg, #6366f1 0%, #8b5cf6 55%, #c084fc 100%);
    --rbc-grad-warm: linear-gradient(135deg, #fbbf24, #fb7185);
    --rbc-glow: 0 18px 50px -18px rgba(99, 102, 241, 0.75);
    --rbc-radius: 18px;
    --rbc-radius-sm: 12px;
    --rbc-font: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Yu Gothic UI", Meiryo, sans-serif;
}

/* ---- リセット親 main.css 由来の明色を打ち消す土台 -------------------- */
html { scroll-behavior: smooth; }

body.rbc-body {
    margin: 0;
    font-family: var(--rbc-font);
    color: var(--rbc-ink-2);
    background-color: #070818;
    background-image:
        linear-gradient(180deg, rgba(7, 8, 24, 0.30) 0%, rgba(7, 8, 24, 0.55) 45%, rgba(7, 8, 24, 0.92) 100%),
        var(--rbc-bg-image);
    background-size: cover;
    background-position: top center;
    background-attachment: fixed;
    background-repeat: no-repeat;
    line-height: 1.8;
    -webkit-font-smoothing: antialiased;
}

.rbc-site { overflow-x: clip; }

a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }

.screen-reader-text {
    position: absolute !important;
    width: 1px; height: 1px;
    overflow: hidden; clip: rect(1px, 1px, 1px, 1px);
    white-space: nowrap;
}
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus {
    left: 1rem; top: 1rem; z-index: 1000;
    background: #fff; color: #111; padding: .6rem 1rem; border-radius: 8px;
}

.rbc-grad {
    background: var(--rbc-grad);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

/* =============================================================================
   Buttons
   ========================================================================== */
.rbc-btn {
    display: inline-flex;
    align-items: center;
    gap: .55em;
    padding: .95rem 1.7rem;
    border-radius: 999px;
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: .02em;
    line-height: 1;
    border: 1px solid transparent;
    transition: transform .18s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease;
    cursor: pointer;
    white-space: nowrap;
}
.rbc-btn--sm { padding: .62rem 1.15rem; font-size: .9rem; }
.rbc-btn--primary {
    background: var(--rbc-grad);
    color: #fff;
    box-shadow: var(--rbc-glow);
}
.rbc-btn--primary:hover { transform: translateY(-2px); box-shadow: 0 22px 60px -16px rgba(124, 92, 246, 0.9); }
.rbc-btn--ghost {
    background: rgba(255, 255, 255, 0.04);
    border-color: var(--rbc-line-2);
    color: var(--rbc-ink);
    backdrop-filter: blur(6px);
}
.rbc-btn--ghost:hover { border-color: var(--rbc-accent); background: rgba(129, 140, 248, 0.12); transform: translateY(-2px); }
.rbc-btn__arrow { transition: transform .2s ease; }
.rbc-btn:hover .rbc-btn__arrow { transform: translateX(3px); }
.rbc-btn__rocket { font-size: 1.05em; }

/* =============================================================================
   Header
   ========================================================================== */
.rbc-header {
    position: sticky;
    top: 0;
    z-index: 100;
    transition: background .3s ease, border-color .3s ease, backdrop-filter .3s ease;
    border-bottom: 1px solid transparent;
}
.rbc-header.is-scrolled {
    background: rgba(9, 10, 28, 0.72);
    backdrop-filter: blur(14px);
    border-bottom-color: var(--rbc-line);
}
.rbc-header__inner {
    max-width: var(--rbc-max);
    margin: 0 auto;
    padding: 1rem 1.5rem;
    display: flex;
    align-items: center;
    gap: 1.5rem;
}
.rbc-logo { display: inline-flex; align-items: center; gap: .55rem; }
.rbc-logo__icon { display: inline-flex; filter: drop-shadow(0 4px 10px rgba(129, 140, 248, .5)); }
.rbc-logo__text { font-weight: 800; font-size: 1.2rem; color: var(--rbc-ink); letter-spacing: .01em; }
.rbc-logo__text--lg { font-size: 1.6rem; }
.rbc-logo .custom-logo { max-height: 34px; width: auto; }

.rbc-nav { margin-left: auto; }
.rbc-nav__list {
    list-style: none; margin: 0; padding: 0;
    display: flex; align-items: center; gap: 1.6rem;
}
.rbc-nav__link {
    color: var(--rbc-ink-2);
    font-size: .95rem;
    font-weight: 500;
    transition: color .2s ease;
    position: relative;
}
.rbc-nav__link:hover { color: var(--rbc-ink); }
.rbc-nav__link::after {
    content: ""; position: absolute; left: 0; bottom: -6px;
    width: 0; height: 2px; border-radius: 2px;
    background: var(--rbc-grad); transition: width .25s ease;
}
.rbc-nav__link:hover::after { width: 100%; }

.rbc-header__actions { display: flex; align-items: center; gap: .6rem; }

.rbc-menu-toggle {
    display: none;
    margin-left: auto;
    width: 44px; height: 44px;
    background: rgba(255,255,255,.05);
    border: 1px solid var(--rbc-line-2);
    border-radius: 12px;
    cursor: pointer;
    position: relative;
}
.rbc-menu-toggle__bar,
.rbc-menu-toggle__bar::before,
.rbc-menu-toggle__bar::after {
    content: "";
    position: absolute;
    left: 50%; transform: translateX(-50%);
    width: 20px; height: 2px; border-radius: 2px;
    background: var(--rbc-ink);
    transition: transform .25s ease, opacity .25s ease;
}
.rbc-menu-toggle__bar { top: 50%; margin-top: -1px; }
.rbc-menu-toggle__bar::before { top: -7px; }
.rbc-menu-toggle__bar::after { top: 7px; }
.rbc-menu-toggle[aria-expanded="true"] .rbc-menu-toggle__bar { background: transparent; }
.rbc-menu-toggle[aria-expanded="true"] .rbc-menu-toggle__bar::before { transform: translateX(-50%) rotate(45deg); top: 0; }
.rbc-menu-toggle[aria-expanded="true"] .rbc-menu-toggle__bar::after { transform: translateX(-50%) rotate(-45deg); top: 0; }

/* =============================================================================
   Layout helpers
   ========================================================================== */
.rbc-section {
    max-width: var(--rbc-max);
    margin: 0 auto;
    padding: 5.5rem 1.5rem;
}
.rbc-section__head { text-align: center; max-width: 720px; margin: 0 auto 3rem; }
.rbc-section__head--row {
    display: flex; justify-content: space-between; align-items: flex-end;
    text-align: left; max-width: var(--rbc-max); gap: 1.5rem;
}
.rbc-section__title {
    color: var(--rbc-ink);
    font-size: clamp(1.7rem, 3.4vw, 2.4rem);
    font-weight: 800;
    line-height: 1.35;
    margin: 0 0 .8rem;
    letter-spacing: .01em;
}
.rbc-section__sub { color: var(--rbc-ink-3); font-size: 1.02rem; margin: 0; }
.rbc-link { color: var(--rbc-accent); font-weight: 600; white-space: nowrap; transition: color .2s; }
.rbc-link:hover { color: #c4b5fd; }

/* プレースホルダ画像のタグ */
.rbc-ph-tag {
    font-size: .72rem; font-weight: 700; letter-spacing: .12em;
    color: rgba(255,255,255,.85);
    background: rgba(0,0,0,.28);
    padding: .25rem .6rem; border-radius: 999px;
    backdrop-filter: blur(2px);
}

/* =============================================================================
   Hero
   ========================================================================== */
.rbc-hero {
    max-width: var(--rbc-max);
    margin: 0 auto;
    padding: clamp(3rem, 8vw, 6rem) 1.5rem 0;
}
.rbc-hero__inner {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 3rem;
    align-items: center;
}
.rbc-hero__title {
    color: var(--rbc-ink);
    font-size: clamp(2.6rem, 6vw, 4.6rem);
    font-weight: 900;
    line-height: 1.12;
    letter-spacing: .01em;
    margin: 0 0 1.4rem;
    text-shadow: 0 6px 40px rgba(10, 12, 40, .6);
}
.rbc-hero__lead { font-size: 1.08rem; color: var(--rbc-ink-2); margin: 0 0 2rem; }
.rbc-hero__cta { display: flex; flex-wrap: wrap; gap: .9rem; }
.rbc-hero__cta--center { justify-content: center; }
.rbc-hero__note {
    margin: 1.6rem 0 0;
    font-size: .9rem;
    color: var(--rbc-ink-3);
    display: inline-flex; align-items: center; gap: .5rem;
}
.rbc-star { color: #fbbf24; }

/* Hero visual: ブラウザ風ダミー */
.rbc-hero__visual { display: flex; justify-content: center; }
.rbc-window {
    width: 100%;
    max-width: 460px;
    background: linear-gradient(160deg, rgba(30, 34, 78, .85), rgba(14, 16, 42, .9));
    border: 1px solid var(--rbc-line-2);
    border-radius: 16px;
    box-shadow: 0 40px 90px -30px rgba(80, 60, 200, .7);
    overflow: hidden;
    transform: perspective(1200px) rotateY(-9deg) rotateX(3deg);
    transition: transform .4s ease;
}
.rbc-window:hover { transform: perspective(1200px) rotateY(-3deg) rotateX(1deg); }
.rbc-window__bar {
    display: flex; gap: .4rem; padding: .8rem 1rem;
    background: rgba(0,0,0,.25); border-bottom: 1px solid var(--rbc-line);
}
.rbc-window__bar span { width: 11px; height: 11px; border-radius: 50%; background: rgba(255,255,255,.25); }
.rbc-window__bar span:first-child { background: #fb7185; }
.rbc-window__bar span:nth-child(2) { background: #fbbf24; }
.rbc-window__bar span:nth-child(3) { background: #34d399; }
.rbc-window__body { padding: 1.8rem; }
.rbc-window__h { color: #fff; font-size: 1.5rem; font-weight: 800; line-height: 1.3; margin: 0 0 1.4rem; }
.rbc-window__rows { display: flex; flex-direction: column; gap: .7rem; margin-bottom: 1.4rem; }
.rbc-window__rows span { height: 10px; border-radius: 6px; background: rgba(255,255,255,.14); }
.rbc-window__chips { display: flex; gap: .6rem; }
.rbc-window__chips em {
    width: 54px; height: 30px; border-radius: 8px;
    background: var(--rbc-grad); opacity: .85;
}

/* 特徴バッジ帯 */
.rbc-badges {
    margin: clamp(3rem, 6vw, 4.5rem) 0 0;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: .8rem;
    background: var(--rbc-glass);
    border: 1px solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    padding: 1.1rem 1.3rem;
    backdrop-filter: blur(12px);
    box-shadow: 0 20px 60px -30px rgba(0,0,0,.8);
}
.rbc-badge { display: flex; align-items: center; gap: .7rem; padding: .4rem .3rem; }
.rbc-badge + .rbc-badge { border-left: 1px solid var(--rbc-line); padding-left: 1.1rem; }
.rbc-badge__icon {
    color: var(--rbc-accent);
    display: inline-flex;
    width: 40px; height: 40px;
    align-items: center; justify-content: center;
    border-radius: 12px;
    background: rgba(129, 140, 248, .12);
    flex-shrink: 0;
}
.rbc-badge__text { display: flex; flex-direction: column; line-height: 1.3; }
.rbc-badge__text strong { color: var(--rbc-ink); font-size: 1rem; }
.rbc-badge__text small { color: var(--rbc-ink-3); font-size: .78rem; }

/* =============================================================================
   Steps
   ========================================================================== */
.rbc-steps__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.4rem;
}
.rbc-step {
    background: var(--rbc-glass);
    border: 1px solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    padding: 1.2rem 1.2rem 1.5rem;
    backdrop-filter: blur(10px);
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
    position: relative;
}
.rbc-step:hover { transform: translateY(-6px); border-color: var(--rbc-line-2); box-shadow: var(--rbc-glow); }
.rbc-step__thumb {
    height: 120px; border-radius: var(--rbc-radius-sm);
    background: linear-gradient(135deg, rgba(99,102,241,.35), rgba(192,132,252,.25));
    border: 1px solid var(--rbc-line);
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 1.1rem;
}
.rbc-step__num {
    font-size: 1.1rem; font-weight: 800;
    background: var(--rbc-grad);
    -webkit-background-clip: text; background-clip: text; color: transparent;
    margin-bottom: .4rem;
}
.rbc-step__title { color: var(--rbc-ink); font-size: 1.12rem; font-weight: 700; margin: 0 0 .5rem; }
.rbc-step__desc { color: var(--rbc-ink-3); font-size: .92rem; margin: 0; line-height: 1.7; }

/* =============================================================================
   Template kits
   ========================================================================== */
.rbc-kits__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.4rem;
}
.rbc-kit {
    background: var(--rbc-glass);
    border: 1px solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    overflow: hidden;
    backdrop-filter: blur(10px);
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.rbc-kit:hover { transform: translateY(-6px); border-color: var(--rbc-line-2); box-shadow: var(--rbc-glow); }
.rbc-kit__thumb {
    height: 168px;
    display: flex; align-items: flex-end; justify-content: flex-start;
    padding: 1rem;
    position: relative;
}
.rbc-kit__thumb::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,.35) 100%);
}
.rbc-kit__thumb .rbc-ph-tag { position: relative; z-index: 1; }
.rbc-kit__meta {
    display: flex; align-items: center; justify-content: space-between;
    padding: 1rem 1.2rem;
}
.rbc-kit__title { color: var(--rbc-ink); font-weight: 700; }
.rbc-kit__go { color: var(--rbc-accent); transition: transform .2s ease; }
.rbc-kit:hover .rbc-kit__go { transform: translateX(4px); }

/* =============================================================================
   RocketBooster band
   ========================================================================== */
.rbc-booster {
    max-width: var(--rbc-max);
    margin: 0 auto;
    padding: 1.5rem;
}
.rbc-booster__inner {
    display: grid;
    grid-template-columns: .85fr 1.15fr;
    gap: 2.5rem;
    align-items: center;
    background: linear-gradient(135deg, rgba(40, 30, 90, .55), rgba(14, 16, 42, .65));
    border: 1px solid var(--rbc-line-2);
    border-radius: 28px;
    padding: clamp(2rem, 5vw, 3.5rem);
    backdrop-filter: blur(14px);
    box-shadow: 0 40px 100px -40px rgba(70, 40, 160, .7);
    overflow: hidden;
}
.rbc-booster__visual {
    position: relative;
    min-height: 240px;
    display: flex; align-items: center; justify-content: center;
}
.rbc-planet {
    width: 200px; height: 200px; border-radius: 50%;
    background: radial-gradient(circle at 32% 30%, #a78bfa, #6d28d9 55%, #2e1065 100%);
    box-shadow: 0 0 80px -10px rgba(139, 92, 246, .8), inset -20px -10px 40px rgba(0,0,0,.5);
    position: relative;
}
.rbc-planet::after {
    content: ""; position: absolute; left: 50%; top: 50%;
    width: 300px; height: 70px;
    transform: translate(-50%, -50%) rotate(-22deg);
    border-radius: 50%;
    border: 10px solid rgba(196, 181, 253, .35);
    border-bottom-color: rgba(196, 181, 253, .1);
}
.rbc-rocket {
    position: absolute; font-size: 3.2rem;
    top: 8%; right: 6%;
    filter: drop-shadow(0 10px 24px rgba(251, 113, 133, .6));
    animation: rbc-float 5s ease-in-out infinite;
}
@keyframes rbc-float { 0%,100% { transform: translateY(0) rotate(-8deg); } 50% { transform: translateY(-14px) rotate(-8deg); } }

.rbc-eyebrow { color: var(--rbc-accent); font-weight: 700; font-size: .92rem; margin: 0 0 .6rem; letter-spacing: .04em; }
.rbc-booster__title {
    font-size: clamp(2.4rem, 5vw, 3.4rem);
    font-weight: 900; font-style: italic;
    color: var(--rbc-ink);
    margin: 0 0 1rem;
    background: var(--rbc-grad);
    -webkit-background-clip: text; background-clip: text; color: transparent;
}
.rbc-booster__lead { color: var(--rbc-ink-2); margin: 0 0 1.6rem; }
.rbc-booster__feats {
    list-style: none; margin: 0 0 2rem; padding: 0;
    display: grid; grid-template-columns: repeat(2, 1fr); gap: .9rem;
}
.rbc-booster__feats li {
    display: flex; align-items: center; gap: .6rem;
    color: var(--rbc-ink); font-weight: 600; font-size: .95rem;
}
.rbc-booster__fi {
    display: inline-flex; width: 36px; height: 36px;
    align-items: center; justify-content: center;
    border-radius: 10px; color: var(--rbc-accent);
    background: rgba(129, 140, 248, .14);
    flex-shrink: 0;
}

/* =============================================================================
   Security
   ========================================================================== */
.rbc-security__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.4rem;
}
.rbc-sec-card {
    background: var(--rbc-glass);
    border: 1px solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    padding: 1.6rem 1.4rem;
    backdrop-filter: blur(10px);
    transition: transform .25s ease, border-color .25s ease;
}
.rbc-sec-card:hover { transform: translateY(-5px); border-color: var(--rbc-line-2); }
.rbc-sec-card__icon {
    display: inline-flex; width: 48px; height: 48px;
    align-items: center; justify-content: center;
    border-radius: 14px; margin-bottom: 1rem;
    color: #fff;
    background: var(--rbc-grad);
    box-shadow: var(--rbc-glow);
}
.rbc-sec-card__title { color: var(--rbc-ink); font-size: 1.05rem; font-weight: 700; margin: 0 0 .5rem; }
.rbc-sec-card__desc { color: var(--rbc-ink-3); font-size: .9rem; margin: 0; line-height: 1.7; }

/* =============================================================================
   Final CTA
   ========================================================================== */
.rbc-finalcta__inner {
    text-align: center;
    background: linear-gradient(135deg, rgba(99,102,241,.18), rgba(192,132,252,.12));
    border: 1px solid var(--rbc-line-2);
    border-radius: 28px;
    padding: clamp(2.5rem, 6vw, 4.5rem) 1.5rem;
    backdrop-filter: blur(10px);
}
.rbc-finalcta__title { color: var(--rbc-ink); font-size: clamp(1.8rem, 4.5vw, 2.8rem); font-weight: 900; margin: 0 0 .8rem; }
.rbc-finalcta__lead { color: var(--rbc-ink-2); margin: 0 0 2rem; }

/* =============================================================================
   Footer
   ========================================================================== */
.rbc-footer {
    border-top: 1px solid var(--rbc-line);
    background: rgba(7, 8, 22, 0.6);
    backdrop-filter: blur(10px);
    margin-top: 3rem;
}
.rbc-footer__inner {
    max-width: var(--rbc-max);
    margin: 0 auto;
    padding: 3.5rem 1.5rem 2.5rem;
    display: grid;
    grid-template-columns: 1.4fr 2fr;
    gap: 2.5rem;
}
.rbc-footer__tagline { color: var(--rbc-ink-3); font-size: .92rem; margin: .8rem 0 0; max-width: 360px; }
.rbc-footer__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.rbc-footer__title { color: var(--rbc-ink); font-size: .95rem; margin: 0 0 1rem; }
.rbc-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .65rem; }
.rbc-footer__col a { color: var(--rbc-ink-3); font-size: .9rem; transition: color .2s; }
.rbc-footer__col a:hover { color: var(--rbc-ink); }
.rbc-footer__bar {
    max-width: var(--rbc-max);
    margin: 0 auto;
    padding: 1.4rem 1.5rem;
    border-top: 1px solid var(--rbc-line);
    display: flex; justify-content: space-between; flex-wrap: wrap; gap: .8rem;
    color: var(--rbc-ink-3); font-size: .82rem;
}

/* =============================================================================
   Scroll reveal
   ========================================================================== */
.rbc-step, .rbc-kit, .rbc-sec-card, .rbc-section__head, .rbc-booster__inner {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .6s ease, transform .6s ease;
}
.rbc-reveal.is-in { opacity: 1; transform: none; }
.no-js .rbc-step, .no-js .rbc-kit, .no-js .rbc-sec-card,
.no-js .rbc-section__head, .no-js .rbc-booster__inner { opacity: 1; transform: none; }

/* =============================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1024px) {
    .rbc-hero__inner { grid-template-columns: 1fr; gap: 2.5rem; text-align: center; }
    .rbc-hero__cta { justify-content: center; }
    .rbc-hero__note { justify-content: center; }
    .rbc-badges { grid-template-columns: repeat(2, 1fr); }
    .rbc-badge:nth-child(odd) { border-left: 0; padding-left: .3rem; }
    .rbc-badge { border-left: 0 !important; padding-left: .3rem !important; }
    .rbc-steps__grid { grid-template-columns: repeat(2, 1fr); }
    .rbc-security__grid { grid-template-columns: repeat(2, 1fr); }
    .rbc-booster__inner { grid-template-columns: 1fr; }
    .rbc-booster__visual { min-height: 200px; }
}

@media (max-width: 768px) {
    .rbc-nav, .rbc-header__actions { display: none; }
    .rbc-menu-toggle { display: block; }

    /* モバイルメニュー展開 */
    .rbc-header.is-open .rbc-nav {
        display: block;
        position: absolute;
        top: 100%; left: 0; right: 0;
        background: rgba(9, 10, 28, 0.97);
        border-bottom: 1px solid var(--rbc-line);
        backdrop-filter: blur(14px);
        padding: 1rem 1.5rem 1.5rem;
    }
    .rbc-header.is-open .rbc-nav__list { flex-direction: column; align-items: flex-start; gap: 1.1rem; }
    .rbc-header.is-open .rbc-header__actions {
        display: flex; position: absolute; top: 100%; left: 0; right: 0;
        transform: translateY(170px);
        padding: 0 1.5rem 1.5rem;
        background: rgba(9, 10, 28, 0.97);
        backdrop-filter: blur(14px);
    }
    .rbc-header.is-open .rbc-btn--sm { flex: 1; justify-content: center; }

    .rbc-section { padding: 4rem 1.2rem; }
    .rbc-section__head--row { flex-direction: column; align-items: flex-start; }
    .rbc-kits__grid { grid-template-columns: repeat(2, 1fr); }
    .rbc-br-pc { display: none; }
    .rbc-footer__inner { grid-template-columns: 1fr; }
    .rbc-footer__cols { grid-template-columns: repeat(3, 1fr); gap: 1rem; }
}

@media (max-width: 520px) {
    .rbc-badges { grid-template-columns: 1fr; }
    .rbc-steps__grid, .rbc-kits__grid, .rbc-security__grid { grid-template-columns: 1fr; }
    .rbc-booster__feats { grid-template-columns: 1fr; }
    .rbc-footer__cols { grid-template-columns: 1fr; }
    .rbc-hero__title { font-size: 2.4rem; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .rbc-rocket { animation: none; }
    .rbc-step, .rbc-kit, .rbc-sec-card, .rbc-section__head, .rbc-booster__inner,
    .rbc-feature-row, .rbc-comp, .rbc-promo {
        opacity: 1; transform: none; transition: none;
    }
}

/* =============================================================================
   下層ページ共通ガワ（page-hero / prose / cta-band）
   ========================================================================== */

/* ページヒーロー帯 */
.rbc-pagehero {
    padding: clamp(7rem, 12vw, 9rem) 1.5rem clamp(2.5rem, 5vw, 3.5rem);
    text-align: center;
}
.rbc-pagehero__inner { max-width: 800px; margin: 0 auto; }
.rbc-pagehero__title {
    color: var(--rbc-ink);
    font-size: clamp(2.2rem, 5vw, 3.4rem);
    font-weight: 900;
    line-height: 1.2;
    margin: .6rem 0 1rem;
    text-shadow: 0 6px 40px rgba(10, 12, 40, .6);
}
.rbc-pagehero__lead { color: var(--rbc-ink-2); font-size: 1.08rem; margin: 0; }

/* パンくず */
.rbc-crumbs {
    display: inline-flex; flex-wrap: wrap; align-items: center; gap: .5rem;
    font-size: .85rem; color: var(--rbc-ink-3);
}
.rbc-crumbs__link { color: var(--rbc-ink-3); transition: color .2s; }
.rbc-crumbs__link:hover { color: var(--rbc-accent); }
.rbc-crumbs__sep { opacity: .5; }
.rbc-crumbs__current { color: var(--rbc-ink-2); }

/* 汎用本文（固定ページ） */
.rbc-prose-wrap { padding-top: 1rem; }
.rbc-prose {
    max-width: 760px; margin: 0 auto;
    color: var(--rbc-ink-2);
    background: var(--rbc-glass);
    border: 1px solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    padding: clamp(1.5rem, 4vw, 3rem);
    backdrop-filter: blur(10px);
}
.rbc-prose h1, .rbc-prose h2, .rbc-prose h3, .rbc-prose h4 { color: var(--rbc-ink); line-height: 1.4; }
.rbc-prose h2 { font-size: 1.5rem; margin: 2rem 0 .8rem; }
.rbc-prose h3 { font-size: 1.2rem; margin: 1.6rem 0 .6rem; }
.rbc-prose p { margin: 0 0 1.1rem; }
.rbc-prose a { color: var(--rbc-accent); text-decoration: underline; text-underline-offset: 3px; }
.rbc-prose a:hover { color: #c4b5fd; }
.rbc-prose ul, .rbc-prose ol { padding-left: 1.3rem; margin: 0 0 1.1rem; }
.rbc-prose li { margin-bottom: .4rem; }
.rbc-prose img { border-radius: var(--rbc-radius-sm); margin: 1rem 0; }
.rbc-prose blockquote {
    margin: 1.4rem 0; padding: .6rem 1.2rem;
    border-left: 3px solid var(--rbc-accent);
    background: rgba(129,140,248,.08); border-radius: 0 10px 10px 0;
    color: var(--rbc-ink-2);
}

/* 下部CTA帯（front の finalcta と同等の見た目を共通部品化） */
.rbc-ctaband__inner {
    text-align: center;
    background: linear-gradient(135deg, rgba(99,102,241,.18), rgba(192,132,252,.12));
    border: 1px solid var(--rbc-line-2);
    border-radius: 28px;
    padding: clamp(2.5rem, 6vw, 4.5rem) 1.5rem;
    backdrop-filter: blur(10px);
}
.rbc-ctaband__title { color: var(--rbc-ink); font-size: clamp(1.8rem, 4.5vw, 2.6rem); font-weight: 900; margin: 0 0 .8rem; }
.rbc-ctaband__lead { color: var(--rbc-ink-2); margin: 0 0 2rem; }
.rbc-ctaband__buttons { display: flex; flex-wrap: wrap; gap: .9rem; justify-content: center; }

/* =============================================================================
   機能ページ専用部品（再利用可能）
   ========================================================================== */

/* 交互レイアウトの大ブロック */
.rbc-featurelist { display: flex; flex-direction: column; gap: clamp(3rem, 7vw, 5rem); }
.rbc-feature-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(2rem, 5vw, 4rem);
    align-items: center;
}
.rbc-feature-row--reverse .rbc-feature-row__visual { order: 2; }
.rbc-feature-art {
    aspect-ratio: 4 / 3;
    border-radius: 20px;
    border: 1px solid var(--rbc-line-2);
    display: flex; align-items: flex-end; padding: 1.2rem;
    position: relative;
    box-shadow: 0 30px 70px -30px rgba(60, 40, 150, .7);
}
.rbc-feature-art::after {
    content: ""; position: absolute; inset: 0; border-radius: 20px;
    background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,.3) 100%);
}
.rbc-feature-art .rbc-ph-tag { position: relative; z-index: 1; }
.rbc-feature-row__num {
    display: inline-block;
    font-size: 1rem; font-weight: 800; margin-bottom: .5rem;
    background: var(--rbc-grad);
    -webkit-background-clip: text; background-clip: text; color: transparent;
}
.rbc-feature-row__title { color: var(--rbc-ink); font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 800; line-height: 1.35; margin: 0 0 .9rem; }
.rbc-feature-row__desc { color: var(--rbc-ink-2); margin: 0 0 1.3rem; }

/* チップ群 */
.rbc-chips { list-style: none; display: flex; flex-wrap: wrap; gap: .55rem; margin: 0; padding: 0; }
.rbc-chip {
    font-size: .82rem; font-weight: 600;
    color: var(--rbc-ink-2);
    background: rgba(129,140,248,.12);
    border: 1px solid var(--rbc-line);
    padding: .35rem .85rem; border-radius: 999px;
}

/* コンポーネント一覧グリッド */
.rbc-comps__grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: .9rem;
}
.rbc-comp {
    display: flex; align-items: center; gap: .7rem;
    background: var(--rbc-glass);
    border: 1px solid var(--rbc-line);
    border-radius: 14px;
    padding: .9rem 1rem;
    backdrop-filter: blur(8px);
    transition: transform .2s ease, border-color .2s ease;
}
.rbc-comp:hover { transform: translateY(-3px); border-color: var(--rbc-line-2); }
.rbc-comp__icon {
    display: inline-flex; width: 38px; height: 38px; flex-shrink: 0;
    align-items: center; justify-content: center;
    border-radius: 10px; color: var(--rbc-accent);
    background: rgba(129,140,248,.12);
}
.rbc-comp__name { color: var(--rbc-ink); font-size: .9rem; font-weight: 600; line-height: 1.3; }

/* 横並びプロモバンド */
.rbc-promo {
    display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap;
    background: linear-gradient(135deg, rgba(40, 30, 90, .55), rgba(14, 16, 42, .65));
    border: 1px solid var(--rbc-line-2);
    border-radius: 24px;
    padding: clamp(1.8rem, 4vw, 2.8rem);
    backdrop-filter: blur(12px);
}
.rbc-promo__title { color: var(--rbc-ink); font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 800; margin: .4rem 0 .6rem; }
.rbc-promo__lead { color: var(--rbc-ink-2); margin: 0; max-width: 560px; }

/* 機能ページ内のリビール初期状態 */
.rbc-feature-row, .rbc-comp, .rbc-promo {
    opacity: 0; transform: translateY(22px);
    transition: opacity .6s ease, transform .6s ease;
}
.no-js .rbc-feature-row, .no-js .rbc-comp, .no-js .rbc-promo { opacity: 1; transform: none; }

/* インナーページ レスポンシブ */
@media (max-width: 1024px) {
    .rbc-comps__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
    .rbc-feature-row { grid-template-columns: 1fr; gap: 1.5rem; }
    .rbc-feature-row--reverse .rbc-feature-row__visual { order: 0; }
    .rbc-comps__grid { grid-template-columns: repeat(2, 1fr); }
    .rbc-promo { flex-direction: column; align-items: flex-start; }
    .rbc-ctaband__buttons { flex-direction: column; }
    .rbc-ctaband__buttons .rbc-btn { width: 100%; justify-content: center; }
}
@media (max-width: 520px) {
    .rbc-comps__grid { grid-template-columns: 1fr; }
}

/* =============================================================================
   テンプレートページ専用部品（再利用可能）
   ========================================================================== */

/* 業種キット ギャラリー */
.rbc-industries__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.6rem;
}
.rbc-industry {
    background: var(--rbc-glass);
    border: 1px solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    overflow: hidden;
    backdrop-filter: blur(10px);
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
    display: flex; flex-direction: column;
}
.rbc-industry:hover { transform: translateY(-6px); border-color: var(--rbc-line-2); box-shadow: var(--rbc-glow); }
.rbc-industry__thumb {
    height: 170px; position: relative;
    display: flex; align-items: flex-end; padding: 1rem;
}
.rbc-industry__thumb::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,.4) 100%);
}
.rbc-industry__thumb .rbc-ph-tag { position: relative; z-index: 1; }
.rbc-industry__badge {
    position: absolute; top: .8rem; right: .8rem; z-index: 1;
    font-size: .72rem; font-weight: 700;
    color: #fff; background: rgba(10,12,40,.55);
    border: 1px solid rgba(255,255,255,.25);
    padding: .25rem .65rem; border-radius: 999px;
    backdrop-filter: blur(4px);
}
.rbc-industry__body { padding: 1.2rem 1.3rem 1.4rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.rbc-industry__title { color: var(--rbc-ink); font-size: 1.15rem; font-weight: 700; margin: 0; }
.rbc-industry__desc { color: var(--rbc-ink-3); font-size: .9rem; margin: 0; line-height: 1.7; flex: 1; }
.rbc-industry__go { color: var(--rbc-accent); font-size: .88rem; font-weight: 600; margin-top: .4rem; }
.rbc-industry__go span { transition: transform .2s ease; display: inline-block; }
.rbc-industry:hover .rbc-industry__go span { transform: translateX(4px); }

/* キットに含まれる5ページ */
.rbc-pageset {
    display: flex; align-items: stretch; justify-content: center;
    flex-wrap: wrap; gap: .8rem;
}
.rbc-pagecard {
    width: 168px;
    background: var(--rbc-glass);
    border: 1px solid var(--rbc-line);
    border-radius: var(--rbc-radius-sm);
    padding: .8rem;
    backdrop-filter: blur(8px);
    transition: transform .2s ease, border-color .2s ease;
}
.rbc-pagecard:hover { transform: translateY(-4px); border-color: var(--rbc-line-2); }
.rbc-pagecard__mock {
    height: 96px; border-radius: 8px;
    background: linear-gradient(160deg, rgba(40,44,90,.7), rgba(16,18,46,.8));
    border: 1px solid var(--rbc-line);
    padding: .7rem; display: flex; flex-direction: column; gap: .4rem;
    margin-bottom: .7rem;
}
.rbc-pagecard__bar { height: 14px; border-radius: 4px; background: var(--rbc-grad); opacity: .8; margin-bottom: .15rem; }
.rbc-pagecard__line { height: 7px; border-radius: 4px; background: rgba(255,255,255,.16); }
.rbc-pagecard__meta { display: flex; flex-direction: column; line-height: 1.35; text-align: center; }
.rbc-pagecard__meta strong { color: var(--rbc-ink); font-size: .92rem; }
.rbc-pagecard__meta small { color: var(--rbc-ink-3); font-size: .74rem; }
.rbc-pageset__plus { display: flex; align-items: center; color: var(--rbc-accent); font-weight: 700; font-size: 1.1rem; }

/* 適用の流れ */
.rbc-flow {
    display: flex; align-items: stretch; justify-content: center;
    flex-wrap: wrap; gap: 1rem;
}
.rbc-flow__step {
    flex: 1; min-width: 200px; max-width: 300px;
    background: var(--rbc-glass);
    border: 1px solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    padding: 1.6rem 1.4rem;
    backdrop-filter: blur(10px);
    text-align: center;
}
.rbc-flow__num {
    display: inline-flex; width: 44px; height: 44px;
    align-items: center; justify-content: center;
    border-radius: 50%; margin-bottom: .9rem;
    font-weight: 800; color: #fff;
    background: var(--rbc-grad); box-shadow: var(--rbc-glow);
}
.rbc-flow__title { color: var(--rbc-ink); font-size: 1.08rem; font-weight: 700; margin: 0 0 .5rem; }
.rbc-flow__desc { color: var(--rbc-ink-3); font-size: .9rem; margin: 0; line-height: 1.7; }
.rbc-flow__arrow { display: flex; align-items: center; color: var(--rbc-accent); font-size: 1.5rem; font-weight: 700; }

/* リビール初期状態 */
.rbc-industry, .rbc-pagecard, .rbc-flow__step {
    opacity: 0; transform: translateY(22px);
    transition: opacity .6s ease, transform .6s ease;
}
.no-js .rbc-industry, .no-js .rbc-pagecard, .no-js .rbc-flow__step { opacity: 1; transform: none; }

/* レスポンシブ */
@media (max-width: 1024px) {
    .rbc-industries__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .rbc-flow__arrow { transform: rotate(90deg); }
    .rbc-flow__step { max-width: none; }
}
@media (max-width: 520px) {
    .rbc-industries__grid { grid-template-columns: 1fr; }
    .rbc-pageset__plus { display: none; }
    .rbc-pagecard { width: 100%; max-width: 280px; }
}

@media (prefers-reduced-motion: reduce) {
    .rbc-industry, .rbc-pagecard, .rbc-flow__step {
        opacity: 1; transform: none; transition: none;
    }
}

/* =============================================================================
   ドキュメント（2カラム）
   ========================================================================== */
.rbc-docs {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 2.5rem;
    align-items: start;
}
.rbc-docs__side { position: sticky; top: 90px; align-self: start; }
.rbc-docnav__group {
    color: var(--rbc-ink-3);
    font-size: .78rem; font-weight: 700; letter-spacing: .08em;
    text-transform: uppercase;
    margin: 1.4rem 0 .5rem;
}
.rbc-docnav__group:first-child { margin-top: 0; }
.rbc-docnav__list { list-style: none; margin: 0 0 .5rem; padding: 0; display: flex; flex-direction: column; gap: .15rem; }
.rbc-docnav__link {
    display: block; padding: .4rem .8rem;
    color: var(--rbc-ink-2); font-size: .92rem;
    border-radius: 8px; border-left: 2px solid transparent;
    transition: background .2s, color .2s, border-color .2s;
}
.rbc-docnav__link:hover { color: var(--rbc-ink); background: rgba(129,140,248,.1); }
.rbc-docnav__link.is-active { color: var(--rbc-ink); background: rgba(129,140,248,.14); border-left-color: var(--rbc-accent); }
.rbc-docs__body { margin: 0; }
.rbc-doc-section { scroll-margin-top: 90px; }
.rbc-doc-section + .rbc-doc-section { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--rbc-line); }
.rbc-doc-section h2:first-child { margin-top: 0; }
.rbc-code {
    background: rgba(5, 6, 18, .7);
    border: 1px solid var(--rbc-line);
    border-radius: 10px;
    padding: 1rem 1.2rem;
    overflow-x: auto;
    margin: 1rem 0;
}
.rbc-code code {
    color: #c4b5fd;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
    font-size: .9rem;
}
.rbc-prose code:not(.rbc-code code) {
    background: rgba(129,140,248,.14);
    padding: .12em .45em; border-radius: 6px;
    font-size: .88em; color: #c4b5fd;
}

/* =============================================================================
   FAQ（details アコーディオン）
   ========================================================================== */
.rbc-faq { max-width: 800px; margin: 0 auto; display: flex; flex-direction: column; gap: .9rem; }
.rbc-faq__item {
    background: var(--rbc-glass);
    border: 1px solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    backdrop-filter: blur(10px);
    overflow: hidden;
    transition: border-color .2s ease;
}
.rbc-faq__item[open] { border-color: var(--rbc-line-2); }
.rbc-faq__q {
    list-style: none; cursor: pointer;
    display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    padding: 1.2rem 1.4rem;
    color: var(--rbc-ink); font-weight: 700; font-size: 1.02rem;
}
.rbc-faq__q::-webkit-details-marker { display: none; }
.rbc-faq__icon { position: relative; width: 18px; height: 18px; flex-shrink: 0; }
.rbc-faq__icon::before, .rbc-faq__icon::after {
    content: ""; position: absolute; left: 50%; top: 50%;
    background: var(--rbc-accent); border-radius: 2px;
    transform: translate(-50%, -50%); transition: transform .25s ease, opacity .2s ease;
}
.rbc-faq__icon::before { width: 14px; height: 2px; }
.rbc-faq__icon::after { width: 2px; height: 14px; }
.rbc-faq__item[open] .rbc-faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); opacity: 0; }
.rbc-faq__a {
    padding: 0 1.4rem 1.3rem;
    color: var(--rbc-ink-2); line-height: 1.8;
}
.rbc-faq__a code {
    background: rgba(129,140,248,.14); padding: .12em .45em; border-radius: 6px;
    font-size: .88em; color: #c4b5fd;
}
.rbc-faq__a a { color: var(--rbc-accent); text-decoration: underline; text-underline-offset: 3px; }
.rbc-faq__more { text-align: center; margin-top: 2.5rem; }
.rbc-faq__more p { color: var(--rbc-ink-3); margin: 0 0 1rem; }

/* =============================================================================
   制作を依頼する（サービス＋フォーム）
   ========================================================================== */
.rbc-services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; align-items: start; }
.rbc-service {
    position: relative;
    background: var(--rbc-glass);
    border: 1px solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    padding: 1.6rem 1.5rem 1.8rem;
    backdrop-filter: blur(10px);
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.rbc-service:hover { transform: translateY(-6px); border-color: var(--rbc-line-2); box-shadow: var(--rbc-glow); }
.rbc-service--featured { border-color: var(--rbc-accent); box-shadow: var(--rbc-glow); }
.rbc-service__badge {
    position: absolute; top: -12px; left: 50%; transform: translateX(-50%);
    background: var(--rbc-grad); color: #fff;
    font-size: .76rem; font-weight: 700;
    padding: .3rem .9rem; border-radius: 999px;
    box-shadow: var(--rbc-glow);
}
.rbc-service__top { height: 8px; border-radius: 999px; margin-bottom: 1.2rem; }
.rbc-service__title { color: var(--rbc-ink); font-size: 1.2rem; font-weight: 700; margin: 0 0 .3rem; }
.rbc-service__price {
    font-size: 1.6rem; font-weight: 900; margin: 0 0 .8rem;
    background: var(--rbc-grad); -webkit-background-clip: text; background-clip: text; color: transparent;
}
.rbc-service__desc { color: var(--rbc-ink-3); font-size: .92rem; margin: 0 0 1.1rem; line-height: 1.7; }
.rbc-service__feats { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .55rem; }
.rbc-service__feats li {
    color: var(--rbc-ink-2); font-size: .9rem;
    padding-left: 1.6rem; position: relative;
}
.rbc-service__feats li::before {
    content: ""; position: absolute; left: 0; top: .35em;
    width: 14px; height: 8px; border-left: 2px solid var(--rbc-accent); border-bottom: 2px solid var(--rbc-accent);
    transform: rotate(-45deg);
}
.rbc-note { text-align: center; color: var(--rbc-ink-3); font-size: .85rem; margin: 1.6rem 0 0; }

/* フォーム */
.rbc-form {
    max-width: 780px; margin: 0 auto;
    background: var(--rbc-glass);
    border: 1px solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    padding: clamp(1.5rem, 4vw, 2.5rem);
    backdrop-filter: blur(10px);
}
.rbc-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin-bottom: 1.2rem; }
.rbc-field { display: flex; flex-direction: column; gap: .45rem; margin-bottom: 1.2rem; }
.rbc-field__label { color: var(--rbc-ink); font-size: .9rem; font-weight: 600; }
.rbc-field__label em { color: #fb7185; font-style: normal; }
.rbc-field input, .rbc-field select, .rbc-field textarea {
    width: 100%; box-sizing: border-box;
    background: rgba(8, 10, 26, .6);
    border: 1px solid var(--rbc-line-2);
    border-radius: 10px;
    padding: .8rem 1rem;
    color: var(--rbc-ink);
    font-family: inherit; font-size: .95rem;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.rbc-field textarea { resize: vertical; }
.rbc-field input::placeholder, .rbc-field textarea::placeholder { color: var(--rbc-ink-3); }
.rbc-field input:focus, .rbc-field select:focus, .rbc-field textarea:focus {
    outline: none; border-color: var(--rbc-accent);
    box-shadow: 0 0 0 3px rgba(129,140,248,.2);
}
.rbc-field select { appearance: none; -webkit-appearance: none; cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23818cf8' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.4rem;
}
.rbc-field option { color: #111; }
.rbc-form__submit { display: flex; align-items: center; gap: 1.2rem; flex-wrap: wrap; margin-top: .5rem; }
.rbc-form__privacy { color: var(--rbc-ink-3); font-size: .82rem; }
.rbc-form__privacy a { color: var(--rbc-accent); text-decoration: underline; }
.rbc-form__notice {
    margin: 1.4rem 0 0; padding: .8rem 1rem;
    background: rgba(251, 191, 36, .1); border: 1px solid rgba(251, 191, 36, .3);
    border-radius: 10px; color: #fcd34d; font-size: .82rem;
}

/* =============================================================================
   RocketBooster: 2モード
   ========================================================================== */
.rbc-modes__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
.rbc-mode-card { padding: 1.8rem 1.7rem; }
.rbc-mode-card .rbc-chips { margin-top: 1.1rem; }

/* =============================================================================
   ショーケース
   ========================================================================== */
.rbc-filter { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; margin-bottom: 2.5rem; }
.rbc-filter__btn {
    background: rgba(255,255,255,.04);
    border: 1px solid var(--rbc-line);
    color: var(--rbc-ink-2);
    font-size: .88rem; font-weight: 600;
    padding: .5rem 1.1rem; border-radius: 999px;
    cursor: pointer; font-family: inherit;
    transition: background .2s, border-color .2s, color .2s;
}
.rbc-filter__btn:hover { color: var(--rbc-ink); border-color: var(--rbc-line-2); }
.rbc-filter__btn.is-active { background: var(--rbc-grad); border-color: transparent; color: #fff; box-shadow: var(--rbc-glow); }
.rbc-showcase__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.4rem; }
.rbc-case {
    background: var(--rbc-glass);
    border: 1px solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    overflow: hidden;
    backdrop-filter: blur(10px);
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.rbc-case:hover { transform: translateY(-6px); border-color: var(--rbc-line-2); box-shadow: var(--rbc-glow); }
.rbc-case__thumb {
    height: 150px; position: relative;
    display: flex; align-items: flex-end; padding: .9rem;
}
.rbc-case__thumb::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,.4) 100%);
}
.rbc-case__thumb .rbc-ph-tag { position: relative; z-index: 1; }
.rbc-case__meta { padding: 1rem 1.2rem 1.3rem; }
.rbc-case__cat { color: var(--rbc-accent); font-size: .78rem; font-weight: 700; }
.rbc-case__title { color: var(--rbc-ink); font-size: 1.05rem; font-weight: 700; margin: .3rem 0 .3rem; }
.rbc-case__desc { color: var(--rbc-ink-3); font-size: .85rem; margin: 0; }
.rbc-case--hidden { display: none !important; }

/* リビール初期状態（追加分） */
.rbc-service, .rbc-case {
    opacity: 0; transform: translateY(22px);
    transition: opacity .6s ease, transform .6s ease;
}
.no-js .rbc-service, .no-js .rbc-case { opacity: 1; transform: none; }

/* レスポンシブ（下層ページ追加分） */
@media (max-width: 1024px) {
    .rbc-docs { grid-template-columns: 200px 1fr; gap: 1.8rem; }
    .rbc-services { grid-template-columns: 1fr; max-width: 520px; margin: 0 auto; }
    .rbc-showcase__grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
    .rbc-docs { grid-template-columns: 1fr; }
    .rbc-docs__side {
        position: static;
        background: var(--rbc-glass); border: 1px solid var(--rbc-line);
        border-radius: var(--rbc-radius); padding: 1.2rem; margin-bottom: 1.5rem;
        backdrop-filter: blur(10px);
    }
    .rbc-form__row { grid-template-columns: 1fr; gap: 0; }
    .rbc-modes__grid { grid-template-columns: 1fr; }
    .rbc-showcase__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
    .rbc-showcase__grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .rbc-service, .rbc-case { opacity: 1; transform: none; transition: none; }
}

/* =============================================================================
   フォーム下部（共通） / Contact Form 7 ダークテーマ対応
   ========================================================================== */
.rbc-form-foot { max-width: 780px; margin: 1.2rem auto 0; }
.rbc-form-foot .rbc-note { margin: 0 0 .8rem; }
.rbc-note a { color: var(--rbc-accent); text-decoration: underline; text-underline-offset: 3px; }

/* CF7 をテーマのフォーム見た目に合わせる（.rbc-form のガラスカード内に出力） */
.rbc-form--cf7 .wpcf7 { margin: 0; }
.rbc-form--cf7 .wpcf7-form > p { margin: 0 0 1.2rem; }
.rbc-form--cf7 label {
    display: block;
    color: var(--rbc-ink); font-size: .9rem; font-weight: 600;
}
.rbc-form--cf7 .wpcf7-form-control-wrap { display: block; margin-top: .45rem; }
.rbc-form--cf7 .wpcf7-form-control:not(.wpcf7-submit) {
    width: 100%; box-sizing: border-box;
    background: rgba(8, 10, 26, .6);
    border: 1px solid var(--rbc-line-2);
    border-radius: 10px;
    padding: .8rem 1rem;
    color: var(--rbc-ink);
    font-family: inherit; font-size: .95rem;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.rbc-form--cf7 textarea.wpcf7-form-control { min-height: 150px; resize: vertical; }
.rbc-form--cf7 .wpcf7-form-control:focus {
    outline: none; border-color: var(--rbc-accent);
    box-shadow: 0 0 0 3px rgba(129,140,248,.2);
}
.rbc-form--cf7 select.wpcf7-form-control {
    appearance: none; -webkit-appearance: none; cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23818cf8' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.4rem;
}
.rbc-form--cf7 select.wpcf7-form-control option { color: #111; }
.rbc-form--cf7 .wpcf7-submit {
    display: inline-flex; align-items: center;
    background: var(--rbc-grad); color: #fff;
    border: 0; border-radius: 999px;
    padding: .95rem 2rem; margin-top: .4rem;
    font-weight: 700; font-size: 1rem; cursor: pointer;
    box-shadow: var(--rbc-glow);
    transition: transform .18s ease, box-shadow .25s ease;
}
.rbc-form--cf7 .wpcf7-submit:hover { transform: translateY(-2px); box-shadow: 0 22px 60px -16px rgba(124,92,246,.9); }
.rbc-form--cf7 .wpcf7-not-valid-tip { color: #fca5a5; font-size: .82rem; margin-top: .35rem; }
.rbc-form--cf7 .wpcf7-not-valid { border-color: #fb7185 !important; }
.rbc-form--cf7 .wpcf7-response-output {
    margin: 1rem 0 0 !important;
    border-radius: 10px; padding: .8rem 1rem !important;
    color: var(--rbc-ink-2); border-color: var(--rbc-line-2) !important;
    background: rgba(8,10,26,.5);
}

/* =============================================================================
   ブログ：一覧（カードグリッド）
   ========================================================================== */
.rbc-bloggrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem; }
.rbc-postcard {
    display: flex; flex-direction: column;
    background: var(--rbc-glass);
    border: 1px solid var(--rbc-line);
    border-radius: var(--rbc-radius);
    overflow: hidden;
    backdrop-filter: blur(10px);
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.rbc-postcard:hover { transform: translateY(-6px); border-color: var(--rbc-line-2); box-shadow: var(--rbc-glow); }
.rbc-postcard__thumb { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.rbc-postcard__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.rbc-postcard:hover .rbc-postcard__thumb img { transform: scale(1.05); }
.rbc-postcard__ph { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.rbc-postcard__body { padding: 1.2rem 1.3rem 1.4rem; display: flex; flex-direction: column; flex: 1; }
.rbc-postcard__meta { display: flex; align-items: center; gap: .8rem; font-size: .8rem; color: var(--rbc-ink-3); margin-bottom: .6rem; }
.rbc-postcard__cat { color: var(--rbc-accent); font-weight: 600; }
.rbc-postcard__cat:hover { color: #c4b5fd; }
.rbc-postcard__title { font-size: 1.12rem; font-weight: 700; line-height: 1.45; margin: 0 0 .6rem; }
.rbc-postcard__title a { color: var(--rbc-ink); transition: color .2s; }
.rbc-postcard__title a:hover { color: var(--rbc-accent); }
.rbc-postcard__excerpt { color: var(--rbc-ink-3); font-size: .9rem; line-height: 1.75; margin: 0 0 1rem; flex: 1; }
.rbc-postcard__more { color: var(--rbc-accent); font-weight: 600; font-size: .88rem; }
.rbc-postcard__more span { display: inline-block; transition: transform .2s ease; }
.rbc-postcard:hover .rbc-postcard__more span { transform: translateX(4px); }

/* ページネーション */
.rbc-main .pagination { margin-top: 3rem; }
.rbc-main .pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; }
.rbc-main .pagination .page-numbers {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 42px; height: 42px; padding: 0 .8rem;
    border-radius: 10px;
    background: var(--rbc-glass); border: 1px solid var(--rbc-line);
    color: var(--rbc-ink-2); font-weight: 600; text-decoration: none;
    transition: border-color .2s, color .2s, background .2s;
}
.rbc-main .pagination a.page-numbers:hover { color: var(--rbc-ink); border-color: var(--rbc-line-2); }
.rbc-main .pagination .page-numbers.current { background: var(--rbc-grad); border-color: transparent; color: #fff; box-shadow: var(--rbc-glow); }
.rbc-main .pagination .page-numbers.dots { background: transparent; border-color: transparent; }

/* 記事なし / 検索バー */
.rbc-noposts {
    text-align: center; max-width: 520px; margin: 0 auto;
    background: var(--rbc-glass); border: 1px solid var(--rbc-line);
    border-radius: var(--rbc-radius); padding: 3rem 2rem; backdrop-filter: blur(10px);
}
.rbc-noposts h2 { color: var(--rbc-ink); margin: 0 0 .6rem; }
.rbc-noposts p { color: var(--rbc-ink-3); margin: 0 0 1.2rem; }
.rbc-searchbar { max-width: 520px; margin: 0 auto 2.5rem; }
.search-form { display: flex; gap: .6rem; }
.search-form .search-field {
    flex: 1; box-sizing: border-box;
    background: rgba(8,10,26,.6); border: 1px solid var(--rbc-line-2);
    border-radius: 10px; padding: .8rem 1rem; color: var(--rbc-ink); font-family: inherit; font-size: .95rem;
}
.search-form .search-field:focus { outline: none; border-color: var(--rbc-accent); box-shadow: 0 0 0 3px rgba(129,140,248,.2); }
.search-form .search-submit {
    background: var(--rbc-grad); color: #fff; border: 0; border-radius: 10px;
    padding: 0 1.4rem; font-weight: 700; cursor: pointer; box-shadow: var(--rbc-glow);
}

/* =============================================================================
   ブログ：詳細（single）
   ========================================================================== */
.rbc-singlehero { padding: clamp(7rem, 11vw, 9rem) 1.5rem 2rem; text-align: center; }
.rbc-singlehero__inner { max-width: 800px; margin: 0 auto; }
.rbc-singlehero__cats { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin: 1rem 0 1.1rem; }
.rbc-singlehero__title {
    color: var(--rbc-ink);
    font-size: clamp(1.9rem, 4.2vw, 3rem); font-weight: 900; line-height: 1.3;
    margin: 0 0 1.1rem; text-shadow: 0 6px 40px rgba(10,12,40,.6);
}
.rbc-postmeta { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .6rem; color: var(--rbc-ink-3); font-size: .9rem; }
.rbc-postmeta a { color: var(--rbc-ink-2); }
.rbc-postmeta a:hover { color: var(--rbc-accent); }
.rbc-postmeta__sep { opacity: .5; }

.rbc-single__wrap { max-width: 820px; }
.rbc-featured { margin: 0 0 2rem; }
.rbc-featured img { width: 100%; border-radius: var(--rbc-radius); border: 1px solid var(--rbc-line); }
.rbc-single__content { max-width: none; }
.rbc-single__content > * { max-width: 720px; margin-left: auto; margin-right: auto; }
.rbc-single__content img { max-width: 100%; }

.rbc-single__tags { margin-top: 2rem; }
.rbc-tags { list-style: none; display: flex; flex-wrap: wrap; gap: .55rem; margin: 0; padding: 0; }
.rbc-tags li a, .rbc-tags a {
    display: inline-block; font-size: .82rem; font-weight: 600;
    color: var(--rbc-ink-2); background: rgba(129,140,248,.12);
    border: 1px solid var(--rbc-line); padding: .35rem .85rem; border-radius: 999px;
}
.rbc-tags a:hover { color: var(--rbc-ink); border-color: var(--rbc-line-2); }

/* 前後ナビ */
.rbc-postnav { margin-top: 2.5rem; }
.rbc-postnav .nav-links { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.rbc-postnav .nav-previous, .rbc-postnav .nav-next {
    flex: 1; min-width: 240px;
    background: var(--rbc-glass); border: 1px solid var(--rbc-line);
    border-radius: var(--rbc-radius); backdrop-filter: blur(10px);
    transition: border-color .2s, transform .2s;
}
.rbc-postnav .nav-next { text-align: right; }
.rbc-postnav .nav-previous:hover, .rbc-postnav .nav-next:hover { border-color: var(--rbc-line-2); transform: translateY(-3px); }
.rbc-postnav a { display: block; padding: 1.1rem 1.3rem; }
.rbc-postnav__label { display: block; color: var(--rbc-accent); font-size: .8rem; font-weight: 700; margin-bottom: .3rem; }
.rbc-postnav__title { display: block; color: var(--rbc-ink); font-weight: 600; line-height: 1.4; }

/* =============================================================================
   コメント（親 comments.php / WPデフォルト出力のダーク化）
   ========================================================================== */
.comments-area {
    max-width: 720px; margin: 3rem auto 0;
    background: var(--rbc-glass); border: 1px solid var(--rbc-line);
    border-radius: var(--rbc-radius); padding: clamp(1.5rem, 4vw, 2.2rem); backdrop-filter: blur(10px);
}
.comments-area .comments-title, .comments-area .comment-reply-title { color: var(--rbc-ink); font-size: 1.3rem; margin: 0 0 1.2rem; }
.comments-area .comment-list { list-style: none; margin: 0; padding: 0; }
.comments-area .comment-list ol { list-style: none; padding-left: 1.2rem; }
.comments-area .comment-body { padding: 1rem 0; border-bottom: 1px solid var(--rbc-line); }
.comments-area .comment-author { display: flex; align-items: center; gap: .6rem; color: var(--rbc-ink); font-weight: 600; }
.comments-area .comment-author img { border-radius: 50%; }
.comments-area .comment-metadata, .comments-area .comment-metadata a { color: var(--rbc-ink-3); font-size: .82rem; }
.comments-area .comment-content { color: var(--rbc-ink-2); margin-top: .5rem; }
.comments-area .reply a, .comments-area .comment-edit-link {
    color: var(--rbc-accent); font-size: .85rem; font-weight: 600;
}
.comments-area .comment-form label { display: block; color: var(--rbc-ink); font-size: .9rem; font-weight: 600; margin-bottom: .4rem; }
.comments-area .comment-form input[type="text"],
.comments-area .comment-form input[type="email"],
.comments-area .comment-form input[type="url"],
.comments-area .comment-form textarea {
    width: 100%; box-sizing: border-box;
    background: rgba(8,10,26,.6); border: 1px solid var(--rbc-line-2);
    border-radius: 10px; padding: .8rem 1rem; color: var(--rbc-ink);
    font-family: inherit; font-size: .95rem; margin-bottom: 1rem;
}
.comments-area .comment-form input:focus, .comments-area .comment-form textarea:focus {
    outline: none; border-color: var(--rbc-accent); box-shadow: 0 0 0 3px rgba(129,140,248,.2);
}
.comments-area .form-submit .submit {
    background: var(--rbc-grad); color: #fff; border: 0; border-radius: 999px;
    padding: .9rem 2rem; font-weight: 700; cursor: pointer; box-shadow: var(--rbc-glow);
}
.comments-area .comment-notes, .comments-area .comment-form-cookies-consent label { color: var(--rbc-ink-3); font-size: .85rem; }

/* リビール初期状態（投稿カード） */
.rbc-postcard { opacity: 0; transform: translateY(22px); transition: opacity .6s ease, transform .6s ease; }
.no-js .rbc-postcard { opacity: 1; transform: none; }

/* レスポンシブ */
@media (max-width: 1024px) { .rbc-bloggrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) {
    .rbc-postnav .nav-links { flex-direction: column; }
    .rbc-postnav .nav-next { text-align: left; }
}
@media (max-width: 560px) { .rbc-bloggrid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .rbc-postcard { opacity: 1; transform: none; transition: none; } }
