/*
Theme Name: Cocoon Child
Template: cocoon-master
Version: 1.0.6
Description: tabitokuclub.com カスタムデザイン
*/

/* ===== Google Fonts（親テーマのfunctions.phpで読み込む場合は不要） ===== */

:root {
  --navy:#0a1628; --mid-blue:#1a3a6b; --sky:#4a9eff;
  --gold:#e8c44a; --gold-light:#f5e08a; --cream:#fdf8ef;
  --text:#1a1a2e; --muted:#5a6a8a; --white:#ffffff;
  --red:#e74c3c; --green:#27ae60; --orange:#e67e22; --purple:#2d1060;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { background:#0a1628; overflow-x:hidden; }
body { font-family:'Noto Sans JP',sans-serif; background:var(--cream); color:var(--text); line-height:1.9; overflow-x:hidden; max-width:100vw; font-size:16px !important; }

/* ===== ヘッダー ===== */
header { background:var(--navy); position:sticky; top:0; z-index:200; box-shadow:0 2px 20px rgba(0,0,0,0.4); }
.header-inner { max-width:1100px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:14px 20px; flex-wrap:wrap; gap:8px; }
.logo { font-family:'DM Serif Display',serif; color:var(--gold); font-size:1.5rem; cursor:pointer; display:flex; align-items:center; gap:8px; white-space:nowrap; }
.logo span { color:rgba(255,255,255,0.6); font-size:0.75rem; font-family:'Noto Sans JP',sans-serif; font-weight:400; white-space:nowrap; }
nav { display:flex; gap:4px; flex-wrap:wrap; }
nav button { color:rgba(255,255,255,0.75); background:none; border:none; font-size:0.78rem; padding:6px 12px; border-radius:20px; cursor:pointer; font-family:inherit; transition:all 0.2s; }
nav button:hover { background:rgba(255,255,255,0.1); color:white; }
nav button.active { background:var(--gold); color:var(--navy); font-weight:700; }

/* ===== モーダル ===== */
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.75); z-index:1000; align-items:center; justify-content:center; padding:20px; backdrop-filter:blur(4px); }
.modal-overlay.open { display:flex; }
.modal { background:var(--cream); border-radius:20px; max-width:680px; width:100%; max-height:90vh; overflow-y:auto; animation:modalIn 0.3s ease; }
@keyframes modalIn { from{opacity:0;transform:translateY(24px) scale(0.97)} to{opacity:1;transform:translateY(0) scale(1)} }
.modal-close-bar { position:sticky; top:0; display:flex; justify-content:flex-end; padding:14px 18px 0; background:var(--cream); z-index:1; }
.modal-close-bar button { background:rgba(0,0,0,0.08); border:none; border-radius:50%; width:34px; height:34px; cursor:pointer; font-size:1rem; }
.modal-header { background:linear-gradient(135deg,var(--navy),var(--mid-blue)); color:white; padding:28px 36px 24px; margin:0 14px; border-radius:14px; }
.modal-tag { display:inline-block; background:rgba(232,196,74,0.2); border:1px solid rgba(232,196,74,0.4); color:var(--gold-light); font-size:0.7rem; padding:3px 12px; border-radius:20px; margin-bottom:12px; letter-spacing:0.1em; }
.modal-header h2 { font-family:'Noto Serif JP',serif; font-size:clamp(1.2rem,4vw,1.7rem); font-weight:900; line-height:1.5; }
.modal-header h2 em { color:var(--gold); font-style:normal; }
.modal-body { padding:24px 36px 36px; }
.modal-text { font-size:1rem; line-height:2.1; }
.modal-text p { margin-bottom:16px; }
.modal-text strong { color:var(--navy); }
.big-quote { font-family:'Noto Serif JP',serif; font-size:1.2rem; font-weight:700; color:var(--navy); border-left:4px solid var(--gold); padding:14px 20px; background:rgba(232,196,74,0.08); border-radius:0 10px 10px 0; margin:20px 0; line-height:2; }
.note-box { background:rgba(232,196,74,0.1); border:1px solid rgba(232,196,74,0.35); border-radius:10px; padding:12px 16px; font-size:0.92rem; color:#7a5a00; line-height:1.9; margin:12px 0; }
.info-box2 { background:rgba(74,158,255,0.06); border:1px solid rgba(74,158,255,0.2); border-radius:12px; padding:18px 22px; margin:16px 0; font-size:0.95rem; color:#2a4a7a; line-height:1.9; }
.info-box2 h4 { font-weight:700; margin-bottom:6px; }
.flow-step { display:flex; gap:12px; align-items:flex-start; background:white; border-radius:12px; padding:14px 18px; margin-bottom:12px; box-shadow:0 2px 10px rgba(0,0,0,0.05); }
.flow-num { width:32px; height:32px; background:var(--navy); color:var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:0.85rem; flex-shrink:0; }
.flow-body strong { color:var(--navy); display:block; margin-bottom:3px; font-size:1rem; }
.flow-body span { font-size:0.93rem; color:var(--muted); }
.modal-cta { background:linear-gradient(135deg,var(--navy),var(--mid-blue)); border-radius:14px; padding:22px 24px; text-align:center; margin-top:24px; }
.modal-cta p { color:rgba(255,255,255,0.7); font-size:0.86rem; margin-bottom:14px; }
.modal-cta-row { display:flex; gap:10px; justify-content:center; }
.modal-cta-row .btn-next, .modal-cta-row .btn-back { flex:1; max-width:300px; padding:13px 14px; border-radius:50px; font-weight:700; font-size:0.85rem; cursor:pointer; font-family:inherit; transition:all 0.3s; line-height:1.4; text-align:center; }
.modal-cta-row .btn-next { background:linear-gradient(135deg,var(--gold),#d4a820); color:var(--navy); border:none; box-shadow:0 6px 20px rgba(232,196,74,0.4); }
.modal-cta-row .btn-next:hover { transform:translateY(-2px); }
.modal-cta-row .btn-back { background:none; border:1px solid rgba(255,255,255,0.3); color:rgba(255,255,255,0.75); box-shadow:none; }
.modal-cta-row .btn-back:hover { background:rgba(255,255,255,0.08); color:#fff; transform:translateY(-2px); }

/* ===== 会話吹き出し ===== */
.chat-wrap { display:flex; gap:10px; align-items:flex-start; margin:14px 0; }
.chat-wrap.right { flex-direction:row-reverse; }
.chat-avatar { flex-shrink:0; display:flex; flex-direction:column; align-items:center; gap:3px; }
.chat-avatar img, .chat-avatar .avatar-emoji { width:80px; height:80px; min-width:80px; min-height:80px; border-radius:50%; object-fit:cover; display:block; flex-shrink:0; }
.chat-avatar .avatar-emoji { background:linear-gradient(135deg,var(--navy),var(--mid-blue)); display:flex; align-items:center; justify-content:center; font-size:1.3rem; }
.chat-avatar.right .avatar-emoji { background:linear-gradient(135deg,#e8c44a,#b8900a); }
.chat-avatar span { font-size:0.65rem; color:var(--muted); text-align:center; }
.chat-bubble { position:relative; padding:12px 16px; border-radius:12px; font-size:1rem; line-height:1.85; max-width:calc(100% - 64px); }
.chat-bubble.reader { background:#f0f4ff; border:1px solid #d0dcf5; color:#2a3a5a; border-radius:4px 12px 12px 12px; }
.chat-bubble.admin { background:linear-gradient(135deg,#fffdf0,#fff8e0); border:1px solid rgba(232,196,74,0.4); color:#4a3800; border-radius:12px 4px 12px 12px; }
.chat-bubble strong { color:var(--navy); }

/* ===== HERO共通 ===== */
.hero { padding:60px 24px 50px; text-align:center; position:relative; overflow:hidden; }
.hero-badge { display:inline-block; background:rgba(232,196,74,0.15); border:1px solid rgba(232,196,74,0.4); color:var(--gold-light); font-size:0.78rem; padding:5px 16px; border-radius:20px; margin-bottom:16px; }
.hero h1 { font-family:'Noto Serif JP',serif; font-size:clamp(1.7rem,5vw,2.7rem); color:white; line-height:1.5; font-weight:900; margin-bottom:14px; }
.hero h1 em { color:var(--gold); font-style:normal; }
.hero p { color:rgba(255,255,255,0.7); font-size:1rem; line-height:1.9; margin-bottom:28px; }
.hero-navy { background:linear-gradient(135deg,var(--navy),var(--mid-blue)); }
.hero-purple { background:linear-gradient(135deg,#0a0420,var(--purple),#1a0a40); }
.hero-green { background:linear-gradient(135deg,#0a2a1a,#1a5a3a,#0a3a20); }
.hero-stars { position:absolute; inset:0; overflow:hidden; pointer-events:none; }
.hero-star { position:absolute; background:white; border-radius:50%; animation:twinkle 3s infinite alternate; }
.hero-star { position:absolute; background:white; border-radius:50%; animation:twinkle 3s infinite alternate; }
@keyframes twinkle { 0%{opacity:0.2} 100%{opacity:0.9} }
.airplane { position:absolute; font-size:2.2rem; animation:fly 12s linear infinite; z-index:0; }
@keyframes fly { 0%{left:-80px;top:35%;opacity:0} 5%{opacity:1} 95%{opacity:1} 100%{left:110%;top:20%;opacity:0} }
.hero-stats { display:flex; justify-content:center; gap:36px; margin-top:44px; padding-top:36px; border-top:1px solid rgba(255,255,255,0.1); flex-wrap:wrap; }
.stat-num { font-family:'DM Serif Display',serif; font-size:1.9rem; color:var(--gold); display:block; }
.stat-label { color:rgba(255,255,255,0.5); font-size:0.76rem; margin-top:3px; }

/* ===== コンテンツ共通 ===== */
.wrap { max-width:900px; margin:0 auto; padding:0 20px; }
.section { padding:36px 0; border-bottom:1px solid rgba(0,0,0,0.07); }
.section:last-child { border-bottom:none; }
.section-tag { display:inline-block; color:white; font-size:0.7rem; font-weight:700; padding:3px 12px; border-radius:4px; letter-spacing:0.1em; margin-bottom:10px; }
.section-tag.blue { background:var(--sky); }
.section-tag.gold { background:linear-gradient(135deg,#b8900a,var(--gold)); }
.section-tag.green { background:var(--green); }
.section-tag.red { background:var(--red); }
.section-title { font-family:'Noto Serif JP',serif; font-size:clamp(1.2rem,3vw,1.7rem); font-weight:900; color:var(--navy); margin-bottom:8px; line-height:1.5; }
.section-lead { color:var(--muted); font-size:1rem; line-height:1.9; margin-bottom:28px; }

/* ===== STEPリスト ===== */
.steps { display:flex; flex-direction:column; }
.step { display:flex; }
.step-left { display:flex; flex-direction:column; align-items:center; width:56px; flex-shrink:0; }
.step-num { width:46px; height:46px; background:var(--navy); color:var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'DM Serif Display',serif; font-size:1rem; box-shadow:0 4px 14px rgba(10,22,40,0.3); flex-shrink:0; }
.step-line { flex:1; width:2px; background:linear-gradient(to bottom,var(--navy),rgba(10,22,40,0.1)); margin:5px 0; min-height:36px; }
.step:last-child .step-line { display:none; }
.step-body { flex:1; background:white; border-radius:14px; padding:20px 24px; margin-left:14px; margin-bottom:18px; box-shadow:0 4px 18px rgba(0,0,0,0.06); border:1px solid rgba(0,0,0,0.05); transition:transform 0.2s,box-shadow 0.2s; }
.step-body:hover { transform:translateY(-2px); box-shadow:0 8px 28px rgba(0,0,0,0.1); }
.step-body.highlight { border:2px solid var(--gold); background:linear-gradient(135deg,#fffdf0,#fff); }
.step-body h3 { font-family:'Noto Serif JP',serif; font-size:1.05rem; font-weight:700; color:var(--navy); margin-bottom:7px; }
.step-body.highlight h3 { color:#7a5a00; }
.step-body p { color:var(--muted); font-size:0.97rem; line-height:1.9; }
.step-btn { display:inline-flex; align-items:center; gap:5px; color:var(--sky); font-size:0.84rem; font-weight:700; margin-top:10px; background:none; border:none; cursor:pointer; font-family:inherit; padding:0; }
.step-btn:hover { text-decoration:underline; }

/* ===== ダイバー ===== */
.divider { background:var(--navy); color:white; text-align:center; padding:44px 24px; }
.divider h2 { font-family:'Noto Serif JP',serif; font-size:clamp(1.2rem,3vw,1.6rem); font-weight:900; margin-bottom:8px; }
.divider h2 em { color:var(--gold); font-style:normal; }
.divider p { color:rgba(255,255,255,0.55); font-size:0.88rem; }

/* ===== 記事カード ===== */
.articles-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:18px; margin-top:8px; }
.article-card { background:white; border-radius:14px; overflow:hidden; box-shadow:0 4px 18px rgba(0,0,0,0.07); cursor:pointer; transition:transform 0.2s,box-shadow 0.2s; border:1px solid rgba(0,0,0,0.05); }
.article-card:hover { transform:translateY(-4px); box-shadow:0 12px 32px rgba(0,0,0,0.13); }
.card-thumb { height:120px; display:flex; align-items:center; justify-content:center; font-size:2.8rem; }
.card-thumb.blue { background:linear-gradient(135deg,#1a3a6b,#4a9eff); }
.card-thumb.gold { background:linear-gradient(135deg,#7a5a00,#e8c44a); }
.card-thumb.green { background:linear-gradient(135deg,#0a4a2a,#2ecc71); }
.card-thumb.coral { background:linear-gradient(135deg,#6a1a0a,#e74c3c); }
.card-body { padding:16px 18px 18px; }
.card-tag { font-size:0.68rem; font-weight:700; color:var(--sky); letter-spacing:0.08em; margin-bottom:5px; }
.card-body h3 { font-family:'Noto Serif JP',serif; font-size:0.92rem; font-weight:700; color:var(--navy); line-height:1.5; margin-bottom:6px; }
.card-body p { color:var(--muted); font-size:0.78rem; line-height:1.7; }

/* ===== マリオットCTA ===== */
.marriott-cta { background:linear-gradient(135deg,#1a0a2e,var(--purple),#1a0a40); padding:60px 24px; text-align:center; }
.marriott-cta h2 { font-family:'Noto Serif JP',serif; font-size:clamp(1.3rem,3.5vw,1.9rem); font-weight:900; color:white; margin-bottom:14px; line-height:1.6; }
.marriott-cta h2 em { color:var(--gold); font-style:normal; }
.marriott-cta .sub { color:rgba(255,255,255,0.65); font-size:0.9rem; line-height:1.8; margin-bottom:10px; }
.benefits { display:flex; justify-content:center; gap:10px; flex-wrap:wrap; margin:22px 0 28px; }
.benefit-pill { background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.15); color:rgba(255,255,255,0.85); padding:7px 16px; border-radius:28px; font-size:0.82rem; }
.marriott-btn { background:linear-gradient(135deg,var(--gold),#d4a820); color:var(--navy); border:none; padding:17px 42px; border-radius:50px; font-weight:700; font-size:1rem; cursor:pointer; font-family:inherit; box-shadow:0 8px 28px rgba(232,196,74,0.45); transition:all 0.3s; display:inline-block; margin:20px 0; text-decoration:none; }
.marriott-btn:hover { transform:translateY(-3px); }
.marriott-note { color:rgba(255,255,255,0.35); font-size:0.74rem; margin-top:12px; }

/* ===== プロフィール ===== */
.avatar { width:110px; height:110px; border-radius:50%; background:linear-gradient(135deg,var(--gold),#b8900a); display:flex; align-items:center; justify-content:center; font-size:3rem; margin:0 auto 18px; box-shadow:0 8px 28px rgba(232,196,74,0.4); }
.hero-tags { display:flex; justify-content:center; gap:8px; flex-wrap:wrap; margin-top:14px; }
.tag { background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.2); color:rgba(255,255,255,0.8); padding:4px 13px; border-radius:20px; font-size:0.76rem; }
.achievement-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:14px; margin:22px 0; }
.achievement-card { background:white; border-radius:14px; padding:18px; text-align:center; box-shadow:0 3px 14px rgba(0,0,0,0.07); }
.achievement-card .icon { font-size:1.8rem; margin-bottom:7px; }
.achievement-card .num { font-family:'DM Serif Display',serif; font-size:1.5rem; color:var(--navy); display:block; }
.achievement-card .label { font-size:0.75rem; color:var(--muted); margin-top:3px; }
.achievement-card .sub-label { font-size:0.68rem; color:var(--muted); margin-top:2px; }
.story { font-size:1rem; line-height:2.1; }
.story p { margin-bottom:16px; }
.story strong { color:var(--navy); }
.promise-item { display:flex; gap:13px; align-items:flex-start; background:white; border-radius:12px; padding:15px 18px; margin-bottom:12px; box-shadow:0 2px 10px rgba(0,0,0,0.05); }
.promise-item h4 { font-weight:700; color:var(--navy); margin-bottom:3px; font-size:0.9rem; }
.promise-item p { font-size:0.92rem; color:var(--muted); line-height:1.8; }

/* ===== お問い合わせ ===== */
.form-wrap { background:white; border-radius:18px; padding:32px; box-shadow:0 6px 28px rgba(0,0,0,0.08); margin-top:24px; }
.form-group { margin-bottom:20px; }
.form-label { display:block; font-weight:700; color:var(--navy); font-size:0.88rem; margin-bottom:7px; }
.req { color:var(--red); font-size:0.72rem; margin-left:6px; }
.form-input, .form-select, .form-textarea { width:100%; padding:11px 15px; border:1px solid rgba(0,0,0,0.15); border-radius:10px; font-size:0.88rem; font-family:inherit; color:var(--text); background:#f0f4f8; outline:none; transition:border-color 0.2s,box-shadow 0.2s; }
.form-input:focus, .form-select:focus, .form-textarea:focus { border-color:var(--sky); box-shadow:0 0 0 3px rgba(74,158,255,0.15); background:white; }
.form-textarea { min-height:110px; resize:vertical; line-height:1.7; }
.form-hint { font-size:0.76rem; color:var(--muted); margin-top:5px; }
.submit-btn { width:100%; padding:15px; background:linear-gradient(135deg,var(--gold),#d4a820); color:var(--navy); border:none; border-radius:12px; font-weight:700; font-size:0.97rem; cursor:pointer; font-family:inherit; box-shadow:0 6px 20px rgba(232,196,74,0.4); transition:all 0.3s; }
.submit-btn:hover { transform:translateY(-2px); }
.success-msg { display:none; background:rgba(39,174,96,0.1); border:1px solid rgba(39,174,96,0.3); border-radius:14px; padding:22px; text-align:center; margin-top:18px; }
.success-msg.show { display:block; }

/* ===== サイトマップ ===== */
.sitemap-section { margin-bottom:36px; }
.sitemap-section h2 { font-family:'Noto Serif JP',serif; font-size:1.05rem; font-weight:700; color:var(--navy); margin-bottom:12px; padding:10px 15px; background:rgba(10,22,40,0.05); border-left:4px solid var(--navy); border-radius:0 8px 8px 0; }
.sitemap-list { display:flex; flex-direction:column; gap:7px; }
.sitemap-item { display:flex; align-items:flex-start; gap:13px; background:white; border-radius:12px; padding:13px 17px; box-shadow:0 2px 10px rgba(0,0,0,0.05); cursor:pointer; transition:transform 0.2s,background 0.2s; border:1px solid rgba(0,0,0,0.05); }
.sitemap-item:hover { transform:translateX(4px); background:rgba(74,158,255,0.05); }
.sitemap-item .si-icon { font-size:1.1rem; flex-shrink:0; margin-top:2px; }
.sitemap-item h3 { font-size:0.9rem; font-weight:700; color:var(--navy); margin-bottom:2px; }
.sitemap-item p { font-size:0.78rem; color:var(--muted); line-height:1.6; }
.sbadge { display:inline-block; font-size:0.67rem; font-weight:700; padding:2px 7px; border-radius:3px; margin-left:7px; vertical-align:middle; }
.sbadge-gold { background:linear-gradient(135deg,#b8900a,var(--gold)); color:var(--navy); }
.sbadge-green { background:var(--green); color:white; }

/* ===== 記事ページ ===== */
.article-hero { padding:44px 24px 36px; }
.article-meta { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
.ameta { font-size:0.7rem; font-weight:700; padding:3px 11px; border-radius:4px; color:white; }
.article-lead { color:rgba(255,255,255,0.7); font-size:1rem; line-height:1.9; margin-bottom:18px; }
.author-bar { display:flex; align-items:center; gap:12px; border-top:1px solid rgba(255,255,255,0.1); padding-top:14px; }
.author-icon { width:38px; height:38px; background:linear-gradient(135deg,var(--gold),#b8900a); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.1rem; flex-shrink:0; }
.author-info { font-size:0.78rem; color:rgba(255,255,255,0.65); }
.author-info strong { color:white; display:block; }
.article-wrap { max-width:780px; margin:0 auto; padding:0 20px 60px; }
.result-box { background:linear-gradient(135deg,#fffdf0,#fff); border:2px solid rgba(232,196,74,0.5); border-radius:14px; padding:20px 24px; margin:28px 0; }
.result-box h4 { font-family:'Noto Serif JP',serif; font-weight:700; color:#7a5a00; margin-bottom:8px; font-size:0.97rem; }
.result-box li { font-size:0.93rem; color:#6a5000; line-height:1.9; }
.result-box ul { padding-left:1.2em; }
.toc { background:white; border-radius:14px; padding:22px 26px; margin:24px 0; box-shadow:0 4px 18px rgba(0,0,0,0.07); }
.toc h3 { font-family:'Noto Serif JP',serif; font-size:0.97rem; font-weight:700; color:var(--navy); margin-bottom:12px; }
.toc ol { padding-left:1.3em; }
.toc li { margin-bottom:5px; }
.toc a { color:var(--sky); font-size:0.93rem; text-decoration:none; }
.abody { font-size:1rem; line-height:2; }
.abody p { margin-bottom:16px; }
.abody h2 { font-family:'Noto Serif JP',serif; font-size:1.2rem; font-weight:900; color:var(--navy); margin:36px 0 14px; padding:12px 18px; background:linear-gradient(135deg,rgba(10,22,40,0.06),rgba(26,58,107,0.04)); border-left:4px solid var(--navy); border-radius:0 10px 10px 0; }
.abody h3 { font-family:'Noto Serif JP',serif; font-size:1rem; font-weight:700; color:var(--mid-blue); margin:24px 0 10px; padding-bottom:5px; border-bottom:2px solid rgba(74,158,255,0.2); }
.abody strong { color:var(--navy); }
.abody ul { padding-left:1.3em; margin-bottom:14px; }
.abody li { margin-bottom:5px; }
.danger-box { background:rgba(231,76,60,0.06); border:1px solid rgba(231,76,60,0.3); border-radius:12px; padding:18px 22px; margin:18px 0; }
.danger-box h4 { font-weight:700; color:#c0392b; margin-bottom:7px; font-size:0.9rem; }
.danger-box ul { font-size:0.93rem; color:#7a3030; line-height:1.8; padding-left:1.2em; }
.safe-box { background:rgba(39,174,96,0.06); border:1px solid rgba(39,174,96,0.3); border-radius:12px; padding:18px 22px; margin:18px 0; }
.safe-box h4 { font-weight:700; color:#1e8449; margin-bottom:7px; font-size:0.9rem; }
.safe-box p { font-size:0.93rem; color:#1a5c30; line-height:1.9; }
.check-list { display:flex; flex-direction:column; gap:9px; margin:18px 0; }
.check-item { display:flex; gap:12px; align-items:flex-start; background:white; border-radius:11px; padding:13px 17px; box-shadow:0 2px 8px rgba(0,0,0,0.05); }
.check-item h4 { font-weight:700; color:var(--navy); font-size:0.95rem; margin-bottom:2px; }
.check-item p { font-size:0.9rem; color:var(--muted); line-height:1.8; }
.compare-table { width:100%; border-collapse:collapse; margin:18px 0; font-size:0.92rem; }
.compare-table th { background:var(--navy); color:white; padding:11px 14px; text-align:center; font-weight:700; }
.compare-table th:first-child { text-align:left; }
.compare-table th:nth-child(2) { background:#4a6fa5; }
.compare-table td { padding:10px 14px; border-bottom:1px solid #d8dce8; vertical-align:middle; background:#fff; }
.compare-table td:first-child { font-weight:700; color:var(--navy); }
.compare-table td:not(:first-child) { text-align:center; }
.compare-table tr:nth-child(even) td { background:#f0f3f8; }
.best-col { background:rgba(232,196,74,0.1) !important; font-weight:700; color:#7a5a00 !important; }
th.best-col { background:linear-gradient(135deg,#b8900a,#e8c44a) !important; color:var(--navy) !important; }
.ok-c { color:var(--green); font-weight:700; }
.ng-c { color:#ccc; }
.warn-c { color:var(--orange); }
.cta-block { background:linear-gradient(135deg,var(--navy),var(--mid-blue)); border-radius:16px; padding:28px 24px; text-align:center; margin:32px 0; }
.cta-block h3 { font-family:'Noto Serif JP',serif; font-size:1.15rem; font-weight:900; color:white; margin-bottom:8px; }
.cta-block h3 em { color:var(--gold); font-style:normal; }
.cta-block p { color:rgba(255,255,255,0.65); font-size:0.93rem; margin-bottom:18px; }
.cta-block button { background:linear-gradient(135deg,var(--gold),#d4a820); color:var(--navy); border:none; padding:13px 32px; border-radius:50px; font-weight:700; font-size:0.92rem; cursor:pointer; font-family:inherit; box-shadow:0 6px 20px rgba(232,196,74,0.4); transition:all 0.3s; }
.related-section { background:white; border-radius:14px; padding:22px 26px; margin:30px 0; box-shadow:0 4px 16px rgba(0,0,0,0.06); }
.related-section h3 { font-family:'Noto Serif JP',serif; font-weight:700; color:var(--navy); margin-bottom:14px; font-size:0.97rem; }
.related-item { display:flex; gap:12px; align-items:center; padding:10px 14px; background:#eef3fb; border-radius:9px; cursor:pointer; margin-bottom:8px; transition:background 0.2s; }
.related-item:hover { background:rgba(74,158,255,0.08); }
.related-item h4 { font-size:0.93rem; font-weight:700; color:var(--navy); margin-bottom:2px; }
.related-item p { font-size:0.85rem; color:var(--muted); }

/* ===== トップへ戻るボタン ===== */
#back-to-top { position:fixed; bottom:28px; right:24px; width:48px; height:48px; background:var(--navy); color:#fff; border:none; border-radius:50%; font-size:1.3rem; cursor:pointer; box-shadow:0 4px 12px rgba(0,0,0,0.25); display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity 0.3s, transform 0.3s; z-index:999; }
#back-to-top.visible { opacity:1; pointer-events:auto; }
#back-to-top:hover { background:var(--mid-blue); transform:translateY(-3px); }

/* ===== フッター ===== */
footer { background:var(--navy); color:rgba(255,255,255,0.45); text-align:center; padding:28px 24px; font-size:0.77rem; }
footer a { color:rgba(255,255,255,0.35); text-decoration:none; margin:0 7px; }
footer button { color:rgba(255,255,255,0.35); background:none; border:none; cursor:pointer; margin:0 7px; font-family:inherit; font-size:0.77rem; }
footer button:hover { color:rgba(255,255,255,0.6); }
.footer-disc { font-size:0.7rem; color:rgba(255,255,255,0.22); margin-top:10px; line-height:1.7; }

/* ===== 比較ページ ===== */
.card-compare { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:20px 0; }
.card-box { background:white; border-radius:14px; padding:22px; box-shadow:0 4px 16px rgba(0,0,0,0.07); }
.card-box.normal { border-top:4px solid var(--sky); }
.card-box.premium { border-top:4px solid var(--gold); }
.cbadge { font-size:0.7rem; font-weight:700; padding:2px 9px; border-radius:3px; display:inline-block; margin-bottom:9px; }
.cbadge-blue { background:rgba(74,158,255,0.1); color:var(--sky); }
.cbadge-gold { background:rgba(232,196,74,0.15); color:#b8900a; }
.card-name { font-family:'Noto Serif JP',serif; font-size:0.95rem; font-weight:700; color:var(--navy); margin-bottom:6px; }
.card-fee { font-size:1.35rem; font-family:'DM Serif Display',serif; color:var(--navy); }
.card-fee span { font-size:0.76rem; font-family:'Noto Sans JP',sans-serif; color:var(--muted); }
.card-merits { padding-left:1.1em; margin-top:10px; }
.card-merits li { font-size:0.9rem; color:var(--text); line-height:1.8; margin-bottom:3px; }
.rec-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:18px 0; }
.rec-card { border-radius:12px; padding:18px 20px; }
.rec-card.good { background:rgba(39,174,96,0.07); border:1px solid rgba(39,174,96,0.25); }
.rec-card.bad { background:rgba(231,76,60,0.06); border:1px solid rgba(231,76,60,0.2); }
.rec-card h4 { font-weight:700; margin-bottom:10px; font-size:0.95rem; }
.rec-card.good h4 { color:#1e8449; }
.rec-card.bad h4 { color:#c0392b; }
.rec-card ul { padding-left:1.1em; }
.rec-card li { font-size:0.9rem; color:var(--muted); line-height:1.8; margin-bottom:3px; }

/* ===== 審査ページ ===== */
.meter-row { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.meter-label { font-size:0.8rem; color:var(--navy); font-weight:700; min-width:90px; flex-shrink:0; }
.meter-bar { flex:1; height:9px; background:rgba(0,0,0,0.07); border-radius:5px; overflow:hidden; }
.meter-fill { height:100%; border-radius:5px; }
.meter-fill.hard { background:linear-gradient(90deg,var(--red),#ff6b6b); }
.meter-fill.medium { background:linear-gradient(90deg,var(--orange),#ffa040); }
.meter-fill.easy { background:linear-gradient(90deg,var(--green),#5ae08a); }
.ng-item { display:flex; gap:12px; align-items:flex-start; background:white; border-radius:11px; padding:13px 17px; margin-bottom:10px; box-shadow:0 2px 8px rgba(0,0,0,0.05); border-left:3px solid var(--red); }
.ng-item h4 { font-weight:700; color:#c0392b; font-size:1.08rem; margin-bottom:2px; }
.ng-item p { font-size:0.9rem; color:var(--muted); line-height:1.8; }
.tip-item { display:flex; gap:12px; align-items:flex-start; background:white; border-radius:11px; padding:13px 17px; margin-bottom:10px; box-shadow:0 2px 8px rgba(0,0,0,0.05); border-left:3px solid var(--green); }
.tip-item h4 { font-weight:700; color:#1e8449; font-size:1.08rem; margin-bottom:2px; }
.tip-item p { font-size:0.9rem; color:var(--muted); line-height:1.8; }

/* ===== 到着後ページ ===== */
.step-card { background:white; border-radius:14px; overflow:hidden; box-shadow:0 4px 16px rgba(0,0,0,0.07); margin-bottom:18px; }
.step-card-header { background:linear-gradient(135deg,var(--navy),var(--mid-blue)); padding:14px 22px; display:flex; align-items:center; gap:14px; }
.step-card-num { width:40px; height:40px; background:var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'DM Serif Display',serif; font-size:1.1rem; color:var(--navy); font-weight:700; flex-shrink:0; }
.step-card-header h3 { color:white; font-family:'Noto Serif JP',serif; font-size:1.25rem; font-weight:700; line-height:1.45; }
.step-card-body { padding:18px 22px; font-size:0.95rem; color:var(--text); line-height:1.9; }
.step-card-body ul { padding-left:1.2em; margin:8px 0; }
.step-card-body li { margin-bottom:4px; }
.tip-note { background:rgba(39,174,96,0.07); border-radius:8px; padding:9px 13px; font-size:0.8rem; color:#1e8449; margin-top:9px; }
.warn-note { background:rgba(231,76,60,0.06); border-radius:8px; padding:9px 13px; font-size:0.8rem; color:#c0392b; margin-top:9px; }

/* ===== 紹介カードページ ===== */
.compare-hero { background:linear-gradient(135deg,#0a0420,var(--purple),#1a0a40); padding:56px 24px 44px; text-align:center; }
.point-compare { display:flex; justify-content:center; gap:14px; flex-wrap:wrap; margin:24px 0; }
.compare-item { background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.12); border-radius:12px; padding:14px 22px; text-align:center; min-width:150px; }
.compare-item.best { background:rgba(232,196,74,0.12); border:2px solid rgba(232,196,74,0.5); }
.compare-label { font-size:0.7rem; color:rgba(255,255,255,0.5); margin-bottom:5px; }
.compare-item.best .compare-label { color:var(--gold-light); }
.compare-point { font-family:'DM Serif Display',serif; font-size:1.7rem; color:rgba(255,255,255,0.4); }
.compare-item.best .compare-point { color:var(--gold); font-size:2rem; }
.compare-unit { font-size:0.72rem; color:rgba(255,255,255,0.3); }
.compare-item.best .compare-unit { color:var(--gold-light); }
.new-badge { font-size:0.68rem; font-weight:700; background:var(--red); color:white; padding:2px 9px; border-radius:9px; margin-top:5px; display:inline-block; }
.hero-cta-btn { background:linear-gradient(135deg,var(--gold),#d4a820) !important; color:var(--navy) !important; border:none !important; padding:16px 40px !important; border-radius:50px !important; font-weight:700 !important; font-size:1rem !important; cursor:pointer; font-family:inherit !important; box-shadow:0 8px 28px rgba(232,196,74,0.5) !important; transition:all 0.3s; display:inline-block !important; margin-top:24px !important; text-decoration:none !important; }
.hero-cta-btn:hover { transform:translateY(-3px); }
.target-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:18px 0; }
.target-card { border-radius:12px; padding:18px 20px; }
.target-card.good { background:rgba(39,174,96,0.07); border:1px solid rgba(39,174,96,0.25); }
.target-card.bad { background:rgba(231,76,60,0.06); border:1px solid rgba(231,76,60,0.2); }
.target-card h4 { font-weight:700; margin-bottom:10px; font-size:0.95rem; }
.target-card.good h4 { color:#1e8449; }
.target-card.bad h4 { color:#c0392b; }
.target-card ul { padding-left:1.1em; }
.target-card li { font-size:0.9rem; color:var(--muted); line-height:1.8; margin-bottom:3px; }
.benefit-grid2 { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:14px; margin:18px 0; }
.benefit-card2 { background:white; border-radius:12px; padding:18px; box-shadow:0 3px 12px rgba(0,0,0,0.06); }
.benefit-card2 .icon { font-size:1.7rem; margin-bottom:8px; }
.benefit-card2 h4 { font-weight:700; color:var(--navy); font-size:0.95rem; margin-bottom:5px; }
.benefit-card2 p { font-size:0.9rem; color:var(--muted); line-height:1.8; }
.demerit-item { display:flex; gap:12px; align-items:flex-start; background:white; border-radius:11px; padding:14px 18px; margin-bottom:10px; box-shadow:0 2px 8px rgba(0,0,0,0.05); border-left:3px solid var(--red); }
.demerit-item h4 { font-weight:700; color:#c0392b; font-size:0.95rem; margin-bottom:2px; }
.demerit-item p { font-size:0.9rem; color:var(--muted); line-height:1.8; }
.apply-step { display:flex; gap:14px; align-items:flex-start; background:white; border-radius:12px; padding:16px 20px; margin-bottom:11px; box-shadow:0 2px 8px rgba(0,0,0,0.05); }
.apply-step-num { width:34px; height:34px; background:linear-gradient(135deg,var(--navy),var(--mid-blue)); color:var(--gold); border-radius:9px; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:0.88rem; flex-shrink:0; }
.apply-step h4 { font-weight:700; color:var(--navy); margin-bottom:3px; font-size:0.9rem; }
.apply-step p { font-size:0.93rem; color:var(--muted); line-height:1.9; }
.qa-item { background:white; border-radius:12px; overflow:hidden; box-shadow:0 2px 8px rgba(0,0,0,0.05); margin-bottom:11px; }
.qa-q { padding:14px 18px; font-weight:700; color:var(--navy); font-size:0.9rem; display:flex; gap:10px; align-items:flex-start; }
.qa-q::before { content:'Q'; width:26px; height:26px; background:var(--mid-blue); color:white; border-radius:7px; display:flex; align-items:center; justify-content:center; font-size:0.8rem; flex-shrink:0; }
.qa-a { padding:0 18px 14px 54px; font-size:0.84rem; color:var(--muted); line-height:1.9; }
.sticky-cta-bar { position:fixed; bottom:16px; left:50%; transform:translateX(-50%); z-index:150; }
.sticky-cta-bar button { background:linear-gradient(135deg,var(--gold),#c8961a); color:var(--navy); border:none; padding:13px 26px; border-radius:50px; font-weight:700; font-size:0.87rem; cursor:pointer; font-family:inherit; box-shadow:0 6px 22px rgba(232,196,74,0.6),0 2px 8px rgba(0,0,0,0.3); white-space:nowrap; }

/* ===== point-compare（ヒーロー比較ブロック）===== */
.point-compare { max-width:680px !important; margin-left:auto !important; margin-right:auto !important; }
.compare-item { flex:1 !important; }
@media(max-width:600px){
  .point-compare { display:grid !important; grid-template-columns:repeat(3,1fr) !important; gap:5px !important; flex-wrap:nowrap !important; }
  .compare-item { min-width:0 !important; padding:8px 5px !important; }
  .compare-point { font-size:0.85rem !important; }
  .compare-label { font-size:0.62rem !important; }
  .compare-unit { font-size:0.62rem !important; }
  .new-badge { font-size:0.6rem !important; padding:3px 6px !important; }
}

/* ===== compare-hero（ヒーローセクション）===== */
.compare-hero { background:linear-gradient(135deg,#0a0420,var(--purple),#1a0a40) !important; padding:56px 24px 44px !important; text-align:center !important; }

/* ===== hero-stat-grid（改悪ページ等のヒーロー統計グリッド）===== */
.hero-stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; justify-items:stretch; width:100%; max-width:860px; margin:0 auto; }
@media(max-width:640px){ .hero-stat-grid { grid-template-columns:repeat(2,1fr); } }

/* ===== サイドバーレイアウト ===== */
/* display:flex → align-items:stretch（デフォルト）で両カラム等高さ保証 */
.page-with-sidebar { display:flex !important; gap:28px !important; max-width:1180px !important; margin:0 auto !important; padding:0 20px !important; }
.main-content { flex:1 1 0% !important; min-width:0 !important; }
.main-content .wrap, .main-content .article-wrap { max-width:100% !important; margin:0 !important; padding-left:0 !important; padding-right:0 !important; padding-top:24px !important; background:transparent !important; box-shadow:none !important; }
.main-content .wrap > *:first-child, .main-content .article-wrap > *:first-child, .main-content main > *:first-child { margin-top:0 !important; }
.main-content .divider + .wrap > *:first-child { padding-top:56px; }
/* sidebar-wrap */
.sidebar-wrap { width:270px !important; flex-shrink:0 !important; padding-top:24px !important; display:block !important; visibility:visible !important; opacity:1 !important; }
.sidebar-wrap > aside, .sidebar-wrap > .sidebar { width:100% !important; max-width:100% !important; float:none !important; display:block !important; visibility:visible !important; opacity:1 !important; }
.sidebar-wrap aside, .sidebar-wrap .sidebar { width:100% !important; max-width:100% !important; float:none !important; display:block !important; visibility:visible !important; opacity:1 !important; }
/* Cocoon親テーマが任意のブレークポイントでサイドバー内容を隠す場合の全幅対応上書き */
.sidebar-wrap .sidebar-widget,
.sidebar-wrap .widget,
.sidebar-wrap > * { display:block !important; visibility:visible !important; opacity:1 !important; }
.sidebar-widget { background:#fff !important; border-radius:14px !important; padding:18px !important; margin-bottom:16px !important; box-shadow:0 2px 12px rgba(0,0,0,0.07) !important; border:1px solid #f0f0f0 !important; }
.sidebar-widget-title { font-weight:700; font-size:0.88rem; color:var(--navy); border-bottom:2px solid var(--gold); padding-bottom:8px; margin-bottom:12px; font-family:'Noto Sans JP',sans-serif; }
.sidebar-search-form { display:flex; gap:6px; flex-wrap:wrap; }
.sidebar-search-input { flex:1; min-width:0; padding:8px 12px; border:1px solid #ddd; border-radius:8px; font-size:0.82rem !important; font-family:inherit; outline:none; color:#333; }
.sidebar-search-input:focus { border-color:var(--sky); }
.sidebar-search-btn { background:var(--navy); color:#fff; border:none; border-radius:8px; padding:8px 16px; font-size:0.82rem !important; cursor:pointer; font-family:inherit; white-space:nowrap; flex-shrink:0; }
.sidebar-search-btn:hover { background:var(--mid-blue); }
.sidebar-profile { text-align:center; overflow:hidden; }
.sidebar-profile-img { display:block; width:72px; height:72px; border-radius:50%; object-fit:cover; border:3px solid var(--gold); margin:0 auto 8px; }
.sidebar-profile-name { font-weight:700; font-size:0.85rem; color:var(--navy); margin-bottom:6px; }
.sidebar-profile-bio { font-size:0.77rem; color:#666; line-height:1.6; text-align:left; margin-bottom:10px; }
.sidebar-profile-link { display:inline-block; font-size:0.78rem; color:var(--sky); text-decoration:none; border:1px solid var(--sky); border-radius:20px; padding:4px 12px; }
.sidebar-card-cta { background:linear-gradient(135deg,#0a1a3a,#1a3a6a) !important; border-color:var(--gold) !important; color:#fff !important; }
.sidebar-card-cta .sidebar-widget-title { color:var(--gold) !important; border-color:var(--gold) !important; }
.sidebar-card-cta p { color:rgba(255,255,255,0.85) !important; }
.sidebar-card-features { list-style:none; padding:0; margin:0 0 12px; }
.sidebar-card-features li { font-size:0.8rem !important; color:rgba(255,255,255,0.88) !important; padding:3px 0; }
.sidebar-card-btn { display:block; text-align:center; background:var(--gold); color:var(--navy); text-decoration:none; border-radius:8px; padding:10px 12px; font-weight:700; font-size:0.8rem; font-family:inherit; }
.sidebar-articles { list-style:none; padding:0; margin:0; }
.sidebar-articles li { border-bottom:1px solid #f0f0f0; padding:7px 0; }
.sidebar-articles a { font-size:0.8rem; color:#333; text-decoration:none; line-height:1.5; display:block; }
.sidebar-articles a::before { content:"▶ "; color:var(--gold); font-size:0.65rem; }
.sidebar-categories { list-style:none; padding:0; margin:0; }
.sidebar-categories a { font-size:0.8rem; color:#444; text-decoration:none; display:block; padding:5px 8px; border-radius:6px; }
.sidebar-tags { display:flex; flex-wrap:wrap; gap:6px; }
.sidebar-tag { display:inline-block; font-size:0.75rem; background:#f0f4ff; color:var(--navy); border:1px solid #dce4ff; border-radius:20px; padding:4px 10px; text-decoration:none; }

/* ===== レスポンシブ ===== */
@media(max-width:900px) {
  /* タブレット以下：1カラムに切り替え、サイドバーをコンテンツ下に表示 */
  .page-with-sidebar { flex-direction:column !important; padding:0 16px !important; gap:0 !important; max-width:100% !important; }
  .page-with-sidebar .sidebar-wrap,
  .sidebar-wrap { width:100% !important; min-width:0 !important; max-width:100% !important; padding-top:16px !important; box-sizing:border-box !important; flex-shrink:1 !important; }
}
@media(max-width:600px) {
  nav { gap:2px; }
  nav button { font-size:0.72rem; padding:5px 9px; }
  .hero-stats { gap:18px; }
  .card-compare,.rec-grid,.target-grid { grid-template-columns:1fr; }
  .point-compare { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; }
  .compare-item { min-width:0; padding:8px 5px; }

  /* 比較表をスマホでカード型に変換（responsive-cardクラス付きの表） */
  table.responsive-card,
  table.responsive-card thead,
  table.responsive-card tbody,
  table.responsive-card tr,
  table.responsive-card th,
  table.responsive-card td { min-width:0 !important; }
  table.responsive-card { display:block !important; width:100% !important; max-width:100% !important; border:none !important; background:transparent !important; padding:0 !important; box-sizing:border-box !important; }
  table.responsive-card thead { display:none !important; }
  table.responsive-card tbody,
  table.responsive-card tr,
  table.responsive-card td { display:block !important; width:100% !important; box-sizing:border-box !important; }
  table.responsive-card tr {
    background:#fff !important;
    border:1px solid #d8dce8 !important;
    border-radius:12px !important;
    margin:0 0 18px !important;
    padding:10px 14px !important;
    box-shadow:0 3px 10px rgba(10,22,40,0.08) !important;
  }
  table.responsive-card tr:last-child { margin-bottom:0 !important; }
  table.responsive-card td {
    border:none !important;
    border-bottom:1px solid #f0f0f0 !important;
    padding:8px 4px !important;
    text-align:left !important;
    font-size:0.86rem !important;
  }
  table.responsive-card td:last-child { border-bottom:none !important; }
  /* 1列目（行ラベル）を強調（背景なしで太字＋下線で識別） */
  table.responsive-card td:first-child {
    background:transparent !important;
    border-radius:0 !important;
    padding:6px 0 8px !important;
    font-weight:800 !important;
    color:var(--navy) !important;
    font-size:0.95rem !important;
    margin:0 !important;
    border-bottom:2px solid #e0e4f0 !important;
  }
  /* data-label付きセルに見出し表示 */
  table.responsive-card td[data-label]::before {
    content:attr(data-label) "：";
    display:inline-block;
    min-width:7em;
    font-weight:700;
    color:var(--navy);
    font-size:0.78rem;
    margin-right:6px;
  }
}
@media(max-width:480px) {
  .sidebar-search-form { flex-direction:column; gap:8px; }
  .sidebar-search-input { width:100%; }
  .sidebar-search-btn { width:100%; padding:10px; font-size:0.9rem; }
}

/* ===== Option 3：スマホでのテーブル横はみ出し安全策 ===== */
/* responsive-card / compare-table 以外のテーブルは、スマホで横スクロール可能にする */
@media (max-width:600px) {
  .main-content table:not(.responsive-card):not(.compare-table) {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
    white-space: nowrap;
  }
  /* tableが overflow-x:auto コンテナの中にある場合の親div保護 */
  .main-content div[style*="overflow-x:auto"] {
    max-width: 100% !important;
  }
  /* responsive-card内のtdに残るインライン背景色を抑制（カード型表示の見栄え統一） */
  table.responsive-card td[style*="background:#f2f5fb"],
  table.responsive-card td[style*="background:#fff"],
  table.responsive-card td[style*="background:#ffffff"] {
    background: transparent !important;
  }
}

/* ===== Cocoonサイドバーのデフォルトスタイルをリセット ===== */
.sidebar-wrap .widget,
.sidebar-wrap .widget-wrap,
.sidebar-wrap .widget-area,
.sidebar > .widget {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ===== Cocoonデフォルトサイドバー(#sidebar.sidebar.nwa)を非表示 ===== */
/* page-with-sidebar 構造を持つ独自テンプレートでは Cocoon の標準 #sidebar が
   フッター直前に勝手に出現してレイアウトを壊すため非表示にする。
   独自サイドバーは .sidebar-wrap > aside.sidebar 側で描画される。 */
body:has(.page-with-sidebar) > div#sidebar.sidebar.nwa,
body:has(.page-with-sidebar) > #sidebar {
  display: none !important;
}

/* ===== スクロールバー（HTML背景がnavyのため標準だと同化して見えにくい） ===== */
/* Firefox */
html {
  scrollbar-width: thin;
  scrollbar-color: #8a9bb5 #1a2a45;
}
/* Chrome / Safari / Edge */
::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}
::-webkit-scrollbar-track {
  background: #1a2a45;
}
::-webkit-scrollbar-thumb {
  background: #8a9bb5;
  border-radius: 6px;
  border: 2px solid #1a2a45;
}
::-webkit-scrollbar-thumb:hover {
  background: #b0c0d8;
}
::-webkit-scrollbar-corner {
  background: #1a2a45;
}
/* サイドバー外側の余分な白背景を除去（padding-topは維持） */
.sidebar-wrap > aside,
.sidebar-wrap .sidebar,
.sidebar-wrap .sidebar-inner,
.sidebar-wrap .widget-area-inner {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.sidebar-wrap {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  padding-bottom: 0 !important;
  padding-top: 24px !important;
}

/* ===== WordPressヘッダーナビ（aタグをbuttonスタイルに） ===== */
nav a.nav-btn {
  color:rgba(255,255,255,0.75); background:none; border:none;
  font-size:0.78rem; padding:6px 12px; border-radius:20px;
  cursor:pointer; font-family:inherit; transition:all 0.2s;
  text-decoration:none; display:inline-block;
}
nav a.nav-btn:hover { background:rgba(255,255,255,0.1); color:white; }
nav a.nav-btn.active { background:var(--gold); color:var(--navy); font-weight:700; }
.logo { text-decoration:none; color:var(--gold) !important; }
.logo:hover, .logo:visited, .logo:focus { color:var(--gold) !important; text-decoration:none !important; }

/* ===== Cocoonのテーブルスタイル上書き ===== */
.compare-table th { background:var(--navy) !important; color:white !important; padding:11px 14px !important; font-weight:700 !important; }
.compare-table th:nth-child(2) { background:#4a6fa5 !important; }
.compare-table td { padding:10px 14px !important; border-bottom:1px solid #d8dce8 !important; vertical-align:middle !important; background:#fff !important; }
.compare-table td:first-child { font-weight:700 !important; color:var(--navy) !important; }
.compare-table tr:nth-child(even) td { background:#f0f3f8 !important; }
.best-col { background:rgba(232,196,74,0.1) !important; font-weight:700 !important; color:#7a5a00 !important; }
th.best-col { background:linear-gradient(135deg,#b8900a,#e8c44a) !important; color:var(--navy) !important; }

/* テーブルth背景色の超強力セレクタ（Cocoon・インラインstyle両方に勝つ） */
.main-content table th,
.article-wrap table th,
.wrap table th {
  background:#0a1628 !important;
  color:white !important;
}
.main-content table th:nth-child(2),
.article-wrap table th:nth-child(2),
.wrap table th:nth-child(2) {
  background:var(--sky) !important;
}

/* jal-col の赤色スタイルを超強力セレクタから守る */
.main-content table th.jal-col,
.article-wrap table th.jal-col,
.wrap table th.jal-col {
  background:#c0392b !important;
}
/* routing-table：UA×ANA・BA×JAL 迂回ルートテーブルのth全列をtr背景色に合わせる（透過） */
.main-content table.routing-table th,
.article-wrap table.routing-table th,
.wrap table.routing-table th {
  background: transparent !important;
}

/* best-col の金色スタイルを超強力セレクタから守る */
.main-content table th.best-col,
.article-wrap table th.best-col,
.wrap table th.best-col {
  background:linear-gradient(135deg,#b8900a,#e8c44a) !important;
  color:var(--navy) !important;
}
.main-content table td.best-col,
.article-wrap table td.best-col,
.wrap table td.best-col,
.compare-table td.best-col,
.compare-table tr:nth-child(even) td.best-col {
  background:rgba(232,196,74,0.1) !important;
  color:#7a5a00 !important;
}

/* Cocoon本体のtable/th/tdリセット */
.main-content table { border-collapse:collapse !important; width:100% !important; }
.main-content .compare-table { font-size:0.92rem !important; }
.main-content th, .main-content td { border:none !important; }
.main-content table p { margin:0 !important; }

/* ===== 記事内インラインスタイルのテーブル行色をCocoon上書きから守る ===== */
/* 奇数行（#fffdf0 ゴールド系）/ 偶数行（白）はインラインstyle属性で定義済み */
/* Cocoonデフォルトのtr:nth-child(odd/even)が上書きしないよう強制 */
/* デスクトップのみ適用（モバイル時はresponsive-card側のfirst-cell gradient優先） */
@media (min-width: 601px) {
  .main-content tr[style*="background:#fffdf0"] td,
  .main-content tr[style*="background: #fffdf0"] td { background:#fffdf0 !important; }
  .main-content tr[style*="background:white"] td,
  .main-content tr[style*="background: white"] td { background:#fff !important; }
  .main-content tr[style*="background:linear-gradient"] td { background:transparent !important; }
}

/* ===== related-item（aタグとdivタグ両方に対応）===== */
a.related-item { display:flex !important; gap:12px !important; align-items:center !important;
  padding:10px 14px !important; background:#eef3fb !important; border-radius:9px !important;
  cursor:pointer !important; margin-bottom:8px !important; transition:background 0.2s !important;
  text-decoration:none !important; color:inherit !important; }
a.related-item:hover { background:rgba(74,158,255,0.08) !important; }
a.related-item h4 { font-size:0.93rem !important; font-weight:700 !important; color:var(--navy) !important; margin-bottom:2px !important; }
a.related-item p { font-size:0.85rem !important; color:var(--muted) !important; margin:0 !important; }

/* ===== CTAブロックのaタグ対応 ===== */
.cta-block a {
  display:inline-block; background:linear-gradient(135deg,var(--gold),#d4a820);
  color:var(--navy) !important; text-decoration:none; padding:13px 32px;
  border-radius:50px; font-weight:700; font-size:0.92rem;
  box-shadow:0 6px 20px rgba(232,196,74,0.4); transition:all 0.3s;
  font-family:inherit;
}
.cta-block a:hover { transform:translateY(-2px); }

/* ===== Cocoon body/コンテンツ全体の上書き ===== */
/* bodyのline-height・フォントをCocoonデフォルトから守る */
body { font-family:'Noto Sans JP',sans-serif !important; background:var(--cream) !important; color:var(--text) !important; line-height:1.9 !important; }

/* .wrap コンテンツ幅 */
.main-content .wrap { max-width:100% !important; padding-top:24px !important; }

/* .section パディング */
.section { padding:36px 0; border-bottom:1px solid rgba(0,0,0,0.07); }
.section:last-child { border-bottom:none; }
.main-content .wrap > .section:first-child,
.main-content .article-wrap > .section:first-child { padding-top:0 !important; }

/* .section-title フォント */
.section-title { font-family:'Noto Serif JP',serif !important; font-size:clamp(1.2rem,3vw,1.7rem) !important;
  font-weight:900 !important; color:var(--navy) !important; margin-bottom:8px !important; line-height:1.5 !important; }

/* .section-lead フォント・行間 */
.section-lead { color:var(--muted) !important; font-size:1rem !important; line-height:1.9 !important; margin-bottom:28px !important; }

/* .chat-bubble サイズ */
.chat-bubble { position:relative !important; padding:12px 16px !important; border-radius:12px !important;
  font-size:1rem !important; line-height:1.85 !important; max-width:calc(100% - 64px) !important; }
.chat-wrap { display:flex !important; gap:10px !important; align-items:flex-start !important; margin:14px 0 !important; }

/* .chat-avatar アバター画像サイズ */
.chat-avatar img, .chat-avatar .avatar-emoji {
  width:80px !important; height:80px !important; min-width:80px !important; min-height:80px !important;
  border-radius:50% !important; object-fit:cover !important; }

/* ヒーローセクション */
.hero { padding:60px 24px 50px !important; }
/* .compare-hero は上部で定義済み（!important付き） */

/* benefit-card2 */
.benefit-grid2 { display:grid !important; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)) !important;
  gap:14px !important; margin:18px 0 !important; }
.benefit-card2 { background:white !important; border-radius:12px !important; padding:18px !important;
  box-shadow:0 3px 12px rgba(0,0,0,0.06) !important; }
.benefit-card2 h4 { font-weight:700 !important; color:var(--navy) !important; font-size:0.95rem !important; margin-bottom:5px !important; }
.benefit-card2 p { font-size:0.9rem !important; color:var(--muted) !important; line-height:1.8 !important; }

/* flow-step */
.flow-step { display:flex !important; gap:12px !important; align-items:flex-start !important;
  background:white !important; border-radius:12px !important; padding:14px 18px !important;
  margin-bottom:12px !important; box-shadow:0 2px 10px rgba(0,0,0,0.05) !important; }
.flow-body strong { color:var(--navy) !important; display:block !important; margin-bottom:3px !important; font-size:1rem !important; }
.flow-body span { font-size:0.93rem !important; color:var(--muted) !important; }

/* demerit-item */
.demerit-item { display:flex !important; gap:12px !important; align-items:flex-start !important;
  background:white !important; border-radius:11px !important; padding:14px 18px !important;
  margin-bottom:10px !important; box-shadow:0 2px 8px rgba(0,0,0,0.05) !important;
  border-left:3px solid var(--red) !important; }
.demerit-item h4 { font-weight:700 !important; color:#c0392b !important; font-size:0.95rem !important; margin-bottom:2px !important; }
.demerit-item p { font-size:0.9rem !important; color:var(--muted) !important; line-height:1.8 !important; }

/* apply-step */
.apply-step { display:flex !important; gap:14px !important; align-items:flex-start !important;
  background:white !important; border-radius:12px !important; padding:16px 20px !important;
  margin-bottom:11px !important; box-shadow:0 2px 8px rgba(0,0,0,0.05) !important; }
.apply-step h4 { font-weight:700 !important; color:var(--navy) !important; margin-bottom:3px !important; font-size:0.9rem !important; }
.apply-step p { font-size:0.93rem !important; color:var(--muted) !important; line-height:1.9 !important; }

/* note-box */
.note-box { background:rgba(232,196,74,0.1) !important; border:1px solid rgba(232,196,74,0.35) !important;
  border-radius:10px !important; padding:12px 16px !important; font-size:0.92rem !important;
  color:#7a5a00 !important; line-height:1.9 !important; margin:12px 0 !important; }

/* info-box2 */
.info-box2 { background:rgba(74,158,255,0.06) !important; border:1px solid rgba(74,158,255,0.2) !important;
  border-radius:12px !important; padding:18px 22px !important; margin:16px 0 !important;
  font-size:0.95rem !important; color:#2a4a7a !important; line-height:1.9 !important; }
.info-box2 h4 { font-weight:700 !important; margin-bottom:6px !important; }

/* target-grid / target-card */
.target-grid { display:grid !important; grid-template-columns:1fr 1fr !important; gap:14px !important; margin:18px 0 !important; }
.target-card { border-radius:12px !important; padding:18px 20px !important; }
.target-card.good { background:rgba(39,174,96,0.07) !important; border:1px solid rgba(39,174,96,0.25) !important; }
.target-card.bad { background:rgba(231,76,60,0.06) !important; border:1px solid rgba(231,76,60,0.2) !important; }
.target-card h4 { font-weight:700 !important; margin-bottom:10px !important; font-size:0.95rem !important; }
.target-card.good h4 { color:#1e8449 !important; }
.target-card.bad h4 { color:#c0392b !important; }
.target-card ul { padding-left:1.1em !important; }
.target-card li { font-size:0.9rem !important; color:var(--muted) !important; line-height:1.8 !important; margin-bottom:3px !important; }

/* danger-box */
.danger-box { background:rgba(231,76,60,0.06) !important; border:1px solid rgba(231,76,60,0.3) !important;
  border-radius:12px !important; padding:18px 22px !important; margin:18px 0 !important; }
.danger-box h4 { font-weight:700 !important; color:#c0392b !important; margin-bottom:7px !important; font-size:0.9rem !important; }
.danger-box ul { font-size:0.93rem !important; color:#7a3030 !important; line-height:1.8 !important; padding-left:1.2em !important; }

/* cta-block */
.cta-block { background:linear-gradient(135deg,var(--navy),var(--mid-blue)) !important;
  border-radius:16px !important; padding:28px 24px !important; text-align:center !important; margin:32px 0 !important; }
.cta-block h3 { font-family:'Noto Serif JP',serif !important; font-size:1.15rem !important;
  font-weight:900 !important; color:white !important; margin-bottom:8px !important; }
.cta-block h3 em { color:var(--gold) !important; font-style:normal !important; }
.cta-block p { color:rgba(255,255,255,0.65) !important; font-size:0.93rem !important; margin-bottom:18px !important; }

/* related-section */
.related-section { background:white !important; border-radius:14px !important; padding:22px 26px !important;
  margin:30px 0 !important; box-shadow:0 4px 16px rgba(0,0,0,0.06) !important; }
.related-section h3 { font-family:'Noto Serif JP',serif !important; font-weight:700 !important;
  color:var(--navy) !important; margin-bottom:14px !important; font-size:0.97rem !important; }

/* sticky CTA a対応 */
.sticky-cta-bar a {
  display:inline-block; background:linear-gradient(135deg,var(--gold),#c8961a);
  color:var(--navy) !important; text-decoration:none; padding:13px 26px;
  border-radius:50px; font-weight:700; font-size:0.87rem;
  box-shadow:0 6px 22px rgba(232,196,74,0.6),0 2px 8px rgba(0,0,0,0.3);
  white-space:nowrap; font-family:inherit;
}

/* ===== トップへ戻るボタン ===== */
#scroll-top {
  position:fixed; bottom:28px; right:24px; z-index:9999;
  width:52px; height:52px; border-radius:50%;
  background:var(--navy); color:#fff;
  border:none; font-size:1.3rem; font-weight:700;
  cursor:pointer; display:none; align-items:center; justify-content:center;
  box-shadow:0 4px 16px rgba(0,0,0,0.3); transition:opacity 0.3s, transform 0.3s;
  font-family:inherit;
}
#scroll-top.visible { display:flex; }
#scroll-top:hover { background:var(--mid-blue); transform:translateY(-3px); }

/* ===== Cocoonのエントリーエリア・コンテンツラッパー上書き ===== */
/* Cocoonが.entry-content内に付けるデフォルトのmargin/padding/font-sizeをリセット */
.entry-content, .entry-content p, article.post, .post-content {
  font-size:inherit !important;
  line-height:inherit !important;
  color:inherit !important;
}
/* ヒーローCTAボタン（Cocoonのa要素スタイルを上書き） */
.entry-content a.hero-cta-btn, a.hero-cta-btn {
  margin-top:24px !important;
  display:inline-block !important;
  text-decoration:none !important;
  color:var(--navy) !important;
}
/* Cocoonのコンテンツ最大幅リセット（page-with-sidebarが自分で管理する） */
.entry-content > .page-with-sidebar,
.entry-content > .compare-hero,
.entry-content > section.compare-hero {
  max-width:none !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
/* Cocoonのh2/h3スタイルをセクション内で上書き */
.main-content .section h2.section-title {
  font-family:'Noto Serif JP',serif !important;
  font-size:clamp(1.2rem,3vw,1.7rem) !important;
  font-weight:900 !important;
  color:var(--navy) !important;
  line-height:1.5 !important;
  border:none !important;
  padding:0 !important;
  margin-bottom:8px !important;
  background:none !important;
}
/* Cocoonがh2に付けるborder-leftやpaddingをリセット */
.entry-content h2:not(.section-title):not(.sidebar-widget-title) {
  /* Cocoonデフォルトはそのまま（他のページとの統一のため） */
}

/* ===== パンくずリスト上部の余白調整 ===== */
.page-with-sidebar { margin-top:0 !important; }

/* ===== フッターの文字色 ===== */
footer { background:var(--navy) !important; color:rgba(255,255,255,0.45) !important;
  text-align:center !important; padding:28px 24px !important; font-size:0.77rem !important; }
footer a { color:rgba(255,255,255,0.35) !important; text-decoration:none !important; margin:0 7px !important; }

/* ===== レスポンシブ（モバイル）===== */
@media(max-width:900px) {
  .target-grid { grid-template-columns:1fr !important; }
}
@media(max-width:600px) {
  .benefit-grid2 { grid-template-columns:1fr !important; }
  .chat-bubble { max-width:calc(100% - 74px) !important; }
  .chat-avatar img, .chat-avatar .avatar-emoji { width:60px !important; height:60px !important; min-width:60px !important; min-height:60px !important; }
}

/* ===== Cocoon上書き対策：記事本文クラス強制 ===== */

/* safe-box */
.safe-box { background:rgba(39,174,96,0.06) !important; border:1px solid rgba(39,174,96,0.3) !important;
  border-radius:12px !important; padding:18px 22px !important; margin:18px 0 !important; }
.safe-box h4 { font-weight:700 !important; color:#1e8449 !important; margin-bottom:7px !important; font-size:0.9rem !important; }
.safe-box p { font-size:0.93rem !important; color:#1a5c30 !important; line-height:1.9 !important; }

/* check-list / check-item */
.check-list { display:flex !important; flex-direction:column !important; gap:9px !important; margin:18px 0 !important; }
.check-item { display:flex !important; gap:12px !important; align-items:flex-start !important;
  background:white !important; border-radius:11px !important; padding:13px 17px !important;
  box-shadow:0 2px 8px rgba(0,0,0,0.05) !important; }
.check-item h4 { font-weight:700 !important; color:var(--navy) !important; font-size:0.95rem !important; margin-bottom:2px !important; }
.check-item p { font-size:0.9rem !important; color:var(--muted) !important; line-height:1.8 !important; }

/* result-box */
.result-box { background:linear-gradient(135deg,#fffdf0,#fff) !important;
  border:2px solid rgba(232,196,74,0.5) !important; border-radius:14px !important;
  padding:20px 24px !important; margin:28px 0 !important; }
.result-box h4 { font-family:'Noto Serif JP',serif !important; font-weight:700 !important;
  color:#7a5a00 !important; margin-bottom:8px !important; font-size:0.97rem !important; }
.result-box li { font-size:0.93rem !important; color:#6a5000 !important; line-height:1.9 !important; }
.result-box ul { padding-left:1.2em !important; }

/* toc（目次） */
.toc { background:white !important; border-radius:14px !important; padding:22px 26px !important;
  margin:24px 0 !important; box-shadow:0 4px 18px rgba(0,0,0,0.07) !important; }
.toc h3 { font-family:'Noto Serif JP',serif !important; font-size:0.97rem !important;
  font-weight:700 !important; color:var(--navy) !important; margin-bottom:12px !important; }
.toc ol { padding-left:1.3em !important; }
.toc li { margin-bottom:5px !important; }
.toc a { color:var(--sky) !important; font-size:0.93rem !important; text-decoration:none !important; }

/* abody（記事本文） */
.abody { font-size:1rem !important; line-height:2 !important; }
.abody p { margin-bottom:16px !important; }
.abody h2 { font-family:'Noto Serif JP',serif !important; font-size:1.2rem !important;
  font-weight:900 !important; color:var(--navy) !important; margin:36px 0 14px !important;
  padding:12px 18px !important;
  background:linear-gradient(135deg,rgba(10,22,40,0.06),rgba(26,58,107,0.04)) !important;
  border-left:4px solid var(--navy) !important; border-radius:0 10px 10px 0 !important; }
.abody h3 { font-family:'Noto Serif JP',serif !important; font-size:1rem !important;
  font-weight:700 !important; color:var(--navy) !important; margin:24px 0 10px !important;
  padding-bottom:5px !important; border-bottom:2px solid rgba(74,158,255,0.2) !important; }
.abody strong { color:var(--navy) !important; }
.abody ul { padding-left:1.3em !important; margin-bottom:14px !important; }
.abody li { margin-bottom:5px !important; }

/* ng-item / tip-item */
.ng-item { display:flex !important; gap:12px !important; align-items:flex-start !important;
  background:white !important; border-radius:11px !important; padding:13px 17px !important;
  margin-bottom:10px !important; box-shadow:0 2px 8px rgba(0,0,0,0.05) !important;
  border-left:3px solid var(--red) !important; }
.ng-item h4 { font-weight:700 !important; color:#c0392b !important; font-size:1.08rem !important; margin-bottom:2px !important; }
.ng-item p { font-size:0.9rem !important; color:var(--muted) !important; line-height:1.8 !important; }
.tip-item { display:flex !important; gap:12px !important; align-items:flex-start !important;
  background:white !important; border-radius:11px !important; padding:13px 17px !important;
  margin-bottom:10px !important; box-shadow:0 2px 8px rgba(0,0,0,0.05) !important;
  border-left:3px solid var(--green) !important; }
.tip-item h4 { font-weight:700 !important; color:#1e8449 !important; font-size:1.08rem !important; margin-bottom:2px !important; }
.tip-item p { font-size:0.9rem !important; color:var(--muted) !important; line-height:1.8 !important; }

/* step-card / step-card-body */
.step-card { background:white !important; border-radius:14px !important; overflow:hidden !important;
  box-shadow:0 4px 16px rgba(0,0,0,0.07) !important; margin-bottom:18px !important; }
.step-card-header { background:linear-gradient(135deg,var(--navy),var(--mid-blue)) !important;
  padding:14px 22px !important; display:flex !important; align-items:center !important; gap:14px !important; }
.step-card-num { width:40px !important; height:40px !important; background:var(--gold) !important;
  border-radius:50% !important; display:flex !important; align-items:center !important;
  justify-content:center !important; font-family:'DM Serif Display',serif !important;
  font-size:1.1rem !important; color:var(--navy) !important; font-weight:700 !important; flex-shrink:0 !important; }
.step-card-header h3 { color:white !important; font-family:'Noto Serif JP',serif !important;
  font-size:1.25rem !important; font-weight:700 !important; line-height:1.45 !important; }
.step-card-body { padding:18px 22px !important; font-size:0.95rem !important;
  color:var(--text) !important; line-height:1.9 !important; }
.step-card-body ul { padding-left:1.2em !important; margin:8px 0 !important; }
.step-card-body li { margin-bottom:4px !important; }

/* step-body */
.step-body { flex:1 !important; background:white !important; border-radius:14px !important;
  padding:20px 24px !important; margin-left:14px !important; margin-bottom:18px !important;
  box-shadow:0 4px 18px rgba(0,0,0,0.06) !important; border:1px solid rgba(0,0,0,0.05) !important; }
.step-body h3 { font-family:'Noto Serif JP',serif !important; font-size:1.05rem !important;
  font-weight:700 !important; color:var(--navy) !important; margin-bottom:7px !important; }
.step-body p { color:var(--muted) !important; font-size:0.97rem !important; line-height:1.9 !important; }

/* tip-note / warn-note */
.tip-note { background:rgba(39,174,96,0.07) !important; border-radius:8px !important;
  padding:9px 13px !important; font-size:0.8rem !important; color:#1e8449 !important; margin-top:9px !important; }
.warn-note { background:rgba(231,76,60,0.06) !important; border-radius:8px !important;
  padding:9px 13px !important; font-size:0.8rem !important; color:#c0392b !important; margin-top:9px !important; }

/* meter-row / meter-bar */
.meter-row { display:flex !important; align-items:center !important; gap:12px !important; margin-bottom:12px !important; }
.meter-label { font-size:0.8rem !important; color:var(--navy) !important; font-weight:700 !important; min-width:90px !important; flex-shrink:0 !important; }
.meter-bar { flex:1 !important; height:9px !important; background:rgba(0,0,0,0.07) !important; border-radius:5px !important; overflow:hidden !important; }
.meter-fill { height:100% !important; border-radius:5px !important; }
.meter-fill.hard { background:linear-gradient(90deg,var(--red),#ff6b6b) !important; }
.meter-fill.medium { background:linear-gradient(90deg,var(--orange),#ffa040) !important; }
.meter-fill.easy { background:linear-gradient(90deg,var(--green),#5ae08a) !important; }

/* article-wrap（記事コンテンツラッパー） */
.article-wrap { max-width:780px !important; margin:0 auto !important; padding:0 20px 60px !important; }

/* qa-item */
.qa-item { background:white !important; border-radius:12px !important; overflow:hidden !important;
  box-shadow:0 2px 8px rgba(0,0,0,0.05) !important; margin-bottom:11px !important; }
.qa-q { padding:14px 18px !important; font-weight:700 !important; color:var(--navy) !important;
  font-size:0.9rem !important; display:flex !important; gap:10px !important; align-items:flex-start !important; }
.qa-a { padding:0 18px 14px 54px !important; font-size:0.84rem !important;
  color:var(--muted) !important; line-height:1.9 !important; }

/* divider */
.divider { background:var(--navy) !important; color:white !important; text-align:center !important; padding:44px 24px !important; }
.divider h2 { font-family:'Noto Serif JP',serif !important; font-size:clamp(1.2rem,3vw,1.6rem) !important;
  font-weight:900 !important; margin-bottom:8px !important; }
.divider p { color:rgba(255,255,255,0.55) !important; font-size:0.88rem !important; }

/* 会員比較テーブル ヘッダー色強制 */
#compare-table-bonvoy thead th:nth-child(1) { background:#f8f8f8 !important; color:#333 !important; font-size:0.88rem !important; font-weight:700 !important; text-align:center !important; }
#compare-table-bonvoy thead th:nth-child(2) { background:#0a1628 !important; color:rgba(255,255,255,0.8) !important; }
#compare-table-bonvoy thead th:nth-child(3) { background:#e8c44a !important; color:#0a1628 !important; }

/* ボンヴォイ特典グリッド：4列→2列レスポンシブ */
.bonvoy-feature-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:32px; }
@media (max-width:640px) { .bonvoy-feature-grid { grid-template-columns:repeat(2,1fr); } }

/* 紹介コードステップグリッド：4列→2列レスポンシブ */
.referral-steps-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:20px; margin-bottom:28px; }
@media (max-width:860px) { .referral-steps-grid { grid-template-columns:repeat(2,1fr); } }

/* 検索結果ページ：ヘッダー上の余白を除去 */
body.search,
body.search #wrapper,
body.search #container,
body.search #main,
body.search #main-wrap,
body.search .site-content,
body.search #primary { padding-top: 0 !important; margin-top: 0 !important; }
body.search header { margin-top: 0 !important; padding-top: 0 !important; }
body.search #wpadminbar { position: fixed !important; }
