  :root{
    --navy:#17275f; --navy-2:#1f3a8a; --navy-3:#0f1b4c;
    --ink:#1b1f2a; --muted:#4b5563;
    --line:#d8e0ec; --line-2:#e6ecf4;
    --bg:#eef2f8; --panel:#f3f6fb; --panel-2:#e9eff8;
    --accent:#2c7be5; --star:#f3a21a;
    --yellow:#fdf2cf; --yellow-2:#fbe6a8;
    --blue-cell:#d7e5f6; --pink-cell:#f6d4d4; --green-cell:#d5f0cf;
    --font:"Segoe UI","Open Sans",system-ui,-apple-system,Arial,sans-serif;
  }
  *{box-sizing:border-box}
  html,body{margin:0;padding:0}
  body{font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.3;-webkit-font-smoothing:antialiased}
  a{color:inherit;text-decoration:none}

  /* ---------- top nav ---------- */
  .nav{background:linear-gradient(180deg,#1b2a6e 0%,#121f55 100%);color:#fff;height:58px;display:flex;align-items:center;padding:0 34px;gap:24px;position:relative;z-index:3}
  .brand{display:flex;align-items:center;gap:10px;flex:none}
  .brand svg{width:50px;height:34px;display:block}
  .brand-text{line-height:1}
  .brand-text .name{font-weight:800;font-size:25px;letter-spacing:.01em}
  .brand-text .name b{color:#5fc3ff;font-weight:800}
  .brand-text .tag{display:block;font-size:9px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#cfd9ff;margin-top:3px}
  .nav ul{list-style:none;margin:0 0 0 auto;padding:0;display:flex;align-items:center;gap:38px;font-size:18px;font-weight:600}
  .nav li a{display:inline-flex;align-items:center;gap:7px;opacity:.95}
  .nav li a:hover{opacity:1;text-decoration:underline;text-underline-offset:4px}
  .nav .chev{width:12px;height:12px}
  .nav li.has-menu{position:relative}
  .nav li.has-menu>a .chev{transition:transform .15s}
  .nav li.has-menu:hover>a .chev,.nav li.has-menu:focus-within>a .chev{transform:rotate(180deg)}
  .nav li.has-menu ul{display:none;position:absolute;top:100%;left:-12px;margin:0;padding:8px 0;min-width:300px;background:#121f55;border-radius:0 0 10px 10px;box-shadow:0 10px 24px rgba(0,0,0,.35);flex-direction:column;align-items:stretch;gap:0;z-index:5;text-align:left}
  .nav li.has-menu:hover>ul,.nav li.has-menu:focus-within>ul{display:flex}
  .nav li.has-menu ul li a{display:block;padding:9px 18px;font-size:16px;font-weight:600;white-space:nowrap}
  .nav li.has-menu ul li a:hover{background:#1b2a6e;text-decoration:none}
  .nav li.has-menu ul li.sub-hd{padding:4px 18px 6px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#9fb0e6;font-weight:700}
  .nav-toggle{display:none}
  .nav li a.active{text-decoration:underline;text-underline-offset:5px;text-decoration-color:#5fc3ff}

  /* ---------- hero ---------- */
  .hero{position:relative;height:150px;overflow:hidden;color:#fff;background:#2b3a7a url("../img/skyline.jpg") center 62%/cover no-repeat;display:flex;align-items:center}
  .hero .shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,22,66,.82) 0%,rgba(12,22,66,.62) 30%,rgba(12,22,66,.22) 58%,rgba(12,22,66,0) 80%)}
  .hero .copy{position:relative;z-index:2;padding:0 34px;max-width:1300px}
  .hero h1{margin:0;font-size:48px;font-weight:800;letter-spacing:-.01em;line-height:1.1;text-shadow:0 2px 14px rgba(0,0,0,.5)}

  /* ---------- layout ---------- */
  .wrap{max-width:1420px;margin:0 auto;padding:22px 28px 36px}
  .card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 2px 6px rgba(20,35,80,.06)}
  .glance{padding:18px 20px 20px}
  .glance h2{margin:0 0 14px;font-size:30px;font-weight:800;color:var(--navy);letter-spacing:-.01em}

  .verdict{display:flex;align-items:center;gap:16px;background:linear-gradient(90deg,#eaf7ff,#f3fbff);border:1px solid #bfe3f5;border-left:6px solid #00a9d6;border-radius:10px;padding:12px 18px;margin:0 0 26px}
  .verdict svg{width:40px;height:54px;flex:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.2))}
  .verdict h2{margin:0 0 3px;font-size:22px;font-weight:800;color:var(--navy)}
  .verdict p{margin:0;font-size:16.5px;line-height:1.4;color:#1a1f2e}
  .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  /* ---------- comparison table ---------- */
  .tablewrap{overflow-x:auto;border-radius:10px;border:1px solid var(--line)}
  .tableinner{position:relative;min-width:100%}
  @media (min-width:1340px){
    .tablewrap{overflow:visible}
    .cmp thead th:first-child{border-top-left-radius:9px}
    .cmp thead th:last-child{border-top-right-radius:9px}
    .cmp tbody tr:last-child th{border-bottom-left-radius:9px}
    .cmp tbody tr:last-child td:last-child{border-bottom-right-radius:9px}
  }
  /* highlight box around the 365 column + award ribbon */
  .hl-box{position:absolute;pointer-events:none;z-index:2;border:3px solid #00a9d6;border-radius:12px;
          box-shadow:0 0 0 4px rgba(0,187,229,.16),0 10px 24px rgba(0,120,180,.28);opacity:0}
  .hl-box.ready{opacity:1}
  .hl-ribbon{position:absolute;top:-20px;right:-16px;width:60px;height:82px;filter:drop-shadow(0 3px 4px rgba(0,0,0,.28))}
  @media (max-width:1339px){ .hl-ribbon{top:4px;right:2px;width:48px;height:66px} .cmp thead th:nth-child(2) .logo{padding-right:44px} }
  table.cmp{width:100%;border-collapse:separate;border-spacing:0;min-width:1240px;font-size:16.5px;table-layout:fixed}
  .cmp th,.cmp td{border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2);padding:7px 8px;vertical-align:middle;text-align:center}
  .cmp th:last-child,.cmp td:last-child{border-right:0}
  .cmp tr:last-child td{border-bottom:0}
  .cmp thead th{background:var(--panel);height:98px;padding:10px 12px}
  .cmp thead th.corner{text-align:left;font-size:22px;font-weight:700;color:var(--navy);padding-left:36px}
  .cmp col.label{width:23%}
  .cmp .logo{display:flex;align-items:center;justify-content:center;height:76px}
  .cmp .logo img{max-height:100%;max-width:92%;width:auto;height:auto;display:block;object-fit:contain}
  .cmp .logo.sq img{max-height:76px}
  .cmp .logo.sm img{max-height:62px}
  .cmp thead th.corner,.cmp tbody th{position:sticky;left:0;z-index:1;box-shadow:1px 0 0 var(--line-2)}
  .cmp tbody th{text-align:left;background:var(--panel);font-weight:700;color:var(--navy);font-size:16px;padding:7px 8px 7px 12px}
  .cmp tbody th .lab{display:flex;align-items:center;gap:12px}
  .cmp tbody th .ico{width:30px;height:30px;flex:none;color:var(--navy-2)}
  .cmp tbody th .ico svg{width:100%;height:100%;display:block}
  .cmp tbody th small{display:block;font-weight:400;font-size:14px;color:#2b3350;margin-top:1px}
  .cmp tbody th em{font-style:normal;font-weight:400;font-size:15px}
  .cmp tbody tr:nth-child(even) td{background:#f8fafd}
  .cmp td.b{font-weight:700}
  .cmp td .sub{display:block;font-weight:400;font-size:15px;line-height:1.25;color:#1f2430}
  .cmp td.tight{line-height:1.2;font-size:15.5px}
  .cmp tr.review td{font-size:25px;font-weight:800}
  .cmp tr.review td .star{display:inline-block;width:24px;height:24px;vertical-align:-3px;margin-left:5px;color:var(--star)}
  .cmp tr.comp td{font-weight:600;font-size:16px;line-height:1.25;padding:9px 10px}
  .cmp tr.comp td .sub{font-weight:500}
  /* cell color coding: g = green, y = yellow, r = red, no class = unshaded */
  .cmp tbody td.g{background:var(--green-cell)!important}
  .cmp tbody td.y{background:var(--yellow-2)!important}
  .cmp tbody td.r{background:var(--pink-cell)!important}
  .cmp tbody td.r2{background:#f0aeae!important}

  /* ---------- bottom cards ---------- */
  .two{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:22px}
  .note{padding:0;overflow:hidden;display:flex;flex-direction:column}
  .note .head{display:flex;align-items:center;gap:14px;padding:12px 24px;background:linear-gradient(180deg,#eef3fb,#e7eef9);border-bottom:1px solid var(--line)}
  .note .head svg{width:40px;height:40px;flex:none;color:var(--navy)}
  .note .head h3{margin:0;font-size:30px;font-weight:800;color:var(--navy);letter-spacing:-.01em}
  .note .body{flex:1;padding:14px 24px 18px;background:linear-gradient(180deg,#f7f9fd,#eef3fa)}
  .note ul{list-style:none;margin:0;padding:0}
  .note li{display:flex;align-items:flex-start;gap:16px;font-size:18px;line-height:1.5;color:#1a1f2e}
  .note li i{flex:none;width:14px;height:14px;border-radius:4px;margin-top:9px;background:var(--navy-2)}
  .note li:nth-child(1) i{background:#1e3a8a}
  .note li:nth-child(2) i{background:#2447a3}
  .note li:nth-child(3) i{background:#2f6fd0}
  .note li:nth-child(4) i{background:#3a9fd9}
  .note li:nth-child(5) i{background:#3fb0ea}
  .note hr{border:0;border-top:2px solid #1e2b5e;margin:12px 0 10px}
  .note .sources{font-size:16px;line-height:1.45;color:#1a1f2e;margin:0 0 5px}
  .note .sources:last-child{margin-bottom:0}
  .note .sources b{font-weight:700}
  .about p{font-size:19px;line-height:1.45;margin:4px 0 0;color:#1a1f2e}
  .btn{display:flex;align-items:center;justify-content:center;gap:16px;background:linear-gradient(180deg,#1f3480,#15245f);color:#fff;border-radius:10px;padding:14px 20px;font-size:23px;font-weight:700;box-shadow:0 3px 8px rgba(15,27,76,.25);transition:transform .08s ease,box-shadow .08s ease}
  .btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(15,27,76,.3)}
  .btn svg{width:26px;height:26px}

  /* ---------- long-form sections ---------- */
  .section{margin-top:22px;padding:26px 30px 28px}
  .section h2{margin:0 0 14px;font-size:28px;font-weight:800;color:var(--navy);letter-spacing:-.01em}
  .section h3{margin:24px 0 8px;font-size:20px;font-weight:700;color:var(--navy)}
  .section p{margin:0 0 14px;font-size:17px;line-height:1.6;color:#1a1f2e;max-width:1040px}
  .section p:last-child{margin-bottom:0}
  .section .lede{font-size:18px;color:#2b3350}
  .section ul.plain{margin:0 0 6px;padding-left:22px;font-size:17px;line-height:1.6;max-width:1040px}
  .section ul.plain li{margin-bottom:6px}
  .co{border-top:1px solid var(--line);padding-top:22px;margin-top:22px}
  .co header{display:flex;align-items:center;gap:16px;margin-bottom:10px}
  .co header img{height:44px;width:auto;max-width:150px;object-fit:contain}
  .co header h3{margin:0;font-size:22px}
  .facts{display:flex;flex-wrap:wrap;gap:8px 26px;margin:0 0 12px;padding:10px 14px;background:var(--panel);border:1px solid var(--line-2);border-radius:8px;font-size:15px}
  .facts div{display:flex;gap:6px}
  .facts dt{font-weight:700;color:var(--navy)}
  .facts dt::after{content:":"}
  .facts dd{margin:0}
  .measures{margin:0;max-width:1040px}
  .measures div{display:grid;grid-template-columns:240px 1fr;gap:14px;padding:9px 0;border-bottom:1px solid var(--line-2);font-size:16px;line-height:1.5}
  .measures div:last-child{border-bottom:0}
  .measures dt{font-weight:700;color:var(--navy)}
  .measures dd{margin:0}
  .legend{list-style:none;margin:0;padding:0;font-size:16.5px;line-height:1.6}
  .legend li{display:flex;align-items:center;gap:10px;margin-bottom:6px}
  .sw{width:22px;height:22px;border-radius:5px;border:1px solid var(--line);flex:none}
  .sw.g{background:var(--green-cell)}.sw.y{background:var(--yellow-2)}.sw.r{background:linear-gradient(90deg,var(--pink-cell) 50%,#f0aeae 50%)}.sw.n{background:#fff}
  .checklist{margin:0;padding-left:26px;font-size:17px;line-height:1.6;max-width:1040px}
  .checklist li{margin-bottom:10px;padding-left:4px}
  .checklist li::marker{font-weight:700;color:var(--navy)}
  .qa{border-top:1px solid var(--line-2);padding-top:14px;margin-top:14px}
  .qa:first-of-type{border-top:0;padding-top:0;margin-top:0}
  .qa h3{margin:0 0 6px;font-size:19px}
  @media (max-width:760px){
    .section{padding:18px 14px 20px}
    .section h2{font-size:23px}
    .measures div{grid-template-columns:1fr;gap:2px}
    .co header img{height:34px}
  }

  footer{max-width:1420px;margin:0 auto;padding:0 28px 30px;color:#5b6478;font-size:13px}

  /* ---------- responsive ---------- */
  @media (max-width:1100px){
    .nav ul{gap:22px;font-size:16px}
    .hero h1{font-size:38px}
    .two{grid-template-columns:1fr}
  }
  @media (max-width:760px){
    .nav{padding:0 16px;height:54px}
    .nav ul{display:none}
    .nav-toggle{display:block;margin-left:auto;background:none;border:0;color:#fff;cursor:pointer;padding:6px}
    .nav-toggle svg{width:26px;height:26px;display:block}
    .nav.open ul{display:flex;flex-direction:column;align-items:flex-start;gap:12px;position:absolute;top:54px;left:0;right:0;background:#121f55;padding:16px;margin:0;z-index:6}
    .nav.open li.has-menu ul{display:flex;position:static;box-shadow:none;padding:4px 0 0 12px;min-width:0;background:transparent}
    .nav.open li.has-menu ul li a{padding:6px 0}
    .hero{height:100px}
    .hero .shade{background:linear-gradient(90deg,rgba(12,22,66,.8) 0%,rgba(12,22,66,.45) 100%)}
    .hero .copy{padding:0 16px}
    .hero h1{font-size:28px}
    .wrap{padding:14px 12px 24px}
    .glance{padding:14px 12px 14px}
    .glance h2,.note .head h3{font-size:23px}
    .note li,.about p{font-size:16px}
    .btn{font-size:18px}
  }

  /* ---------- sub-pages ---------- */
  .hero.sub{height:120px}
  .hero.sub h1{font-size:36px}
  .crumbs{font-size:14px;color:#4b5563;margin:0 0 14px}
  .crumbs a{color:var(--navy-2);text-decoration:underline;text-underline-offset:3px}
  .crumbs span{margin:0 6px;color:#9aa3b5}
  .pick-strip{display:flex;align-items:center;gap:12px;background:linear-gradient(90deg,#eaf7ff,#f3fbff);border:1px solid #bfe3f5;border-left:6px solid #00a9d6;border-radius:10px;padding:10px 16px;margin:0 0 18px;font-size:16px}
  .pick-strip svg{width:30px;height:40px;flex:none}
  .pick-strip a{color:var(--navy-2);text-decoration:underline;text-underline-offset:3px;font-weight:700}
  .profile-head{display:flex;align-items:center;gap:22px;margin-bottom:16px;flex-wrap:wrap}
  .profile-head img{height:72px;width:auto;max-width:260px;object-fit:contain}
  .profile-head .pick-badge{display:inline-flex;align-items:center;gap:8px;background:var(--green-cell);border:1px solid #b7e0ae;color:#174d1c;border-radius:999px;padding:6px 14px;font-weight:700;font-size:15px}
  .kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px 22px;margin:0 0 20px;padding:14px 18px;background:var(--panel);border:1px solid var(--line-2);border-radius:10px;font-size:15.5px}
  .kv div{display:flex;flex-direction:column;gap:2px}
  .kv dt{font-weight:700;color:var(--navy);font-size:13px;letter-spacing:.04em;text-transform:uppercase}
  .kv dd{margin:0;color:#1a1f2e}
  .kv dd.g{color:#1f6b2a;font-weight:700}.kv dd.y{color:#8a5a00;font-weight:700}.kv dd.r{color:#9b1c1c;font-weight:700}
  table.mini{width:100%;border-collapse:separate;border-spacing:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:15.5px;margin:6px 0 10px}
  table.mini th,table.mini td{padding:9px 12px;border-bottom:1px solid var(--line-2);text-align:left;vertical-align:top}
  table.mini thead th{background:var(--panel);color:var(--navy);font-weight:700}
  table.mini tbody th{background:var(--panel);color:var(--navy);font-weight:700;width:28%}
  table.mini tr:last-child td,table.mini tr:last-child th{border-bottom:0}
  table.mini td.g{background:var(--green-cell)}table.mini td.y{background:var(--yellow-2)}table.mini td.r{background:var(--pink-cell)}table.mini td.r2{background:#f0aeae}
  .cols{display:grid;grid-template-columns:1fr 1fr;gap:26px}
  .cols ul{margin:0;padding-left:20px;font-size:16.5px;line-height:1.6}
  .cols li{margin-bottom:8px}
  .contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px 22px;font-size:16px;line-height:1.5}
  .contact a{color:var(--navy-2);text-decoration:underline;text-underline-offset:3px}
  .cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
  .cta-row a{display:inline-flex;align-items:center;gap:8px;border-radius:9px;padding:11px 18px;font-weight:700;font-size:16px}
  .cta-row a.primary{background:linear-gradient(180deg,#1f3480,#15245f);color:#fff;box-shadow:0 3px 8px rgba(15,27,76,.25)}
  .cta-row a.secondary{border:2px solid var(--navy-2);color:var(--navy-2);background:#fff}
  .more-link{display:inline-block;margin-top:4px;font-weight:700;color:var(--navy-2);text-decoration:underline;text-underline-offset:3px}
  .placeholder{background:#fff7d6;border:1px dashed #d9b44a;border-radius:6px;padding:2px 6px;color:#6b4e00}
  .other-cos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
  .other-cos li a{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--navy);font-weight:700;font-size:15px}
  .other-cos li a:hover{border-color:#00a9d6}
  .other-cos img{height:34px;width:auto;max-width:90px;object-fit:contain}
  .areas{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
  .area{background:var(--panel);border:1px solid var(--line-2);border-radius:10px;padding:16px 18px}
  .area h3{margin:0 0 8px;font-size:20px}
  .area p{font-size:15.5px;line-height:1.55;margin:0 0 8px}
  .area .who{color:#1f6b2a;font-size:14.5px}
  @media (max-width:900px){.areas{grid-template-columns:1fr}}
  footer .flinks{display:flex;flex-wrap:wrap;gap:6px 18px;margin-bottom:8px}
  footer .flinks a{color:var(--navy-2);font-weight:600;text-decoration:underline;text-underline-offset:3px}
  @media (max-width:760px){.cols{grid-template-columns:1fr}.hero.sub{height:96px}.hero.sub h1{font-size:24px}.profile-head img{height:52px}}
