@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap');:root{--bg:#f5f7fb;--ink:#17253e;--muted:#63738c;--primary:#345fe8;--border:#e1e8f3;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans','Noto Sans JP',sans-serif;line-height:1.8}a{color:inherit;text-decoration:none}header{background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:3}.nav{max-width:1150px;margin:auto;padding:15px 22px;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{font-size:20px;font-weight:800;letter-spacing:-.6px}.brand b{color:var(--primary)}nav{display:flex;gap:24px;color:var(--muted);font-size:13px;font-weight:700}.wrap{max-width:1150px;margin:auto;padding:0 22px}.hero{background:linear-gradient(135deg,#102956,#183d80 65%,#345fe8);color:white;padding:70px 0 86px}.eyebrow{color:#a5c4ff;font-size:13px;font-weight:800;letter-spacing:2px}.hero h1{max-width:800px;font-size:clamp(30px,4.5vw,50px);line-height:1.45;letter-spacing:-1.8px;margin:14px 0}.hero p{color:#cfddfb;font-size:15px}.comparison{background:#fff;padding:26px;border-radius:18px;box-shadow:0 12px 42px #071a4d2e;margin-top:-46px;position:relative;border:1px solid #dce4f1}.comparison h2{font-size:18px;margin:0 0 16px}.selectrow{display:grid;grid-template-columns:1fr 45px 1fr auto;gap:12px;align-items:end}.field label{display:block;font-size:12px;font-weight:800;margin-bottom:8px;color:var(--muted)}select{width:100%;padding:14px;border-radius:10px;border:1px solid #cbd6e8;background:white;color:var(--ink);font:inherit;font-weight:700;min-width:0}.swap{text-align:center;font-size:22px;color:var(--primary);padding-bottom:10px}button,.btn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;background:var(--primary);color:#fff;border:0;border-radius:10px;padding:15px 23px;font:inherit;font-size:14px;font-weight:800;white-space:nowrap}.btn.outline{background:white;border:1px solid var(--border);color:var(--primary)}main{padding:38px 0 80px}.sectiontop{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:34px 0 20px}h2{font-size:25px;margin:0;letter-spacing:-.5px}.desc{color:var(--muted);font-size:14px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.tile{background:white;border:1px solid var(--border);border-radius:14px;padding:20px;transition:.2s}.tile:hover{border-color:#7e9afa;transform:translateY(-2px)}.pair{display:flex;align-items:center;gap:13px;font-size:16px;font-weight:800}.vs{color:#9daac0;font-size:12px}.dot{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:#eaf0ff;color:#345fe8;font-size:12px;font-weight:800;flex:0 0 auto}.tile small{color:var(--muted);display:block;margin-top:10px}.num{color:#2d5de8;font-size:32px;font-weight:800}.statbox{display:flex;align-items:baseline;gap:10px;background:white;border:1px solid var(--border);padding:17px 21px;border-radius:12px}.notice{background:#fffaf0;border:1px solid #f4ddad;border-radius:12px;padding:18px 20px;font-size:13px;color:#6e552b;margin:24px 0}.breadcrumbs{font-size:12px;color:var(--muted);padding:28px 0}.pagehero{padding:5px 0 24px}.pagehero h1{font-size:clamp(27px,4vw,42px);line-height:1.5;letter-spacing:-1px}.tag{font-size:12px;color:#345fe8;background:#e9efff;display:inline-block;border-radius:7px;padding:5px 10px;font-weight:800}.tablebox{background:white;border:1px solid var(--border);border-radius:14px;overflow-x:auto;margin-top:24px}table{border-collapse:collapse;width:100%;min-width:560px}th,td{text-align:left;padding:18px 22px;border-bottom:1px solid var(--border);font-size:14px}th{background:#f0f4fc}td:first-child{font-weight:700;width:30%}td:not(:first-child){color:#53617b}.detail{background:white;border:1px solid var(--border);border-radius:14px;padding:24px;margin-top:20px}.detail h2{font-size:21px}.detail ul{color:#52617b;font-size:14px}.subtle{color:#697b96;font-size:13px}.brokergrid{display:flex;flex-wrap:wrap;gap:9px}.brokergrid a{border:1px solid var(--border);background:white;border-radius:10px;padding:10px 14px;font-weight:700;font-size:13px}footer{border-top:1px solid var(--border);padding:32px 0;color:var(--muted);font-size:12px;background:white}@media(max-width:750px){nav{gap:10px;font-size:11px}.hero{padding:46px 0 68px}.comparison{padding:18px}.selectrow{grid-template-columns:1fr 26px 1fr}.selectrow button{grid-column:1/-1}.swap{font-size:16px}.grid{grid-template-columns:1fr}h2{font-size:22px}.sectiontop{align-items:start;flex-direction:column}.pair{font-size:15px}}
/* Database additions reuse the existing table, detail and section styles. */
.source{color:var(--primary);text-decoration:underline;font-size:12px}tbody th{width:30%;background:#f8faff;vertical-align:top}td{vertical-align:top;overflow-wrap:anywhere}.detail summary{cursor:pointer;font-weight:700}.detail p{overflow-wrap:anywhere}#broker-database section{scroll-margin-top:90px}

/* Keep article selectors in normal flow; only the home hero uses an inset card. */
.pagehero + .comparison{margin-top:0}
.pagehero{padding-bottom:32px}
.wrap,.field,.tile,.sectiontop>div{min-width:0}
h1,h2,h3,p,.breadcrumbs,.pair{overflow-wrap:anywhere}
.grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.pair{flex-wrap:wrap}
.tablebox{max-width:100%;overscroll-behavior-x:contain}
select,button,.btn{min-height:44px}
nav a,.brand,.brokergrid a,.breadcrumbs a,.source,.notice a,main li a,summary{min-height:44px;display:inline-flex;align-items:center}
.statbox{flex-wrap:wrap}
@media(max-width:750px){
  .nav{flex-wrap:wrap;gap:4px;padding:10px 18px}
  nav{flex-wrap:wrap;gap:4px 16px;font-size:13px}
  .wrap{padding:0 18px}
  .selectrow{grid-template-columns:minmax(0,1fr);gap:12px}
  .swap{padding:0;line-height:1;transform:rotate(90deg);justify-self:center}
  select{font-size:16px}
  .grid{grid-template-columns:minmax(0,1fr)}
  .desc,.detail ul,.subtle,.notice{font-size:15px;line-height:1.85}
  .detail{padding:18px}
  .detail ul{padding-left:22px}
  h2{font-size:22px;line-height:1.6}
  .pair{gap:10px}
  th,td{padding:14px 16px}
  .statbox{gap:8px 12px}
}

/* TASK8: white, navy and warm neutrals; native disclosure keeps all copy in HTML. */
:root{--bg:#fff;--ink:#3d3d3d;--muted:#625e59;--primary:#2150ac;--border:#d8d2cc}
body{line-height:1.8}h1,h2,h3{font-weight:800}h1,h2{color:var(--primary)}h2{border-left:4px solid var(--primary);padding-left:12px;line-height:1.5}h3{font-size:18px;line-height:1.6}
.hero{background:#f3f0eb;color:var(--ink);padding:38px 0 68px}.hero p{color:var(--ink)}.eyebrow{color:var(--primary)}
.comparison{box-shadow:0 4px 16px #3d3d3d0a;border-color:var(--border);border-radius:10px}.comparison h2{color:var(--primary)}
.tile,.detail,.tablebox{border-radius:8px}.tile:hover{border-color:var(--primary)}.dot,.tag{color:var(--primary);background:#f1f5fc}.num{color:var(--primary)}.vs{color:var(--muted)}
th{background:#f1f5fc}tbody th{background:#f3f0eb}td:not(:first-child),.detail ul,.subtle{color:var(--ink)}
.notice{background:#fdf2ef;border-color:#f5b7ac;color:var(--ink);padding:14px 16px;margin:16px 0}
#conclusion{background:#f1f5fc;border:1px solid var(--border);border-radius:10px;padding:20px}#conclusion>h2{margin-bottom:14px}.audience{background:#f1faf2;border:1px solid #d8d2cc;padding:12px 16px;border-radius:8px;margin-top:10px}.audience:nth-of-type(2){background:#fdf2ef;border-color:#f5b7ac}.audience h3{margin:0 0 6px}.audience p{margin:0}.audience ul{margin:8px 0 0;padding-left:22px;font-size:14px}
main{padding:22px 0 40px}.sectiontop{margin:24px 0 12px}.tablebox{margin-top:12px}th,td{padding:12px 16px}.breadcrumbs{padding:12px 0}.pagehero,.pagehero + .comparison{margin-bottom:16px}.pagehero{padding-bottom:0}.pagehero h1{margin:12px 0}.pagehero .desc{margin:8px 0}
.topic,.toc,.faq-item,.broker-info{border:1px solid var(--border);border-radius:8px;margin:12px 0;background:#fff}summary{display:block;cursor:pointer;min-height:44px;padding:14px 16px;color:var(--ink);position:relative;padding-right:42px}summary::after{content:'＋';position:absolute;right:14px;top:14px;color:var(--primary);font-weight:800}details[open]>summary::after{content:'−'}summary h2,summary h3{display:inline;margin:0;font-size:19px}summary h3{font-size:16px}summary h2{border:0;padding:0}.verdict{display:block;margin-top:8px;font-size:14px;line-height:1.7}.expand-label{display:block;color:var(--primary);font-size:12px;margin-top:8px}.topic .tablebox,.topic .notice,.broker-info .tablebox{margin:0 14px 14px}.faq-item p{margin:0;padding:0 16px 16px}.toc{background:#f3f0eb}.toc nav{display:block;font-size:14px}.toc ul{margin:0;padding:0 16px 12px 36px}.toc li a{display:flex}.toc summary{font-weight:700}#faq>h2{margin:22px 0 12px}
a:focus-visible,summary:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid var(--primary);outline-offset:3px}section,aside{scroll-margin-top:140px}
@media(max-width:750px){
 .hero{padding:24px 0 58px}.hero h1{font-size:30px}.hero p{font-size:14px}.comparison{padding:14px}.selectrow{gap:6px}.field label{margin-bottom:4px}.swap{font-size:14px}.nav{padding-top:6px;padding-bottom:6px}.brand{font-size:18px}.breadcrumbs{padding:4px 0;font-size:11px}.pagehero h1{font-size:25px;line-height:1.5}.pagehero .desc{font-size:14px;line-height:1.75}.tag{font-size:11px}main{padding-top:8px}#conclusion{padding:14px}h2{font-size:20px}.audience{padding:10px 12px}.audience p,.audience ul{font-size:14px;line-height:1.7}.sectiontop{margin:18px 0 10px}.tile{padding:12px}.tile small{margin-top:4px}.grid{gap:8px}.notice{font-size:14px;line-height:1.7}summary{padding:12px 38px 12px 14px}summary h2{font-size:17px}.topic,.faq-item,.broker-info{margin:8px 0}th,td{padding:10px 12px;font-size:13px}.tablebox table{min-width:520px}
}

/* TASK9: compact local logos, adapted from fx-hub broker-logo.css. */
.broker-name{display:inline-flex;align-items:center;gap:8px;vertical-align:middle;max-width:100%;min-width:0;flex-wrap:wrap}
.broker-name>span:last-child{min-width:0;overflow-wrap:anywhere}
.broker-logo{display:inline-flex;flex:none;align-items:center;justify-content:center;width:56px;height:24px;max-width:100%;border-radius:4px;overflow:hidden;background:#f4f4f5;border:1px solid #00000014}
.broker-logo[hidden]{display:none}
.broker-logo img{width:100%;height:100%;object-fit:contain;display:block}
.broker-heading{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:8px;font-size:14px;font-weight:700}
.broker-page-link{margin:0 14px 10px}.broker-page-link a{display:inline-flex;align-items:center;min-height:44px;color:var(--primary);text-decoration:underline}

/* TASK10: editorial reading width, clear title rhythm and contained tables.
   Independently authored after inspecting the reference article's structure. */
body{font-size:16px;line-height:1.95}
header{position:relative}
.nav{max-width:1120px;padding:14px 20px;gap:12px}
.wrap{max-width:860px;padding-inline:20px}
.breadcrumbs{padding:18px 0 0;font-size:12.5px;line-height:1.8}
.breadcrumbs a{min-height:44px}
.pagehero{padding:24px 0 36px;margin:0}
.broker-heading{margin:0 0 12px}
.pagehero h1,.hero h1{font-size:clamp(28px,4.4vw,46px);line-height:1.35;letter-spacing:-.02em;margin:0;max-width:22em}
.pagehero .desc,.hero p{font-size:17px;line-height:1.95;margin:18px 0 0;max-width:40em}
.updated,.pagehero .updated,.hero .updated{font-size:12.5px;color:var(--muted);line-height:1.8;margin:20px 0 0}
.hero{padding:38px 0 72px}
.eyebrow{margin-bottom:14px}
main{padding:32px 0 64px}
main>section,main>.sectiontop{margin-top:36px}
main>section:first-child{margin-top:0}
h2{font-size:clamp(23px,3vw,32px);line-height:1.45}
h3{font-size:20px;line-height:1.6}
.desc,.detail ul,.audience p,.audience ul{font-size:16px;line-height:1.95}
.detail{padding:24px;margin-bottom:40px}
.detail h2:not(:first-child){margin-top:36px}
.notice{font-size:14.5px;line-height:1.9;padding:18px 20px;margin:24px 0}
#conclusion{padding:24px;border-radius:14px}
#conclusion>h2{margin-bottom:20px}
.audience{padding:18px 20px;margin-top:16px;border-radius:12px}
.audience h3{font-size:19px}
.topic,.toc,.faq-item,.broker-info{margin:18px 0;border-radius:12px}
summary{padding:20px 44px 20px 20px}
summary::after{top:20px}
summary h2{font-size:clamp(20px,2.6vw,26px);line-height:1.5}
summary h3{font-size:17px;line-height:1.7}
.verdict{font-size:15px;line-height:1.9;margin-top:12px}
.faq-item p{padding:0 20px 20px}
.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tile{padding:18px;border-radius:12px}
.tablebox{isolation:isolate;max-width:100%}
table{table-layout:fixed}
th,td{font-size:14.5px;line-height:1.85;overflow-wrap:anywhere;padding:14px 16px}
.compare-table table{min-width:600px}
.compare-table th:first-child{width:136px;position:sticky;left:0;z-index:1;background:#f3f0eb;border-right:1px solid var(--border);box-shadow:2px 0 3px #24171612}
.compare-table thead th:first-child{z-index:2;background:#f1f5fc}
.single-table table{min-width:0;width:100%}
.single-table th:first-child{width:30%}
.single-table td{width:70%}
.source{max-width:100%;white-space:normal;overflow-wrap:anywhere}
@media(max-width:750px){
 .nav{padding:10px 20px;gap:4px 12px}
 .wrap{padding-inline:20px}
 .breadcrumbs{padding-top:16px;font-size:12px}
 .pagehero{padding:22px 0 30px}
 .pagehero h1,.hero h1{font-size:28px;line-height:1.4}
 .pagehero .desc,.hero p{font-size:16px;line-height:1.95}
 .hero{padding:30px 0 66px}
 main{padding:24px 0 48px}
 main>section,main>.sectiontop{margin-top:30px}
 h2{font-size:23px}
 #conclusion{padding:18px}
 .audience{padding:16px}
 .audience h3{font-size:18px}
 .grid{grid-template-columns:minmax(0,1fr)}
 .notice{padding:16px}
 summary{padding:18px 38px 18px 16px}
 summary::after{top:18px;right:12px}
 summary h2{font-size:20px}
 th,td{padding:12px;font-size:14px}
 .single-table table{min-width:0}
 .single-table th:first-child{width:31%}
 .single-table td{width:69%}
 .compare-table table{min-width:600px}
 .compare-table th:first-child{width:112px}
 .detail{padding:20px}
}
