/*
Theme Name: ONEスキル
Theme URI: https://tensei.co.jp/
Author: TENSEI Inc.
Author URI: https://tensei.co.jp/
Description: ONEスキル会員サイト（one-trade.jp）テーマ。nexmesh/billion-fx-theme から複製した独立テーマ。配色は青ベース。
Version: 1.0.0
License: Proprietary
Text Domain: billion-fx
*/

/* ========================================
   Base Styles
   ======================================== */
body {
    font-family: 'Noto Sans JP', sans-serif;
}

/* リニューアル前の添削動画アーカイブ */
.bfx-legacy-correction-archive {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
    width: 100%;
    align-items: start;
}

/* 動画（figure）以外の直下要素（空段落など）はグリッドのセルを占有させない。テンプレート側でも空段落は除去している */
.bfx-legacy-correction-archive > :not(figure) {
    display: none;
}

.bfx-legacy-correction-archive .wp-block-embed {
    margin: 0;
    width: 100%;
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgb(226 232 240);
    border-radius: 1rem;
    background: #0f172a;
    box-shadow: 0 1px 2px rgb(15 23 42 / 0.06);
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.bfx-legacy-correction-archive .bfx-legacy-correction-date {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    min-height: 2.8rem;
    padding: 0.65rem 0.9rem;
    border-bottom: 1px solid rgb(148 163 184 / 0.24);
    background: rgb(30 41 59);
}

.bfx-legacy-correction-archive .bfx-legacy-correction-date-label {
    color: rgb(148 163 184);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.bfx-legacy-correction-archive .bfx-legacy-correction-date-value {
    color: rgb(248 250 252);
    font-size: 1rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.01em;
}

.bfx-legacy-correction-archive .wp-block-embed__wrapper {
    position: relative;
    display: block;
    aspect-ratio: 16 / 9;
}

.bfx-legacy-correction-archive .wp-embed-aspect-21-9 .wp-block-embed__wrapper {
    aspect-ratio: 21 / 9;
}

.bfx-legacy-correction-archive .wp-embed-aspect-18-9 .wp-block-embed__wrapper {
    aspect-ratio: 18 / 9;
}

.bfx-legacy-correction-archive .wp-embed-aspect-16-9 .wp-block-embed__wrapper {
    aspect-ratio: 16 / 9;
}

.bfx-legacy-correction-archive .wp-embed-aspect-4-3 .wp-block-embed__wrapper {
    aspect-ratio: 4 / 3;
}

.bfx-legacy-correction-archive .wp-embed-aspect-1-1 .wp-block-embed__wrapper {
    aspect-ratio: 1 / 1;
}

.bfx-legacy-correction-archive .wp-block-embed iframe {
    position: absolute !important;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    border: 0;
}

.dark .bfx-legacy-correction-archive .wp-block-embed {
    border-color: rgb(51 65 85);
}

@media (hover: hover) {
    .bfx-legacy-correction-archive .wp-block-embed:hover {
        border-color: rgb(129 140 248);
        box-shadow: 0 10px 24px rgb(15 23 42 / 0.12);
        transform: translateY(-2px);
    }
}

.bfx-legacy-correction-archive .wp-block-embed:focus-within {
    border-color: rgb(99 102 241);
    box-shadow: 0 0 0 3px rgb(99 102 241 / 0.2);
}

@media (min-width: 768px) {
    .bfx-legacy-correction-archive {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.25rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bfx-legacy-correction-archive .wp-block-embed {
        transition: none;
    }
}

/* ========================================
   Background Gradient Effects (Responsive)
   - Used in app shell & login page
   ======================================== */

/* 上部グラデーション (共通シェル用) */
.bfx-bg-gradient-top {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 12rem; /* h-48 */
    background: linear-gradient(to bottom, rgba(59, 130, 246, 0.1), transparent);
    pointer-events: none;
}

@media (min-width: 640px) {
    .bfx-bg-gradient-top {
        height: 16rem; /* sm:h-64 */
    }
}

@media (min-width: 768px) {
    .bfx-bg-gradient-top {
        height: 20rem; /* md:h-80 */
    }
}

@media (min-width: 1024px) {
    .bfx-bg-gradient-top {
        height: 24rem; /* lg:h-96 */
    }
}

.dark .bfx-bg-gradient-top {
    background: linear-gradient(to bottom, rgba(59, 130, 246, 0.05), transparent);
}

/* 右上の円形ぼかし */
.bfx-bg-blur-right {
    position: absolute;
    top: -2.5rem;
    right: -2.5rem;
    width: 8rem;
    height: 8rem;
    background-color: rgba(30, 64, 175, 0.05);
    border-radius: 9999px;
    filter: blur(24px);
    pointer-events: none;
}

@media (min-width: 640px) {
    .bfx-bg-blur-right {
        top: -4rem;
        right: -4rem;
        width: 12rem;
        height: 12rem;
        background-color: rgba(30, 64, 175, 0.1);
        filter: blur(40px);
    }
}

@media (min-width: 768px) {
    .bfx-bg-blur-right {
        top: -5rem;
        right: -5rem;
        width: 16rem;
        height: 16rem;
    }
}

@media (min-width: 1024px) {
    .bfx-bg-blur-right {
        top: -6rem;
        right: -6rem;
        width: 20rem;
        height: 20rem;
    }
}

.dark .bfx-bg-blur-right {
    background-color: rgba(30, 64, 175, 0.1);
}

@media (min-width: 640px) {
    .dark .bfx-bg-blur-right {
        background-color: rgba(30, 64, 175, 0.2);
    }
}

/* 左下の円形ぼかし */
.bfx-bg-blur-left {
    display: none;
    position: absolute;
    bottom: -4rem;
    left: -4rem;
    width: 12rem;
    height: 12rem;
    background-color: rgba(59, 130, 246, 0.05);
    border-radius: 9999px;
    filter: blur(40px);
    pointer-events: none;
}

@media (min-width: 640px) {
    .bfx-bg-blur-left {
        display: block;
    }
}

@media (min-width: 768px) {
    .bfx-bg-blur-left {
        bottom: -6rem;
        left: -6rem;
        width: 16rem;
        height: 16rem;
        background-color: rgba(59, 130, 246, 0.1);
    }
}

@media (min-width: 1024px) {
    .bfx-bg-blur-left {
        bottom: -8rem;
        left: -8rem;
        width: 20rem;
        height: 20rem;
    }
}

.dark .bfx-bg-blur-left {
    background-color: rgba(59, 130, 246, 0.1);
}

/* ========================================
   Login Page Specific Styles (Responsive)
   ======================================== */

/* ログインコンテナ */
.bfx-login-container {
    position: relative;
    width: 100%;
    max-width: 24rem; /* max-w-sm */
    margin-left: auto;
    margin-right: auto;
    padding: 1.5rem 1rem;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    justify-content: center;
    overflow: hidden;
}

@media (min-width: 640px) {
    .bfx-login-container {
        max-width: 28rem; /* max-w-md */
        padding: 2rem 1.5rem;
    }
}

@media (min-width: 768px) {
    .bfx-login-container {
        max-width: 32rem; /* max-w-lg */
        padding: 3rem 2rem;
    }
}

/* マスコット画像サイズ */
.bfx-mascot-wrapper {
    width: 7rem;
    height: 7rem;
}

@media (min-width: 640px) {
    .bfx-mascot-wrapper {
        width: 9rem;
        height: 9rem;
    }
}

@media (min-width: 768px) {
    .bfx-mascot-wrapper {
        width: 11rem;
        height: 11rem;
    }
}

/* ログインタイトル */
.bfx-login-title {
    font-size: 1.5rem; /* text-2xl */
    font-weight: 700;
    margin-bottom: 0.375rem;
    text-align: center;
    letter-spacing: -0.025em;
}

@media (min-width: 640px) {
    .bfx-login-title {
        font-size: 1.875rem; /* text-3xl */
        margin-bottom: 0.5rem;
    }
}

@media (min-width: 768px) {
    .bfx-login-title {
        font-size: 2.25rem; /* text-4xl */
    }
}

/* ログインフォームカード */
.bfx-login-form {
    padding: 1rem;
    border-radius: 0.75rem;
}

@media (min-width: 640px) {
    .bfx-login-form {
        padding: 1.5rem;
        border-radius: 1rem;
    }
}

@media (min-width: 768px) {
    .bfx-login-form {
        padding: 2rem;
        border-radius: 1rem;
    }
}

/* フォーム入力フィールド */
.bfx-input {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    font-size: 0.875rem;
    border-radius: 0.5rem;
}

@media (min-width: 640px) {
    .bfx-input {
        padding-top: 0.875rem;
        padding-bottom: 0.875rem;
        font-size: 1rem;
        border-radius: 0.75rem;
    }
}

/* ログインボタン */
.bfx-login-btn {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    font-size: 0.875rem;
    border-radius: 0.5rem;
}

@media (min-width: 640px) {
    .bfx-login-btn {
        padding-top: 0.875rem;
        padding-bottom: 0.875rem;
        font-size: 1rem;
        border-radius: 0.75rem;
    }
}

@media (min-width: 768px) {
    .bfx-login-btn {
        padding-top: 1rem;
        padding-bottom: 1rem;
    }
}

/* 装飾アイコン */
.bfx-decor-icon {
    padding: 0.375rem;
    border-radius: 0.5rem;
}

@media (min-width: 640px) {
    .bfx-decor-icon {
        padding: 0.5rem;
        border-radius: 0.75rem;
    }
}

.bfx-decor-icon .material-icons-round {
    font-size: 1.125rem;
}

@media (min-width: 640px) {
    .bfx-decor-icon .material-icons-round {
        font-size: 1.25rem;
    }
}

@media (min-width: 768px) {
    .bfx-decor-icon .material-icons-round {
        font-size: 1.5rem;
    }
}

/* ========================================
   Animations & Micro-interactions
   ======================================== */

/* Subtle bounce for active nav items */
@keyframes bounce-subtle {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-2px); }
}

.animate-bounce-subtle {
    animation: bounce-subtle 2s ease-in-out infinite;
}

/* Count up animation helper */
@keyframes countUp {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.animate-count-up {
    animation: countUp 0.6s ease-out forwards;
}

/* Fade in up */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(20px) scale(0.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

.animate-fade-in-up {
    animation: fadeInUp 0.5s ease-out forwards;
}

/* Staggered animation delays */
.animate-delay-100 { animation-delay: 0.1s; }
.animate-delay-150 { animation-delay: 0.15s; }
.animate-delay-200 { animation-delay: 0.2s; }
.animate-delay-300 { animation-delay: 0.3s; }
.animate-delay-400 { animation-delay: 0.4s; }
.animate-delay-500 { animation-delay: 0.5s; }

/* Skeleton loading */
@keyframes skeleton-shimmer {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

.skeleton {
    background: linear-gradient(90deg, #e2e8f0 25%, #f1f5f9 50%, #e2e8f0 75%);
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.5s ease-in-out infinite;
    border-radius: 0.5rem;
}

.dark .skeleton {
    background: linear-gradient(90deg, #334155 25%, #475569 50%, #334155 75%);
    background-size: 200% 100%;
}

/* Pulse glow effect */
@keyframes pulse-glow {
    0%, 100% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4); }
    50% { box-shadow: 0 0 20px 10px rgba(59, 130, 246, 0); }
}

.animate-pulse-glow {
    animation: pulse-glow 2s ease-in-out infinite;
}

/* Celebration confetti burst */
@keyframes confetti-fall {
    0% { transform: translateY(-100%) rotate(0deg); opacity: 1; }
    100% { transform: translateY(100vh) rotate(720deg); opacity: 0; }
}

.confetti {
    position: fixed;
    width: 10px;
    height: 10px;
    top: 0;
    animation: confetti-fall 3s linear forwards;
    z-index: 9999;
    pointer-events: none;
}

/* Success celebration */
@keyframes celebration-pop {
    0% { transform: scale(0); opacity: 0; }
    50% { transform: scale(1.2); }
    100% { transform: scale(1); opacity: 1; }
}

.animate-celebration-pop {
    animation: celebration-pop 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55) forwards;
}

/* Fire effect for streak */
@keyframes fire-flicker {
    0%, 100% { transform: scale(1) rotate(-2deg); }
    25% { transform: scale(1.05) rotate(2deg); }
    50% { transform: scale(0.98) rotate(-1deg); }
    75% { transform: scale(1.02) rotate(1deg); }
}

.animate-fire {
    animation: fire-flicker 0.5s ease-in-out infinite;
}

/* Safe area for notched devices */
.safe-area-bottom {
    padding-bottom: max(0.5rem, env(safe-area-inset-bottom));
}

/* Glass effect */
.glass-effect {
    background: rgba(255, 255, 255, 0.8);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.dark .glass-effect {
    background: rgba(15, 23, 42, 0.8);
}

/* Ripple effect for buttons */
.ripple {
    position: relative;
    overflow: hidden;
}

.ripple::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    pointer-events: none;
    background-image: radial-gradient(circle, rgba(255,255,255,0.3) 10%, transparent 10.01%);
    background-repeat: no-repeat;
    background-position: 50%;
    transform: scale(10, 10);
    opacity: 0;
    transition: transform 0.5s, opacity 0.5s;
}

.ripple:active::after {
    transform: scale(0, 0);
    opacity: 1;
    transition: 0s;
}

/* ========================================
   Daily Login Bonus Calendar
   ======================================== */

.login-bonus-day {
    transition: all 0.3s ease;
}

.login-bonus-day.collected {
    background: linear-gradient(135deg, #3b82f6, #22c55e);
    color: white;
    transform: scale(1.05);
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}

.login-bonus-day.today {
    border: 2px solid #3b82f6;
    animation: pulse-glow 2s infinite;
}

.login-bonus-day.future {
    opacity: 0.5;
}

/* =========================================================
   講義日程ブロック（お知らせ本文用） — ONEスキル 青配色版
   ---------------------------------------------------------
   お知らせ本文に <div class="bfx-schedule">…</div> を貼ると
   日程カード / Zoom 参加パネル / 質問フォームのレイアウトになる。
   複製元（billion-fx.com の追加CSS v2）を青ベースに変更し、
   ダークモードの色を追加したもの。
   ========================================================= */
.bfx-schedule{
  --bfx-ink:#0f172a; --bfx-muted:#64748b; --bfx-line:#e2e8f0; --bfx-surface:#fff; --bfx-surface-2:#f8fafc;
  --bfx-brand:#1e40af; --bfx-brand-lt:#3b82f6; --bfx-brand-dk:#1e3a8a;
  --bfx-tint:#eff6ff; --bfx-ring:#93c5fd;
  --bfx-amber:#b45309; --bfx-amber-tint:#fffbeb; --bfx-amber-line:#fcd34d;
  --bfx-sun:#dc2626; --bfx-sat:#2563eb;
  --bfx-r:14px;
  max-width:760px !important; margin:0 auto !important; padding:0 !important;
  color:var(--bfx-ink); line-height:1.7 !important; text-align:left !important;
  font-family:"Noto Sans JP",system-ui,-apple-system,sans-serif;
  font-feature-settings:"palt" 1;
}
.dark .bfx-schedule{
  --bfx-ink:#f1f5f9; --bfx-muted:#94a3b8; --bfx-line:#334155; --bfx-surface:#1e293b; --bfx-surface-2:#0f172a;
  --bfx-brand:#93c5fd; --bfx-brand-lt:#60a5fa; --bfx-brand-dk:#bfdbfe;
  --bfx-tint:rgba(59,130,246,.16); --bfx-ring:#60a5fa;
  --bfx-amber:#fcd34d; --bfx-amber-tint:rgba(245,158,11,.12); --bfx-amber-line:rgba(252,211,77,.4);
}
.bfx-schedule *,.bfx-schedule *::before,.bfx-schedule *::after{box-sizing:border-box}
.bfx-schedule p,.bfx-schedule h2,.bfx-schedule h3,.bfx-schedule div,
.bfx-schedule span,.bfx-schedule a,.bfx-schedule strong{
  margin:0 !important; padding:0 !important; border:0; background:none;
  line-height:1.7 !important; text-indent:0 !important; float:none !important;
}
.bfx-schedule .bfx-dates br,.bfx-schedule .bfx-btn br,.bfx-schedule .bfx-meta br{display:none !important}
.bfx-schedule p:empty{display:none !important}
.bfx-schedule .bfx-panel__title::before,.bfx-schedule .bfx-card__time::before,
.bfx-schedule .bfx-btn::before,.bfx-schedule .bfx-btn::after,.bfx-schedule .bfx-note::before{
  content:"" !important; display:inline-block !important; flex:none;
  background-color:currentColor;
  -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat;
  -webkit-mask-position:center; mask-position:center;
  -webkit-mask-size:contain; mask-size:contain;
}
.bfx-schedule .bfx-head{text-align:center !important;margin:0 0 22px !important}
.bfx-schedule .bfx-head__eyebrow{
  display:inline-block !important;padding:3px 12px !important;border-radius:999px;
  background:var(--bfx-tint) !important;color:var(--bfx-brand);
  font-size:12px !important;font-weight:700;letter-spacing:.06em;line-height:1.7 !important;
}
.bfx-schedule .bfx-head__title{
  margin:10px 0 0 !important;padding:0 !important;border:0 !important;
  font-size:26px !important;font-weight:800;letter-spacing:.02em;
  line-height:1.35 !important;color:var(--bfx-ink);text-align:center !important;
}
.bfx-schedule .bfx-head__title .mm,.bfx-schedule .bfx-head__title em{font-style:normal;font-size:34px;color:var(--bfx-brand);margin-right:2px !important}
.bfx-schedule .bfx-head__sub{margin:6px 0 0 !important;font-size:13px !important;color:var(--bfx-muted)}
.bfx-schedule .bfx-dates{
  display:grid !important;gap:12px;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));
  margin:0 0 26px !important;padding:0 !important;
}
.bfx-schedule .bfx-card{
  position:relative;overflow:hidden;display:block !important;
  background:var(--bfx-surface) !important;border:1px solid var(--bfx-line) !important;border-radius:var(--bfx-r);
  padding:16px 12px 14px !important;text-align:center !important;box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.bfx-schedule .bfx-card::before{content:"" !important;position:absolute;inset:0 0 auto 0;height:4px;background:var(--bfx-brand-lt)}
.bfx-schedule .bfx-card__no{display:block !important;margin:0 0 8px !important;font-size:11px !important;font-weight:700;letter-spacing:.08em;color:var(--bfx-brand);line-height:1.4 !important}
.bfx-schedule .bfx-card__date{
  display:flex !important;align-items:baseline;justify-content:center;gap:1px;
  margin:0 !important;font-weight:800;line-height:1 !important;color:var(--bfx-ink);font-variant-numeric:tabular-nums;
}
.bfx-schedule .bfx-card__date .m{font-size:15px !important;line-height:1 !important}
.bfx-schedule .bfx-card__date .u{font-size:12px !important;color:var(--bfx-muted);font-weight:700;line-height:1 !important}
.bfx-schedule .bfx-card__date .d{font-size:34px !important;letter-spacing:-.02em;margin-left:2px !important;line-height:1 !important}
.bfx-schedule .bfx-card__dow{display:inline-block !important;margin-left:2px !important;font-size:13px !important;font-weight:700;line-height:1 !important;color:var(--bfx-muted)}
.bfx-schedule .bfx-card__dow.is-sun{color:var(--bfx-sun)}
.bfx-schedule .bfx-card__dow.is-sat{color:var(--bfx-sat)}
.bfx-schedule .bfx-card__time{
  display:inline-flex !important;align-items:center;gap:5px;
  margin:12px 0 0 !important;padding:5px 12px !important;border-radius:999px;
  background:var(--bfx-tint) !important;color:var(--bfx-brand-dk);
  font-size:15px !important;font-weight:800;line-height:1.4 !important;font-variant-numeric:tabular-nums;
}
.bfx-schedule .bfx-card__time::before{
  width:14px;height:14px;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%207v5l3%202%22%2F%3E%3C%2Fsvg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%207v5l3%202%22%2F%3E%3C%2Fsvg%3E");
}
/* 終了した回： <div class="bfx-card is-past"> */
.bfx-schedule .bfx-card.is-past{background:var(--bfx-surface-2) !important;opacity:.62}
.bfx-schedule .bfx-card.is-past::before{background:#cbd5e1}
.bfx-schedule .bfx-card.is-past .bfx-card__no{color:var(--bfx-muted)}
.bfx-schedule .bfx-card.is-past .bfx-card__time{background:var(--bfx-surface-2) !important;color:var(--bfx-muted)}
.bfx-schedule .bfx-panel{
  display:block !important;background:var(--bfx-surface) !important;border:1px solid var(--bfx-line) !important;border-radius:var(--bfx-r);
  padding:22px 20px !important;margin:0 0 14px !important;box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.bfx-schedule .bfx-panel__title{
  display:flex !important;align-items:center;justify-content:center;gap:8px;
  margin:0 0 16px !important;padding:0 !important;border:0 !important;
  font-size:15px !important;font-weight:800;letter-spacing:.02em;line-height:1.5 !important;color:var(--bfx-ink);text-align:center !important;
}
.bfx-schedule .bfx-panel__title::before{width:18px;height:18px;color:var(--bfx-brand);background-color:var(--bfx-brand)}
.bfx-schedule .bfx-i-video::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%226%22%20width%3D%2213%22%20height%3D%2212%22%20rx%3D%223%22%2F%3E%3Cpath%20d%3D%22M15%2010.5%2022%207v10l-7-3.5z%22%2F%3E%3C%2Fsvg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%226%22%20width%3D%2213%22%20height%3D%2212%22%20rx%3D%223%22%2F%3E%3Cpath%20d%3D%22M15%2010.5%2022%207v10l-7-3.5z%22%2F%3E%3C%2Fsvg%3E")}
.bfx-schedule .bfx-i-chat::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M21%2015a2%202%200%200%201-2%202H7l-4%204V5a2%202%200%200%201%202-2h14a2%202%200%200%201%202%202z%22%2F%3E%3C%2Fsvg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M21%2015a2%202%200%200%201-2%202H7l-4%204V5a2%202%200%200%201%202-2h14a2%202%200%200%201%202%202z%22%2F%3E%3C%2Fsvg%3E")}
.bfx-schedule .bfx-btnwrap{display:block !important;text-align:center !important;margin:0 !important}
.bfx-schedule .bfx-btn{
  -webkit-appearance:none;appearance:none;
  display:flex !important;align-items:center !important;justify-content:center !important;gap:10px !important;
  width:100% !important;max-width:400px !important;min-height:58px;
  margin:0 auto !important;padding:14px 24px !important;border:0 !important;border-radius:14px !important;
  font-family:inherit !important;font-size:17px !important;font-weight:800 !important;
  line-height:1.3 !important;letter-spacing:.03em;text-align:center !important;
  text-decoration:none !important;text-shadow:none !important;cursor:pointer;-webkit-tap-highlight-color:transparent;
  transition:transform .15s ease, box-shadow .15s ease, background-image .15s ease;
}
.bfx-schedule .bfx-btn::before{width:21px;height:21px}
.bfx-schedule .bfx-btn::after{width:15px;height:15px;opacity:.8;-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%223%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m9%205%207%207-7%207%22%2F%3E%3C%2Fsvg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%223%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m9%205%207%207-7%207%22%2F%3E%3C%2Fsvg%3E")}
.bfx-schedule .bfx-btn:focus-visible{outline:3px solid var(--bfx-ring);outline-offset:3px}
.bfx-schedule .bfx-btn--primary,.bfx-schedule .bfx-btn--primary:visited{
  background-color:#2563eb !important;
  background-image:linear-gradient(180deg,#3b82f6 0%,#2563eb 100%) !important;
  color:#fff !important;
  box-shadow:0 6px 16px rgba(37,99,235,.28), inset 0 1px 0 rgba(255,255,255,.16) !important;
}
.bfx-schedule .bfx-btn--primary::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%226%22%20width%3D%2213%22%20height%3D%2212%22%20rx%3D%223%22%2F%3E%3Cpath%20d%3D%22M15%2010.5%2022%207v10l-7-3.5z%22%2F%3E%3C%2Fsvg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%226%22%20width%3D%2213%22%20height%3D%2212%22%20rx%3D%223%22%2F%3E%3Cpath%20d%3D%22M15%2010.5%2022%207v10l-7-3.5z%22%2F%3E%3C%2Fsvg%3E")}
.bfx-schedule .bfx-btn--primary:hover,.bfx-schedule .bfx-btn--primary:focus{
  background-image:linear-gradient(180deg,#2563eb 0%,#1e40af 100%) !important;color:#fff !important;transform:translateY(-2px);
  box-shadow:0 10px 22px rgba(37,99,235,.34), inset 0 1px 0 rgba(255,255,255,.16) !important;
}
.bfx-schedule .bfx-btn--primary:active{transform:translateY(0);box-shadow:0 3px 8px rgba(37,99,235,.30) !important}
.bfx-schedule .bfx-btn--ghost,.bfx-schedule .bfx-btn--ghost:visited{
  background-color:var(--bfx-surface) !important;background-image:none !important;color:var(--bfx-brand) !important;
  border:1.5px solid var(--bfx-brand) !important;box-shadow:none !important;font-size:16px !important;min-height:52px;
}
.bfx-schedule .bfx-btn--ghost::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%22%2F%3E%3Cpath%20d%3D%22M14%202v6h6%22%2F%3E%3Cpath%20d%3D%22M9%2013h6%22%2F%3E%3Cpath%20d%3D%22M9%2017h4%22%2F%3E%3C%2Fsvg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z%22%2F%3E%3Cpath%20d%3D%22M14%202v6h6%22%2F%3E%3Cpath%20d%3D%22M9%2013h6%22%2F%3E%3Cpath%20d%3D%22M9%2017h4%22%2F%3E%3C%2Fsvg%3E")}
.bfx-schedule .bfx-btn--ghost:hover,.bfx-schedule .bfx-btn--ghost:focus{background-color:var(--bfx-tint) !important;color:var(--bfx-brand-dk) !important;transform:translateY(-1px)}
.bfx-schedule .bfx-btn__caption{display:block !important;margin:10px 0 0 !important;text-align:center !important;font-size:12px !important;color:var(--bfx-muted);line-height:1.6 !important}
.bfx-schedule .bfx-meta{display:grid !important;gap:8px;margin:18px 0 0 !important}
.bfx-schedule .bfx-meta__row{
  display:flex !important;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 14px !important;background:var(--bfx-surface-2) !important;border:1px solid var(--bfx-line) !important;border-radius:10px;
}
.bfx-schedule .bfx-meta__k{font-size:13px !important;font-weight:700;color:var(--bfx-muted);flex:none;line-height:1.6 !important}
.bfx-schedule .bfx-meta__v{
  font-size:17px !important;font-weight:800;letter-spacing:.06em;color:var(--bfx-ink);
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere;text-align:right !important;line-height:1.6 !important;
}
.bfx-schedule .bfx-fallback{margin:12px 0 0 !important;font-size:12px !important;color:var(--bfx-muted);overflow-wrap:anywhere;text-align:center !important;line-height:1.7 !important}
.bfx-schedule .bfx-fallback a{color:var(--bfx-muted) !important;text-decoration:underline !important;font-weight:400 !important}
.bfx-schedule .bfx-note{
  display:flex !important;gap:8px;align-items:flex-start;
  margin:14px 0 0 !important;padding:12px 14px !important;border-radius:10px;
  background:var(--bfx-amber-tint) !important;border:1px solid var(--bfx-amber-line) !important;
  font-size:13.5px !important;color:var(--bfx-amber);font-weight:500;line-height:1.6 !important;text-align:left !important;
}
.bfx-schedule .bfx-note::before{
  width:16px;height:16px;margin-top:3px;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%208v5%22%2F%3E%3Cpath%20d%3D%22M12%2016.5v.01%22%2F%3E%3C%2Fsvg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%208v5%22%2F%3E%3Cpath%20d%3D%22M12%2016.5v.01%22%2F%3E%3C%2Fsvg%3E");
}
.bfx-schedule .bfx-note__t{line-height:1.6 !important;flex:1 1 auto}
.bfx-schedule .bfx-note strong{font-weight:800;color:inherit}
@media (max-width:600px){
  .bfx-schedule .bfx-head__title{font-size:22px !important}
  .bfx-schedule .bfx-head__title .mm,.bfx-schedule .bfx-head__title em{font-size:28px}
  .bfx-schedule .bfx-dates{grid-template-columns:repeat(2,1fr);gap:10px}
  .bfx-schedule .bfx-card{padding:14px 8px 12px !important}
  .bfx-schedule .bfx-card__date .d{font-size:30px !important}
  .bfx-schedule .bfx-panel{padding:18px 14px !important}
  .bfx-schedule .bfx-btn{font-size:16px !important;min-height:54px;padding:12px 18px !important}
  .bfx-schedule .bfx-meta__row{flex-direction:column;align-items:flex-start;gap:2px}
  .bfx-schedule .bfx-meta__v{text-align:left !important;font-size:16px !important}
}

/* 講義日程ブロック: 1回だけの月・説明文パネル（ONEスキル追加） */
.bfx-schedule .bfx-dates--single{grid-template-columns:minmax(0,280px) !important;justify-content:center}
.bfx-schedule .bfx-desc{
  margin:0 0 10px !important;font-size:14px !important;line-height:1.85 !important;
  color:var(--bfx-ink);text-align:left !important;
}
.bfx-schedule .bfx-desc:last-child{margin-bottom:0 !important}
.bfx-schedule .bfx-i-info::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%2011v5%22%2F%3E%3Cpath%20d%3D%22M12%207.5v.01%22%2F%3E%3C%2Fsvg%3E"); mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%2011v5%22%2F%3E%3Cpath%20d%3D%22M12%207.5v.01%22%2F%3E%3C%2Fsvg%3E")}
@media (max-width:600px){
  .bfx-schedule .bfx-dates--single{grid-template-columns:minmax(0,1fr) !important}
}
