:root{
  --bg:#f4f6fb;
  --bg-warm:#f7f2ea;
  --paper:#ffffff;
  --paper-2:#f9fbff;
  --ink:#182033;
  --ink-2:#2c3548;
  --muted:#657086;
  --line:#dfe6f0;
  --line-dark:rgba(255,255,255,.18);
  --accent:#2563eb;
  --accent-2:#0f766e;
  --accent-3:#f59e0b;
  --gold:#f5b84b;
  --deep:#0f172a;
  --deep-2:#1e2a46;
  --radius:28px;
  --radius-sm:16px;
  --max:1180px;
  --shadow:0 26px 80px rgba(30,41,59,.16);
  --shadow-soft:0 12px 36px rgba(30,41,59,.09);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
html,body{max-width:100%;overflow-x:hidden}
body{
  margin:0;
  min-height:100vh;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--ink);
  background:linear-gradient(180deg,#fbfdff 0%,#f4f6fb 38%,#f7f2ea 100%);
  line-height:1.7;
  text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration-thickness:.08em;text-underline-offset:.2em}
a:hover{color:var(--accent)}
img,svg{max-width:100%;height:auto}
.container{width:min(var(--max),calc(100% - 32px));margin-inline:auto}
.skip{position:absolute;left:-999px;top:auto;width:1px;height:1px;overflow:hidden}.skip:focus{left:16px;top:16px;width:auto;height:auto;background:var(--paper);padding:10px 14px;border-radius:10px;z-index:1000;box-shadow:var(--shadow-soft)}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.93);backdrop-filter:blur(16px);border-bottom:1px solid rgba(15,23,42,.08);box-shadow:0 10px 28px rgba(15,23,42,.06)}
.header-grid{min-height:74px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-weight:950;letter-spacing:.015em;font-size:1.05rem;min-width:0}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:15px;background:linear-gradient(135deg,#2563eb,#14b8a6 72%,#f5b84b);color:#fff;font-size:.82rem;box-shadow:0 12px 26px rgba(37,99,235,.24)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.nav-toggle{display:none;align-items:center;justify-content:center;flex-direction:column;gap:5px;width:46px;height:46px;border-radius:15px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;box-shadow:0 8px 20px rgba(15,23,42,.07)}.nav-toggle span:not(.sr-only){display:block;width:20px;height:2px;border-radius:999px;background:currentColor;transition:transform .18s ease,opacity .18s ease}.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.top-nav{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}.top-nav a{color:var(--ink-2);text-decoration:none;font-weight:800;font-size:.94rem;padding:9px 11px;border-radius:999px}.top-nav a:hover,.top-nav a[aria-current="page"]{background:#eef4ff;color:var(--accent)}
.nav-cta,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-weight:900;border-radius:999px;border:0;background:linear-gradient(135deg,var(--accent),#14b8a6);color:#fff;padding:12px 18px;box-shadow:0 14px 30px rgba(37,99,235,.25);transition:transform .18s ease,filter .18s ease,box-shadow .18s ease}.nav-cta:hover,.button:hover{filter:saturate(1.08);transform:translateY(-1px);color:#fff;box-shadow:0 18px 40px rgba(37,99,235,.30)}.button.secondary{background:linear-gradient(135deg,var(--deep),#334155);color:#fff}.button.ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.24);box-shadow:none}.button.ghost:hover{background:rgba(255,255,255,.18);box-shadow:none}
.hero{position:relative;padding:34px 0 30px;color:#fff;overflow:visible;background:transparent}.hero.compact{padding-top:30px}.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:30px;align-items:end;padding:50px;border-radius:34px;background:linear-gradient(135deg,#0f172a 0%,#183761 54%,#0f766e 100%);box-shadow:0 30px 90px rgba(15,23,42,.28);overflow:hidden}.hero-grid:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(255,255,255,.10) 0 1px,transparent 1px 100%);background-size:42px 42px;opacity:.16;pointer-events:none}.hero-grid:after{content:"";position:absolute;right:38px;bottom:34px;width:210px;height:6px;border-radius:999px;background:linear-gradient(90deg,#f5b84b,#14b8a6,#60a5fa);opacity:.76;pointer-events:none}.hero-grid>*{position:relative;z-index:1}.kicker{margin:0 0 12px;display:inline-flex;align-items:center;gap:8px;color:#e0f7f5;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.20);padding:7px 12px;border-radius:999px;font-weight:900;letter-spacing:.03em;text-transform:uppercase;font-size:.76rem}.kicker:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(245,184,75,.18)}
h1{font-size:clamp(2.2rem,5vw,4.8rem);line-height:.96;margin:0 0 18px;max-width:980px;letter-spacing:-.06em}.lead{font-size:clamp(1.05rem,1.9vw,1.32rem);color:var(--muted);max-width:820px}.hero .lead{color:#e7efff}.byline{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:18px;color:#dbe7ff;font-size:.95rem}.byline a{color:#fff}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.hero-note{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:var(--radius);padding:22px;box-shadow:none;position:relative;overflow:hidden;backdrop-filter:blur(10px)}.hero-note:before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--gold),#14b8a6,#60a5fa)}.hero-note strong{display:block;font-size:1.05rem;margin-bottom:8px}.hero-note span{color:#eaf1ff}
.section{padding:58px 0;background:transparent}.section.tight{padding:30px 0}.section.alt{background:rgba(238,244,255,.78);border-block:1px solid rgba(15,23,42,.06)}.section.keyword-context{background:transparent;border:0;box-shadow:none;border-radius:0;margin:0;padding:26px 0}.section.keyword-context .content{background:#ffffff;border:1px solid var(--line);border-left:7px solid var(--accent-2);border-radius:var(--radius);box-shadow:var(--shadow-soft);padding:28px}.content{max-width:920px}.content h2,.section h2{font-size:clamp(1.7rem,3vw,2.6rem);line-height:1.1;letter-spacing:-.035em;margin:0 0 16px}.content h3{font-size:1.35rem;margin:28px 0 10px}.content p{margin:0 0 18px}.content ul,.content ol{padding-left:1.3rem}.content li{margin:.35rem 0}.content a,.keyword-context a{font-weight:850;color:var(--accent)}
.grid{display:grid;gap:22px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.card,.article-card,.callout,.metric,.toc,.research-card,.scenario-matrix,.rank-card,.faq details,.note,.method-box{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft)}
.card,.callout,.metric,.toc,.research-card,.scenario-matrix,.note,.method-box{padding:24px}.article-card{overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}.article-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.article-card a{display:block;text-decoration:none;padding:24px;height:100%}.article-card h3,.card h3{margin:.55rem 0 .35rem;font-size:1.35rem;line-height:1.15}.article-card p,.card p,.callout p,.note p{color:var(--muted)}.note{border-left:6px solid var(--accent-3)}.soft,.updated{color:var(--muted);font-size:.92rem}.best{border-color:rgba(37,99,235,.28)!important;box-shadow:0 20px 54px rgba(37,99,235,.16)!important}
.pill{display:inline-flex;align-items:center;gap:6px;background:#eaf7f6;border:1px solid #cdebe8;color:#0f766e;border-radius:999px;padding:5px 10px;font-weight:900;font-size:.78rem}.pill:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent-2)}
.home-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric{min-height:120px;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(180deg,#fff,#f8fbff)}.metric strong{font-size:2.15rem;line-height:1;color:var(--accent)}.metric span{color:var(--muted);font-weight:750}.metric em{font-style:normal;color:var(--accent-2);font-weight:900}
.toc ol{columns:2;margin:0}.toc a{text-decoration:none;font-weight:750}.toc li{break-inside:avoid;margin:.35rem 0}.keyword-context blockquote,.content blockquote{margin:22px 0;padding:20px 22px;background:#10233f;color:#fff;border-left:6px solid var(--gold);border-radius:20px}.keyword-context blockquote strong,.content blockquote strong{color:#fef3c7}
.table-wrap{overflow:auto;border-radius:var(--radius);border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow-soft)}table{width:100%;border-collapse:collapse;min-width:760px;background:var(--paper)}th,td{padding:14px 15px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}th{background:#13223d;color:#fff;font-size:.86rem;text-transform:uppercase;letter-spacing:.04em}tbody tr:nth-child(even){background:#f8fbff}tbody tr:hover{background:#eef7f6}.score{font-weight:950;font-size:1.6rem;color:var(--accent)}.score small{font-size:.9rem;color:var(--muted)}
.provider-controls,.comparison-controls{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.provider-controls input,.provider-controls select,.comparison-controls input,.comparison-controls select{border:1px solid var(--line);border-radius:16px;padding:12px 14px;background:#fff;font:inherit;min-width:220px;box-shadow:0 8px 18px rgba(15,23,42,.04)}.provider-controls input:focus,.provider-controls select:focus,.comparison-controls input:focus,.comparison-controls select:focus{outline:3px solid rgba(37,99,235,.16);border-color:rgba(37,99,235,.35)}.rank-list{display:grid;gap:22px}.rank-card{padding:24px;border-top:7px solid var(--accent);position:relative;overflow:hidden}.rank-card:after{content:"";position:absolute;inset:0 0 auto auto;width:150px;height:150px;background:linear-gradient(135deg,rgba(37,99,235,.08),rgba(20,184,166,.10));border-radius:0 0 0 100%;pointer-events:none}.rank-head{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:start;position:relative;z-index:1}.rank-number{width:48px;height:48px;border-radius:18px;background:linear-gradient(135deg,var(--deep),#1f3b68);color:#fff;display:grid;place-items:center;font-weight:950}.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.fact{background:#f8fbff;border:1px solid var(--line);border-radius:18px;padding:14px;color:var(--muted)}.fact strong{display:block;color:var(--ink);margin-bottom:6px}.proscons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.faq{display:grid;gap:12px}.faq details{padding:18px 20px}.faq summary{cursor:pointer;font-weight:900}.faq p{margin:12px 0 0;color:var(--muted)}
.method-list{display:grid;gap:14px}.method-item{display:grid;grid-template-columns:76px 1fr;gap:14px;align-items:start;padding:14px;border:1px solid var(--line);border-radius:20px;background:#f8fbff}.method-weight{display:grid;place-items:center;min-height:48px;border-radius:16px;background:linear-gradient(135deg,#eaf7f6,#eaf0ff);color:var(--accent);font-weight:950}.method-item p{margin:.25rem 0 0;color:var(--muted)}
.site-footer{margin-top:40px;background:linear-gradient(135deg,#0f172a,#17233d);color:#eef3ff;padding:42px 0}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:24px}.site-footer a{display:block;color:#fff;text-decoration:none;margin:6px 0}.site-footer a:hover{color:#a7f3d0}.site-footer p,.footer-note{color:#bcc8dd}.source-panel{display:none!important}
@media(max-width:980px){.site-header{overflow:hidden}.header-grid{min-height:64px;grid-template-columns:1fr auto;gap:10px;padding:10px 0}.brand span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-toggle{display:inline-flex;justify-self:end}.top-nav{grid-column:1/-1;display:none;width:100%;max-width:100%;grid-template-columns:1fr;gap:6px;align-items:stretch;justify-content:stretch;flex-wrap:nowrap;background:#f8fbff;border:1px solid var(--line);border-radius:18px;padding:8px;margin-top:2px;overflow:hidden}.top-nav.is-open{display:grid}.top-nav a{display:block;width:100%;padding:11px 12px;border-radius:12px;white-space:normal;font-size:.95rem}.nav-cta{grid-column:1/-1;display:none;width:100%;max-width:100%;margin-top:0}.header-grid.menu-open .nav-cta{display:inline-flex}.hero-grid,.grid.two,.grid.three,.grid.four,.footer-grid,.facts,.proscons{grid-template-columns:1fr}.hero-grid{padding:34px}.home-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.toc ol{columns:1}.rank-head{grid-template-columns:auto 1fr}.rank-head .score{grid-column:1/-1}.hero{padding-top:26px}}
@media(max-width:560px){.container{width:min(var(--max),calc(100% - 22px))}.brand-mark{width:38px;height:38px;border-radius:12px}.nav-toggle{width:42px;height:42px}.top-nav a{font-size:.92rem}.home-metrics{grid-template-columns:1fr}h1{font-size:2.25rem}.section{padding:42px 0}.section.keyword-context .content{padding:22px;border-radius:22px}.hero-grid{padding:26px 20px;border-radius:24px}.hero-note{padding:18px}.table-wrap{border-radius:18px}.method-item{grid-template-columns:1fr}.method-weight{width:max-content;padding:8px 12px;min-height:auto}.provider-controls input,.provider-controls select,.comparison-controls input,.comparison-controls select{min-width:0;width:100%}}


/* Final context-card fix: keyword paragraphs must read like article content, not full-width banners. */
.keyword-context,
.section.keyword-context{
  width:min(920px, calc(100% - 32px));
  margin:26px auto;
  padding:28px;
  background:#fff;
  border:1px solid var(--line);
  border-left:7px solid var(--accent-2);
  border-radius:var(--radius);
  box-shadow:var(--shadow-soft);
}
.keyword-context h2,
.section.keyword-context h2{margin-top:0;max-width:760px;}
.keyword-context p,
.section.keyword-context p{max-width:780px;}
.keyword-context p:last-child,
.section.keyword-context p:last-child{margin-bottom:0;}
.keyword-context a{font-weight:850;color:var(--accent);}
@media(max-width:560px){
  .keyword-context,
  .section.keyword-context{width:min(100% - 22px, 920px);padding:22px;border-radius:22px;margin:20px auto;}
}
.lang-link{font-weight:950!important;background:#fff7ed!important;color:#9a3412!important;border:1px solid #fed7aa!important;}
.lang-link:hover{background:#ffedd5!important;color:#7c2d12!important;}


/* Mobile provider/comparison tables: rows become compact cards instead of horizontal scroll. */
@media(max-width:720px){
  .table-wrap{
    overflow:visible;
    border:0;
    background:transparent;
    box-shadow:none;
  }
  table.responsive-table{
    min-width:0;
    width:100%;
    display:block;
    border-collapse:separate;
    background:transparent;
  }
  table.responsive-table thead{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
  }
  table.responsive-table tbody{
    display:grid;
    gap:14px;
    width:100%;
  }
  table.responsive-table tr{
    display:block;
    width:100%;
    background:#fff!important;
    border:1px solid var(--line);
    border-radius:20px;
    padding:10px 12px;
    box-shadow:var(--shadow-soft);
  }
  table.responsive-table tr[hidden]{display:none!important;}
  table.responsive-table td{
    display:grid;
    grid-template-columns:minmax(104px,38%) minmax(0,1fr);
    gap:10px;
    align-items:start;
    border:0;
    border-bottom:1px solid rgba(15,23,42,.08);
    padding:10px 2px;
    word-break:normal;
    overflow-wrap:anywhere;
  }
  table.responsive-table td:last-child{border-bottom:0;}
  table.responsive-table td::before{
    content:attr(data-label);
    color:var(--muted);
    font-size:.78rem;
    font-weight:950;
    letter-spacing:.035em;
    text-transform:uppercase;
  }
  table.responsive-table td .score,
  table.responsive-table td:nth-child(2){font-size:1.08rem;}
  table.responsive-table a{overflow-wrap:anywhere;}
}
@media(max-width:420px){
  table.responsive-table td{
    grid-template-columns:1fr;
    gap:4px;
  }
  table.responsive-table td::before{font-size:.74rem;}
}
