/* style-bpf.css — BPFページ専用スタイル */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&family=Inter:wght@300;400;500;600&display=swap');

/* header.php / footer.php で直接BPFデザインを出力 */

/* CSS変数 */
.bpf-page {
    --bpf-black:#0A0A0A; --bpf-white:#FFFFFF; --bpf-gold:#C5A880;
    --bpf-gray:#555555;  --bpf-light:#F7F7F7;
    background:#FFFFFF!important; overflow-x:hidden;
}

/* ── BPF ヘッダー ── */
#bpf-header {
    position:fixed; top:0; left:0; right:0; z-index:9999;
    background:rgba(10,10,10,0.92); backdrop-filter:blur(8px);
    border-bottom:1px solid rgba(197,168,128,0.25);
}
.bpf-header-inner {
    max-width:1200px; margin:0 auto; padding:0 24px; height:64px;
    display:flex; align-items:center; justify-content:space-between; gap:16px;
}
.bpf-logo-wrap { display:flex; align-items:center; gap:16px; text-decoration:none; }
.bpf-logo-block { display:flex; flex-direction:column; gap:2px; }
.bpf-logo-en { font-family:'Playfair Display',serif; font-size:16px; font-weight:700; color:#FFF; letter-spacing:0.06em; line-height:1; }
.bpf-logo-ja { font-size:9px; color:#C5A880; letter-spacing:0.1em; line-height:1.3; }
.bpf-gov-badge { font-size:9px; line-height:1.4; color:#C5A880; font-weight:500; display:none; max-width:160px; }
.bpf-nav { display:flex; align-items:center; gap:28px; list-style:none; margin:0; padding:0; }
.bpf-nav a { font-size:12px; font-weight:500; color:rgba(255,255,255,0.75); text-decoration:none; letter-spacing:0.06em; transition:color 0.2s; }
.bpf-nav a:hover, .bpf-nav a.bpf-active { color:#C5A880; }
.bpf-oc-btn {
    display:inline-flex; align-items:center; justify-content:center;
    height:40px; padding:0 20px; background:#C5A880; color:#0A0A0A!important;
    font-size:10px; font-weight:600; letter-spacing:0.06em; text-decoration:none!important;
    white-space:nowrap; transition:background 0.2s;
}
.bpf-oc-btn:hover { background:#b5976e; }
#bpf-hamburger {
    display:none; flex-direction:column; gap:5px; width:28px;
    cursor:pointer; background:none; border:none; padding:0;
}
#bpf-hamburger span { display:block; height:2px; background:#FFF; border-radius:2px; }
#bpf-mobile-menu {
    display:none; position:fixed; top:64px; left:0; right:0;
    background:rgba(10,10,10,0.97); padding:24px; z-index:9998; flex-direction:column;
}
#bpf-mobile-menu a {
    display:block; color:rgba(255,255,255,0.8)!important; text-decoration:none!important;
    padding:16px 0; font-size:14px; letter-spacing:0.05em;
    border-bottom:1px solid rgba(255,255,255,0.08);
}
#bpf-mobile-menu a:hover { color:#C5A880!important; }
#bpf-mobile-menu .bpf-oc-btn { margin-top:20px; width:100%; height:52px; font-size:13px; justify-content:center; }
@media(max-width:768px) {
    .bpf-nav { display:none!important; }
    .bpf-oc-btn.bpf-header-btn { display:none!important; }
    #bpf-hamburger { display:flex; }
}
@media(min-width:769px) { .bpf-gov-badge { display:block; } }

/* ── メインコンテンツ共通 ── */
.site-main { margin-top:64px; font-family:'Noto Sans JP','Inter',sans-serif; color:#0A0A0A; line-height:1.75; }
.bpf-section { padding:80px 24px; }
.bpf-inner { max-width:1200px; margin:0 auto; }
.bpf-label { display:block; font-size:10px; font-weight:500; letter-spacing:0.22em; color:#C5A880; margin-bottom:12px; font-family:'Inter',sans-serif; }
.bpf-heading { font-family:'Noto Serif JP',serif; font-size:clamp(22px,3.5vw,36px); font-weight:700; color:#0A0A0A; line-height:1.5; margin-bottom:12px; }
.bpf-heading--white { color:#FFFFFF; }
.bpf-subtext { font-size:14px; color:#555; line-height:1.85; max-width:520px; }

/* ── ヒーロー ── */
.bpf-hero { position:relative; height:100svh; min-height:600px; overflow:hidden; }
.bpf-hero-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.bpf-hero-overlay { position:absolute; inset:0; background:linear-gradient(160deg,rgba(10,10,10,0.78) 0%,rgba(10,10,10,0.52) 50%,rgba(10,10,10,0.70) 100%); }
.bpf-hero-content { position:relative; z-index:2; height:100%; display:flex; flex-direction:column; justify-content:center; padding:80px 40px 48px; max-width:1200px; margin:0 auto; }
.bpf-hero-badges { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px; }
.bpf-hero-badge { display:inline-block; padding:5px 12px; border:1px solid rgba(197,168,128,0.6); color:#C5A880; font-size:10px; font-weight:500; letter-spacing:0.07em; background:rgba(10,10,10,0.4); }
.bpf-hero-heading { font-family:'Noto Serif JP',serif; font-size:clamp(28px,5vw,52px); font-weight:700; color:#FFF; line-height:1.45; margin-bottom:20px; max-width:720px; }
.bpf-hero-sub { font-size:clamp(13px,2vw,15px); color:rgba(255,255,255,0.75); line-height:1.8; max-width:480px; margin-bottom:36px; }
.bpf-hero-cta { display:flex; flex-wrap:wrap; gap:12px; }
.bpf-btn-primary { display:inline-flex; align-items:center; justify-content:center; height:52px; padding:0 32px; background:#C5A880; color:#0A0A0A!important; font-size:13px; font-weight:600; letter-spacing:0.07em; text-decoration:none!important; transition:background 0.2s; white-space:nowrap; }
.bpf-btn-primary:hover { background:#b5976e; }
.bpf-btn-outline { display:inline-flex; align-items:center; justify-content:center; height:52px; padding:0 32px; background:transparent; border:1px solid rgba(255,255,255,0.5); color:#FFF!important; font-size:13px; font-weight:500; letter-spacing:0.07em; text-decoration:none!important; transition:border-color 0.2s,color 0.2s; white-space:nowrap; }
.bpf-btn-outline:hover { border-color:#C5A880; color:#C5A880!important; }
.bpf-hero-scroll { position:absolute; bottom:32px; left:50%; transform:translateX(-50%); z-index:2; display:flex; flex-direction:column; align-items:center; gap:6px; color:rgba(255,255,255,0.45); font-size:9px; letter-spacing:0.15em; }
.bpf-scroll-line { width:1px; height:40px; background:linear-gradient(to bottom,rgba(197,168,128,0.7),transparent); animation:bpfScroll 2s ease-in-out infinite; }
@keyframes bpfScroll { 0%,100%{opacity:0.4} 50%{opacity:1} }

/* ── ギャラリー ── */
.bpf-gallery-section { background:#0A0A0A; padding:72px 24px; }
.bpf-gallery-grid { max-width:1200px; margin:0 auto; }
.bpf-gallery-top { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:8px; }
.bpf-gallery-bottom { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.bpf-gallery-item { position:relative; overflow:hidden; cursor:pointer; background:#111; }
.bpf-gallery-top .bpf-gallery-item { aspect-ratio:4/3; }
.bpf-gallery-bottom .bpf-gallery-item { aspect-ratio:21/9; }
.bpf-gallery-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform 0.5s; filter:brightness(0.88); }
.bpf-gallery-item:hover img { transform:scale(1.05); filter:brightness(1); }
.bpf-gallery-caption { position:absolute; bottom:0; left:0; right:0; padding:20px 16px 14px; background:linear-gradient(to top,rgba(10,10,10,0.85),transparent); color:rgba(255,255,255,0.9); font-size:12px; opacity:0; transform:translateY(4px); transition:opacity 0.3s,transform 0.3s; }
.bpf-gallery-item:hover .bpf-gallery-caption { opacity:1; transform:translateY(0); }
#bpf-lightbox { display:none; position:fixed; inset:0; z-index:99999; background:rgba(0,0,0,0.92); align-items:center; justify-content:center; padding:24px; }
#bpf-lightbox.open { display:flex; }
#bpf-lb-img { max-width:90vw; max-height:85vh; object-fit:contain; display:block; }
#bpf-lb-close { position:absolute; top:20px; right:24px; width:44px; height:44px; background:none; border:1px solid rgba(255,255,255,0.3); color:#FFF; font-size:22px; cursor:pointer; display:flex; align-items:center; justify-content:center; }
#bpf-lb-close:hover { border-color:#C5A880; color:#C5A880; }
@media(max-width:640px) {
    .bpf-gallery-top,.bpf-gallery-bottom { grid-template-columns:1fr; }
    .bpf-gallery-bottom .bpf-gallery-item { aspect-ratio:4/3; }
}

/* ── カリキュラムタブ ── */
.bpf-tab-bar { display:flex; border-bottom:2px solid #E0E0E0; margin-bottom:40px; margin-top:32px; list-style:none; padding:0; }
.bpf-tab-btn { padding:14px 24px; font-size:13px; font-weight:500; color:#555; background:none; border:none; cursor:pointer; border-bottom:3px solid transparent; margin-bottom:-2px; transition:color 0.2s,border-color 0.2s; white-space:nowrap; font-family:'Noto Sans JP',sans-serif; }
.bpf-tab-btn.bpf-active { color:#0A0A0A; border-bottom-color:#C5A880; }
.bpf-tab-btn:hover:not(.bpf-active) { color:#0A0A0A; }
.bpf-tab-panel { display:none; }
.bpf-tab-panel.bpf-active { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:24px; }
.bpf-feature-card { background:#FFF; padding:32px 28px; border-top:3px solid #C5A880; }
.bpf-feature-num { font-family:'Playfair Display',serif; font-size:36px; font-weight:400; color:rgba(197,168,128,0.35); line-height:1; margin-bottom:16px; }
.bpf-feature-title { font-family:'Noto Serif JP',serif; font-size:16px; font-weight:700; color:#0A0A0A; margin-bottom:10px; line-height:1.5; }
.bpf-feature-desc { font-size:13px; color:#555; line-height:1.85; }

/* ── FAQ ── */
.bpf-faq-list { max-width:720px; margin:40px auto 0; list-style:none; padding:0; }
.bpf-faq-item { border-bottom:1px solid #E8E8E8; }
.bpf-faq-item:first-child { border-top:1px solid #E8E8E8; }
.bpf-faq-q { width:100%; display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:20px 0; background:none; border:none; cursor:pointer; text-align:left; font-size:14px; font-weight:600; color:#0A0A0A; line-height:1.6; font-family:'Noto Sans JP',sans-serif; }
.bpf-faq-icon { width:22px; height:22px; flex-shrink:0; border:1px solid #C5A880; display:flex; align-items:center; justify-content:center; color:#C5A880; font-size:16px; transition:transform 0.25s; margin-top:2px; }
.bpf-faq-item.bpf-open .bpf-faq-icon { transform:rotate(45deg); }
.bpf-faq-a { display:none; padding:0 0 20px; font-size:13px; color:#555; line-height:1.9; }
.bpf-faq-item.bpf-open .bpf-faq-a { display:block; }

/* ── 入学願書 ── */
.bpf-admission-card { background:#FFF; border:1px solid #E8E8E8; border-top:3px solid #C5A880; padding:32px 36px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:24px; margin-top:36px; }
.bpf-admission-file { display:flex; align-items:center; gap:20px; }
.bpf-excel-icon { width:52px; height:52px; background:#1D6F42; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.bpf-admission-label { font-size:13px; font-weight:700; color:#0A0A0A; margin-bottom:4px; }
.bpf-admission-note { font-size:12px; color:#555; line-height:1.7; }
.bpf-dl-btn { display:inline-flex; align-items:center; gap:10px; height:52px; padding:0 28px; background:#0A0A0A; color:#FFF!important; font-size:13px; font-weight:600; letter-spacing:0.06em; text-decoration:none!important; white-space:nowrap; transition:background 0.2s,color 0.2s; }
.bpf-dl-btn:hover { background:#C5A880; color:#0A0A0A!important; }
.bpf-admission-footnote { margin-top:14px; font-size:11px; color:#888; line-height:1.8; }

/* ── CTAハブ ── */
.bpf-cta-section { background:#0A0A0A; padding:80px 24px; }
.bpf-cta-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px; margin-top:48px; }
.bpf-cta-card { background:rgba(255,255,255,0.04); border:1px solid rgba(197,168,128,0.25); padding:40px 32px; text-decoration:none!important; display:block; transition:border-color 0.25s,background 0.25s; }
.bpf-cta-card:hover { border-color:#C5A880; background:rgba(197,168,128,0.06); }
.bpf-cta-card-en { font-family:'Playfair Display',serif; font-size:11px; letter-spacing:0.2em; color:#C5A880; margin-bottom:14px; }
.bpf-cta-card-title { font-family:'Noto Serif JP',serif; font-size:20px; font-weight:700; color:#FFF; margin-bottom:12px; line-height:1.5; }
.bpf-cta-card-desc { font-size:12px; color:rgba(255,255,255,0.5); line-height:1.85; margin-bottom:24px; }
.bpf-cta-arrow { display:inline-flex; align-items:center; gap:10px; font-size:12px; font-weight:600; color:#C5A880; letter-spacing:0.07em; }

/* ── フォーム ── */
.bpf-form-wrap { max-width:720px; margin:48px auto 0; }
.bpf-form-group { margin-bottom:28px; }
.bpf-form-label { display:block; font-size:13px; font-weight:700; color:#0A0A0A; margin-bottom:8px; font-family:'Noto Sans JP',sans-serif; }
.bpf-form-label .bpf-required { font-size:10px; color:#e00; margin-left:6px; font-weight:600; }
.bpf-form-input,.bpf-form-select,.bpf-form-textarea { width:100%; border:1px solid rgba(10,10,10,0.2); padding:14px 16px; font-size:14px; color:#0A0A0A; background:#FFF; font-family:'Noto Sans JP',sans-serif; line-height:1.5; min-height:52px; transition:border-color 0.2s; -webkit-appearance:none; border-radius:0; outline:none; }
.bpf-form-input:focus,.bpf-form-select:focus,.bpf-form-textarea:focus { border-color:#C5A880; }
.bpf-form-textarea { min-height:160px; resize:vertical; }
.bpf-radio-group { display:flex; flex-wrap:wrap; gap:16px; }
.bpf-radio-label,.bpf-checkbox-label { display:flex; align-items:center; gap:8px; font-size:14px; color:#0A0A0A; cursor:pointer; font-family:'Noto Sans JP',sans-serif; }
.bpf-checkbox-label { align-items:flex-start; font-size:12px; color:#555; line-height:1.8; }
.bpf-radio-label input,.bpf-checkbox-label input { accent-color:#0A0A0A; width:16px; height:16px; flex-shrink:0; }
.bpf-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media(max-width:560px) { .bpf-form-grid { grid-template-columns:1fr; } }
.bpf-privacy-box { background:#F7F7F7; border:1px solid rgba(10,10,10,0.1); padding:20px; margin-bottom:28px; }
.bpf-submit-btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; height:60px; padding:0 48px; background:#0A0A0A; color:#FFF!important; font-size:14px; font-weight:700; letter-spacing:0.1em; border:none; cursor:pointer; font-family:'Noto Sans JP',sans-serif; transition:background 0.2s; min-width:280px; }
.bpf-submit-btn:hover { background:#C5A880; color:#0A0A0A!important; }
.bpf-form-center { text-align:center; }

/* ── 電話ブロック ── */
.bpf-tel-block { background:#0A0A0A; color:#FFF; padding:40px 32px; text-align:center; margin-bottom:48px; }
.bpf-tel-label { font-size:10px; letter-spacing:0.2em; color:#C5A880; font-weight:700; margin-bottom:8px; }
.bpf-tel-title { font-family:'Noto Serif JP',serif; font-size:18px; font-weight:700; margin-bottom:12px; }
.bpf-tel-num { font-family:'Playfair Display',serif; font-size:36px; font-weight:700; color:#C5A880; letter-spacing:0.05em; text-decoration:none!important; display:inline-block; }
.bpf-tel-num:hover { color:#FFF; }
.bpf-tel-hours { font-size:12px; color:rgba(255,255,255,0.5); margin-top:8px; }

/* ── アバウト ── */
.bpf-message-grid { display:grid; grid-template-columns:5fr 7fr; gap:48px; align-items:start; }
@media(max-width:768px) { .bpf-message-grid { grid-template-columns:1fr; } }
.bpf-profile-card { background:#F7F7F7; padding:32px; border:1px solid rgba(10,10,10,0.1); }
.bpf-profile-icon { width:56px; height:56px; background:#0A0A0A; color:#C5A880; display:flex; align-items:center; justify-content:center; font-family:'Playfair Display',serif; font-size:16px; font-weight:700; margin-bottom:20px; }
.bpf-profile-role { font-size:10px; letter-spacing:0.15em; color:#555; margin-bottom:4px; }
.bpf-profile-name { font-family:'Noto Serif JP',serif; font-size:22px; font-weight:700; color:#0A0A0A; margin-bottom:12px; }
.bpf-profile-bio { font-size:12px; color:#555; line-height:1.85; margin-bottom:20px; padding-bottom:20px; border-bottom:1px solid rgba(10,10,10,0.1); }
.bpf-profile-promise { font-size:12px; font-weight:700; color:#C5A880; }
.bpf-quote-block { background:#0A0A0A; border-left:4px solid #C5A880; padding:24px; margin-top:20px; }
.bpf-quote-text { font-family:'Playfair Display',serif; font-style:italic; font-size:14px; color:rgba(255,255,255,0.85); line-height:1.8; }
.bpf-message-body { font-size:14px; color:#555; line-height:2; }
.bpf-message-body h3 { font-family:'Noto Serif JP',serif; font-size:18px; font-weight:700; color:#0A0A0A; border-left:3px solid #C5A880; padding-left:16px; line-height:1.6; margin-bottom:16px; }
.bpf-message-body p { margin-bottom:20px; }
.bpf-message-body strong { color:#0A0A0A; font-weight:700; }
.bpf-message-body .bpf-highlight { background:#F7F7F7; border-left:4px solid #0A0A0A; padding:20px 24px; margin:20px 0; }
.bpf-pillar-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:24px; margin-top:48px; }
.bpf-pillar-card { background:#FFF; border:1px solid rgba(10,10,10,0.1); border-top:3px solid #C5A880; padding:32px 28px; }
.bpf-pillar-num { width:44px; height:44px; background:#0A0A0A; color:#C5A880; display:flex; align-items:center; justify-content:center; font-family:'Playfair Display',serif; font-size:18px; font-weight:700; margin-bottom:20px; }
.bpf-pillar-title { font-family:'Noto Serif JP',serif; font-size:16px; font-weight:700; color:#0A0A0A; margin-bottom:12px; line-height:1.5; }
.bpf-pillar-desc { font-size:13px; color:#555; line-height:1.85; margin-bottom:16px; }
.bpf-pillar-tag { font-size:11px; font-weight:700; color:#C5A880; border-top:1px solid rgba(10,10,10,0.1); padding-top:16px; }
.bpf-outline-grid { display:grid; grid-template-columns:7fr 5fr; gap:32px; margin-top:48px; }
@media(max-width:768px) { .bpf-outline-grid { grid-template-columns:1fr; } }
.bpf-table-wrap { background:#F7F7F7; padding:32px; border:1px solid rgba(10,10,10,0.1); }
.bpf-table-title { font-family:'Noto Serif JP',serif; font-size:18px; font-weight:700; margin-bottom:20px; padding-bottom:12px; border-bottom:1px solid rgba(10,10,10,0.1); }
.bpf-data-table { width:100%; border-collapse:collapse; font-size:13px; }
.bpf-data-table tr { border-bottom:1px solid rgba(10,10,10,0.08); }
.bpf-data-table th,.bpf-data-table td { padding:14px 8px; text-align:left; }
.bpf-data-table th { font-weight:700; width:36%; color:#0A0A0A; }
.bpf-data-table td { color:#555; }
.bpf-access-card { background:#0A0A0A; color:#FFF; padding:32px; display:flex; flex-direction:column; justify-content:space-between; }
.bpf-access-label { font-size:10px; letter-spacing:0.18em; color:#C5A880; font-weight:700; margin-bottom:12px; }
.bpf-access-title { font-family:'Noto Serif JP',serif; font-size:18px; font-weight:700; margin-bottom:12px; }
.bpf-access-addr { font-size:12px; color:rgba(255,255,255,0.7); line-height:1.9; margin-bottom:24px; }
.bpf-map-btn { display:flex; align-items:center; justify-content:center; gap:8px; background:#FFF; color:#0A0A0A!important; font-size:12px; font-weight:700; padding:14px; text-decoration:none!important; transition:background 0.2s; margin-bottom:12px; letter-spacing:0.05em; }
.bpf-map-btn:hover { background:#C5A880; }
.bpf-consult-btn { display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,0.3); color:#FFF!important; font-size:12px; font-weight:700; padding:14px; text-decoration:none!important; transition:border-color 0.2s,color 0.2s; letter-spacing:0.05em; }
.bpf-consult-btn:hover { border-color:#C5A880; color:#C5A880!important; }

/* ── OCプログラムカード ── */
.bpf-program-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:24px; margin-top:48px; }
.bpf-program-card { background:#F7F7F7; padding:32px 28px; border-top:4px solid #C5A880; display:flex; flex-direction:column; }
.bpf-program-card--dark { border-top-color:#0A0A0A; }
.bpf-program-num { width:44px; height:44px; background:#0A0A0A; color:#C5A880; display:flex; align-items:center; justify-content:center; font-family:'Playfair Display',serif; font-size:18px; font-weight:700; margin-bottom:20px; }
.bpf-program-card--dark .bpf-program-num { background:#C5A880; color:#0A0A0A; }
.bpf-program-title { font-family:'Noto Serif JP',serif; font-size:18px; font-weight:700; color:#0A0A0A; margin-bottom:12px; }
.bpf-program-desc { font-size:13px; color:#555; line-height:1.85; flex-grow:1; margin-bottom:16px; }
.bpf-program-time { font-size:12px; font-weight:700; color:#C5A880; border-top:1px solid rgba(10,10,10,0.1); padding-top:14px; }

/* ── BPFフッター ── */
#bpf-footer { background:#0A0A0A; color:#FFF; padding:56px 24px 32px; border-top:1px solid rgba(255,255,255,0.08); }
.bpf-footer-inner { max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr 1fr; gap:40px; }
.bpf-footer-logo-en { font-family:'Playfair Display',serif; font-size:18px; font-weight:700; color:#FFF; letter-spacing:0.06em; margin-bottom:4px; }
.bpf-footer-logo-ja { font-size:9px; color:#C5A880; letter-spacing:0.1em; }
.bpf-footer-col-title { font-size:10px; font-weight:600; letter-spacing:0.15em; color:#C5A880; margin-bottom:14px; }
.bpf-footer-col p,.bpf-footer-col address { font-size:12px; color:rgba(255,255,255,0.5); line-height:1.9; font-style:normal; }
.bpf-footer-col a { color:rgba(255,255,255,0.5)!important; text-decoration:none!important; }
.bpf-footer-col a:hover { color:#C5A880!important; }
.bpf-footer-nav { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.bpf-footer-nav a { font-size:12px; color:rgba(255,255,255,0.5)!important; text-decoration:none!important; transition:color 0.2s; }
.bpf-footer-nav a:hover { color:#C5A880!important; }
.bpf-footer-copy { max-width:1200px; margin:40px auto 0; padding-top:24px; border-top:1px solid rgba(255,255,255,0.06); font-size:11px; color:rgba(255,255,255,0.25); letter-spacing:0.06em; }
@media(max-width:640px) {
    .bpf-footer-inner { grid-template-columns:1fr; gap:28px; }
    .bpf-section { padding:56px 20px; }
}

/* ── アクセシビリティ ── */
.bpf-page *:focus-visible { outline:2px solid #C5A880; outline-offset:3px; }
