
: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; }
body { font-family:'Noto Sans JP',sans-serif; background:var(--cream); color:var(--text); line-height:1.9; overflow-x:hidden; }

/* ===== ヘッダー ===== */
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; border-radius:50%; object-fit:cover; }
.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; }
.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:56px 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; }
.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:var(--cream); 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.9rem; }
.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 td { padding:10px 14px; border-bottom:1px solid rgba(0,0,0,0.07); vertical-align:middle; }
.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) { background:rgba(0,0,0,0.02); }
.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:var(--cream); 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); }

/* ===== フッター ===== */
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); color:var(--navy); border:none; padding:16px 40px; border-radius:50px; font-weight:700; font-size:1rem; cursor:pointer; font-family:inherit; box-shadow:0 8px 28px rgba(232,196,74,0.5); transition:all 0.3s; }
.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; }

@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; }
  .compare-point { font-size:0.85rem; }
  .compare-label { font-size:0.62rem; }
  .compare-unit { font-size:0.62rem; }
}
