/* Cascadia Web Services site styles. Brand palette from the WordPress theme. */
@font-face{font-family:"Open Sans";font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(/assets/fonts/open-sans.woff2) format("woff2")}
@font-face{font-family:"Open Sans";font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(/assets/fonts/open-sans-italic.woff2) format("woff2")}
:root{
  --blue:#2872fa;--blue-2:#1559ed;--slate:#3a4f66;--navy:#192a3d;--line:#ced5d9;--grey:#e1e3e5;--mist:#edf0f2;--white:#fff;
  --tint:#eef3fd;--panel:#f0f3f6;--text:#3a4f66;--muted:#5b6b7c;
  --r-sm:14px;--r:20px;--r-lg:32px;--wrap:1152px;--fab:55px;--shadow:0 10px 30px rgba(25,42,61,.08);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:120px;-webkit-text-size-adjust:100%}
body{margin:0;font:400 16px/1.65 "Open Sans",system-ui,sans-serif;color:var(--text);background:var(--white);overflow-x:hidden}
h1,h2,h3,h4{color:var(--navy);font-weight:800;line-height:1.2;margin:0 0 .5em;letter-spacing:-.01em;text-wrap:balance}
h1{font-size:clamp(2.2rem,5.2vw,4rem);line-height:1.38}
h2{font-size:clamp(1.7rem,3.2vw,2.5rem)}
h3{font-size:1.25rem}
p{margin:0 0 1em}
a{color:var(--blue)}
img{max-width:100%;height:auto}
:where(a,button,summary,.btn,[role=button]){transition:color .25s ease,background-color .25s ease,border-color .25s ease,box-shadow .25s ease,opacity .25s ease}
.wrap{max-width:min(var(--wrap),calc(100% - 32px));margin:0 auto;padding:0}
.sr,.hp{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;z-index:100;background:var(--navy);color:#fff;padding:8px 14px;border-radius:8px}
.skip:focus{left:8px}
.i{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.i--sm{width:14px;height:14px}
.i--blue{color:var(--blue);fill:var(--blue);stroke:none}
.i--tick{width:22px;height:22px;padding:4px;border-radius:50%;background:var(--blue);color:#fff;stroke-width:3}
.eyebrow{color:var(--blue);font-weight:700;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;margin:0 0 .5em}
.lead{max-width:760px;margin:0 auto 2rem;text-align:center}
/* one spacing rhythm: every section adds 56px above and below, so the gap between any two sections is 112px (80px on phones) */
:root{--sec:28px;--pad:48px}
#main>section{padding:var(--sec) 0}
/* page headers sit under the floating menu bar */
#main>:is(.hero,.hhero,.phead){padding-top:176px}
#main>.phead{padding-bottom:0}
#main>section:not(.blk)>:is(.wrap,[class$="__in"])>h2{text-align:center}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 28px;border-radius:999px;font-family:inherit;font-weight:600;font-size:1rem;line-height:1.2;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.btn--navy{background:var(--navy);color:#fff}.btn--navy:hover{background:#0f1c2b}
.btn--grey{background:#d4dade;color:var(--navy)}.btn--grey:hover{background:var(--line)}
.btn--blue{background:var(--blue);color:#fff}.btn--blue:hover{background:var(--blue-2)}
.btn--white{background:#fff;color:var(--blue)}.btn--white:hover{background:var(--tint)}
.btn--outline{border-color:rgba(255,255,255,.75);color:#fff}.btn--outline:hover{background:rgba(255,255,255,.12)}
.btn--ghost{border-color:var(--line);color:var(--navy);background:#fff}
.btn--link{background:none;color:var(--navy);text-decoration:underline;padding:12px 8px}
.txtlink{color:#fff;font-weight:600}
.pill{display:inline-flex;align-items:center;gap:10px;background:#fff;border-radius:999px;padding:10px 18px;font-size:.95rem;color:var(--navy);box-shadow:var(--shadow)}
.pill--sm{padding:8px 16px;font-size:.9rem;box-shadow:none}
.badge{display:inline-block;font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:6px;padding:2px 7px;vertical-align:middle}
.badge--free{background:#e3f6ea;color:#18794e}.badge--new{background:#efe7fd;color:#6b3fd1}.badge--paid{background:var(--tint);color:var(--blue)}

/* header */
.hdr{position:sticky;top:0;z-index:50;padding:24px 16px 0;pointer-events:none}
.hdr__bar{pointer-events:auto;max-width:var(--wrap);margin:0 auto;background:var(--navy);border-radius:var(--r);display:flex;align-items:center;gap:8px;padding:8px 14px 8px 28px;box-shadow:0 10px 30px rgba(25,42,61,.18)}
.hdr__logo img{width:52px;height:52px;display:block;object-fit:contain}
.hdr__nav{margin-left:auto}
.hdr__nav>ul{display:flex;list-style:none;margin:0;padding:0;gap:4px}
.hdr__nav>ul>li>a{display:flex;align-items:center;gap:4px;color:#d7dee6;text-decoration:none;font-weight:600;font-size:.95rem;padding:12px 16px;border-radius:999px}
.hdr__nav>ul>li>a:hover,.has-mega:focus-within>a{color:#fff}
.hdr__search{background:none;border:0;color:#fff;padding:10px;cursor:pointer;border-radius:50%}
.hdr__acct{display:flex;align-items:center;gap:12px;background:#fff;color:var(--navy);border-radius:999px;padding:8px 22px;text-decoration:none;font-weight:600;font-size:.9rem;line-height:1.2;text-align:center}
.hdr__acct small{display:block;font-weight:500;font-size:.78rem}
.hdr__menu{display:none;background:none;border:0;color:#fff;padding:10px;cursor:pointer;margin-left:auto}
.mega{position:absolute;left:50%;top:calc(100% + 12px);transform:translate(-50%,8px);width:min(1152px,calc(100vw - 32px));background:#fff;border-radius:24px;box-shadow:0 24px 60px rgba(25,42,61,.18);opacity:0;visibility:hidden;transition:opacity .18s ease .15s,transform .18s ease .15s,visibility 0s linear .33s;text-align:left}
/* invisible bridge over the gap between the menu bar and the panel, so the pointer can travel down without the panel closing */
.mega::before{content:"";position:absolute;left:0;right:0;top:-28px;height:28px}
.has-mega:hover .mega,.has-mega:focus-within .mega,.has-mega.open .mega{opacity:1;visibility:visible;transform:translate(-50%,0);transition:opacity .18s ease,transform .18s ease,visibility 0s}
.hdr__nav>ul>li:hover>a,.has-mega:focus-within>a{background:rgba(255,255,255,.08)}
.hdr__nav>ul>li>a.is-active{background:var(--blue);color:#fff}
.hdr .mega a[aria-current=page]{color:var(--blue)!important;box-shadow:inset 3px 0 0 var(--blue);padding-left:10px}
/* Menus: markup and styles carried over from the original site (partials/menu-*.html) */
.cws-mm{padding:28px 30px 24px;max-width:1240px;margin:0 auto}.cws-mm__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px 28px;align-items:start}.cws-mm__col{display:flex;flex-direction:column}.cws-mm__head{align-items:flex-start}.cws-mm__list{margin-top:8px}.cws-mm__head{display:flex;gap:12px;align-items:flex-start;text-decoration:none;margin-bottom:12px}.cws-mm__icon{flex:0 0 36px;height:36px;border-radius:11px;background:#eef3fb;display:flex;align-items:center;justify-content:center}.cws-mm__icon svg{width:20px;height:20px;fill:none;stroke:#2872fa;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.cws-mm__head strong{display:block;color:#192a3d;font-size:16px;line-height:1.3}.cws-mm__head em{display:block;font-style:normal;color:#7a8a9b;font-size:13px;line-height:1.4;margin-top:2px}.cws-mm__head:hover strong{color:#1559ed}.cws-mm__list{list-style:none;margin:0;padding:0 0 0 48px}.cws-mm__list li{margin:0 0 7px}.cws-mm__list a{color:#192a3d;font-weight:600;text-decoration:none;font-size:14px;line-height:1.35}.cws-mm__list a:hover{color:#1559ed}.cws-mm__foot{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:24px;padding-top:20px;border-top:1px solid #e1e8ed;flex-wrap:wrap}.cws-mm__note strong{display:block;color:#192a3d;font-size:15px}.cws-mm__note span{color:#7a8a9b;font-size:14px}.cws-mm__acts{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.cws-mm__btn{background:#2872fa;color:#fff!important;padding:10px 22px;border-radius:999px;font-weight:600;text-decoration:none;font-size:14px}.cws-mm__btn:hover{background:#1559ed}.cws-mm__link{color:#1559ed;font-size:14px;text-decoration:none;font-weight:600}.cws-mm__link:hover{text-decoration:underline}@media(max-width:999px){.cws-mm__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:689px){.cws-mm{padding:20px}.cws-mm__grid{grid-template-columns:1fr;gap:18px}.cws-mm__list{padding-left:48px}}.cws-mm{max-height:calc(100vh - 150px);overflow-y:auto;overscroll-behavior:contain}.cws-mm::-webkit-scrollbar{width:8px}.cws-mm::-webkit-scrollbar-thumb{background:#dbe3ea;border-radius:8px}@media(max-height:820px){.cws-mm{padding-top:20px;padding-bottom:18px}.cws-mm__grid{gap:18px 34px}}.cws-mm__col--wide{grid-column:span 2}.cws-mm__list--two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}@media(max-width:999px){.cws-mm__col--wide{grid-column:span 2}}@media(max-width:689px){.cws-mm__col--wide{grid-column:span 1}.cws-mm__list--two{grid-template-columns:1fr}}.cws-mm__col{min-height:0}.cws-mm__grid{align-items:stretch}.cws-mm__list li{padding:3px 0}/*cws-mm-rules*/.cws-mm__grid{gap:0!important;align-items:stretch}.cws-mm__col{padding:20px 24px;border-right:1px solid #eef1f4;border-bottom:1px solid #eef1f4;box-sizing:border-box}.cws-mm__col:nth-child(4n){border-right:0}.cws-mm__col--wide{border-right:0}.cws-mm__col:nth-child(n+5){border-bottom:0}.cws-mm__head{margin-bottom:12px}@media(max-width:999px){.cws-mm__col{border-right:0;border-bottom:1px solid #eef1f4}.cws-mm__col:last-child{border-bottom:0}}.cws-mm__pro{margin-top:6px}.cws-mm__pro a{display:flex!important;align-items:center;justify-content:space-between;gap:8px;background:#eef4ff;border:1px solid #cfe0ff;border-radius:10px;padding:8px 12px!important;margin:0!important;font-weight:700;color:#1559ed!important}.cws-mm__pro a:hover{background:#e2ecff;border-color:#b6d3ff}.cws-mm__proarrow{color:#5b9bff;font-size:17px;line-height:1}
.cws-pm{padding:28px 30px 24px;max-width:1240px;margin:0 auto}.cws-pm__grid{display:grid;grid-template-columns:repeat(2,minmax(0,340px));justify-content:center;gap:26px 60px;align-items:start}.cws-pm__title{margin:0 0 12px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#7a8a9b;font-weight:700}.cws-pm__col .cws-pm__item+.cws-pm__title{margin-top:22px}.cws-pm__item{display:flex;gap:12px;align-items:flex-start;text-decoration:none;padding:9px 10px;border-radius:14px;margin:0 -10px}.cws-pm__item:hover{background:#eef3fb}.cws-pm__icon{flex:0 0 34px;height:34px;border-radius:11px;background:#eef3fb;display:flex;align-items:center;justify-content:center}.cws-pm__item:hover .cws-pm__icon{background:#dfe9fd}.cws-pm__icon svg{width:19px;height:19px;fill:none;stroke:#2872fa;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.cws-pm__item strong{display:block;color:#192a3d;font-size:15px;line-height:1.3}.cws-pm__item em{display:block;font-style:normal;color:#7a8a9b;font-size:13px;line-height:1.4;margin-top:2px}.cws-pm__item:hover strong{color:#1559ed}.cws-pm__tag{display:inline-block;margin-left:8px;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:2px 8px;border-radius:999px;vertical-align:middle}.cws-pm__tag.is-free{background:#e4f6ea;color:#1b7a44}.cws-pm__tag.is-paid{background:#eef3fb;color:#1559ed}.cws-pm__tag.is-soon{background:#f2f5f7;color:#7a8a9b}.cws-pm__tag.is-new{background:#efe9fd;color:#5b3fd6}.cws-pm__item.is-soon .cws-pm__icon{background:#f2f5f7}.cws-pm__item.is-soon .cws-pm__icon svg{stroke:#8ea6c4}.cws-pm__foot{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:22px;padding-top:18px;border-top:1px solid #e1e8ed;flex-wrap:wrap}.cws-pm__note strong{display:block;color:#192a3d;font-size:15px}.cws-pm__note span{color:#7a8a9b;font-size:14px}.cws-pm__acts{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.cws-pm__btn{background:#2872fa;color:#fff!important;padding:10px 22px;border-radius:999px;font-weight:600;text-decoration:none;font-size:14px}.cws-pm__btn:hover{background:#1559ed}.cws-pm__link{color:#1559ed;font-size:14px;text-decoration:none;font-weight:600}.cws-pm__link:hover{text-decoration:underline}@media(max-width:999px){.cws-pm__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:689px){.cws-pm{padding:20px}.cws-pm__grid{grid-template-columns:1fr;gap:18px}}.cws-pm__tag.is-new{background:#efe9fd;color:#5b3fd6}.cws-pm__ops{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:26px;align-items:start;background:#f6f9ff;border:2px solid #dbe6fb;border-radius:20px;padding:18px 20px;margin-bottom:22px}.cws-pm__ops-title{margin:0 0 6px;font-size:17px;font-weight:700;color:#192a3d}.cws-pm__ops-sub{margin:0 0 12px;color:#3A4F66;font-size:14px;line-height:1.5}.cws-pm__ops-acts{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.cws-pm__ops-apps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.cws-pm__app{display:block;background:#fff;border:2px solid #e1e8ed;border-radius:14px;padding:10px 12px;text-decoration:none}.cws-pm__app:hover{border-color:#2872fa}.cws-pm__app strong{display:block;font-size:14px;color:#192a3d;line-height:1.3}.cws-pm__app em{font-style:normal;font-size:12px;color:#7a8a9b}.cws-pm__app.is-all{background:#eef3fb;border-color:#dbe6fb}@media(max-width:999px){.cws-pm__ops{grid-template-columns:1fr}.cws-pm__ops-apps{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:689px){.cws-pm__ops-apps{grid-template-columns:repeat(2,minmax(0,1fr))}}.cws-pm__ops{grid-template-columns:minmax(0,260px) minmax(0,1fr)}.cws-pm__cats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px 18px}.cws-pm__cat-title{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--cat-text)}.cws-pm__cat-dot{width:10px;height:10px;border-radius:3px;background:var(--cat);flex:0 0 10px}.cws-pm__cat ul{list-style:none;margin:0;padding:0}.cws-pm__cat li{margin:0}.cws-pm__cat a{display:block;padding:4px 8px;margin:0 -8px;border-radius:8px;color:#192a3d;font-size:14px;line-height:1.35;text-decoration:none}.cws-pm__cat a:hover{background:var(--cat-tint);color:var(--cat-text)}@media (max-width:1100px){.cws-pm__ops{grid-template-columns:1fr}.cws-pm__cats{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 18px}}.cws-pm__pro{display:block;margin-top:14px;background:#fff;border:2px solid #dbe6fb;border-radius:14px;padding:12px 14px;text-decoration:none;transition:border-color .2s ease}.cws-pm__pro:hover{border-color:#2872fa}.cws-pm__pro-top{display:flex;align-items:center;flex-wrap:wrap;gap:2px}.cws-pm__pro-top strong{color:#192a3d;font-size:15px;line-height:1.3}.cws-pm__pro-sub{display:block;margin-top:4px;color:#7a8a9b;font-size:13px;line-height:1.45}.cws-pm__inline{display:inline-flex;align-items:center;gap:5px;color:#1559ed;font-weight:600;text-decoration:none;white-space:nowrap}.cws-pm__inline:hover{text-decoration:underline}.cws-pm__inline svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}/*cws-pm-tiles*/.cws-pm__icon{background:#192a3d!important;border-radius:8px!important}.cws-pm__icon svg{stroke:#ffffff!important;width:18px;height:18px}.cws-pm__item:hover .cws-pm__icon{background:#2872fa!important}.cws-pm__cat a,.hub__cat a{display:flex;align-items:center;justify-content:flex-start;gap:0}.cws-pm__cat a .cws-st,.hub__cat a .cws-st{margin-left:auto;flex:0 0 auto}.cws-dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex:0 0 7px;margin:0 8px 0 0}.cws-appname{flex:1 1 auto;min-width:0}.cws-dot--planned{background:#c7d0d9}.cws-dot--building{background:#5b3fd6}.cws-dot--beta{background:#c2561c}.cws-dot--free{background:#1b7a44}.cws-pm__legend{display:flex;gap:18px;flex-wrap:wrap;margin:16px 0 0;padding-top:12px;border-top:1px solid #dbe6fb}.cws-pm__legend span{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:#7a8a9b}.cws-pm__legend .cws-dot{margin-left:0}.cws-st{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:999px;font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;vertical-align:middle;white-space:nowrap}.cws-st--planned{background:#f2f5f7;color:#7a8a9b}.cws-st--building{background:#efe9fd;color:#5b3fd6}.cws-st--beta{background:#fdf0e3;color:#a8480f}.cws-st--free{background:#e4f6ea;color:#1b7a44}.cws-pm__more a{font-size:12px;font-weight:600;color:#1559ed;text-decoration:none}.cws-pm__more a:hover{text-decoration:underline}.cws-pm__ops{align-items:stretch}.cws-pm__ops-lead{display:flex;flex-direction:column}.cws-pm__pro{margin-top:auto}/*cws-pm-tighten*/.cws-pm__legend{display:flex!important;flex-wrap:nowrap!important;gap:14px!important;margin:14px 0 0!important;padding-top:10px!important;white-space:nowrap}.cws-pm__legend span{font-size:11px!important}.cws-pm__grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;justify-content:stretch!important;gap:22px 48px!important}.cws-pm__ops{margin-bottom:18px!important}.cws-pm__legend{grid-column:1 / -1!important;width:100%!important;justify-content:flex-start!important;align-items:center!important}.cws-pm__prokey{margin-left:auto!important}.cws-pm__prokey{display:inline-flex;align-items:center;gap:8px;text-decoration:none;background:#fff;border:1px solid #cfe0ff;border-radius:999px;padding:5px 12px 5px 10px;white-space:nowrap}.cws-pm__prokey:hover{background:#eef4ff}.cws-pm__prodot{width:8px;height:8px;border-radius:50%;background:#1559ed;flex:0 0 8px}.cws-pm__prokey strong{font-size:12.5px;color:#192a3d}.cws-pm__prokey-sub{font-size:11px;color:#7a8a9b}@media(max-width:999px){.cws-pm__prokey-sub{display:none}}.cws-pm__grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:22px 40px!important}.cws-pm__soonlist{display:flex;flex-direction:column;gap:2px}.cws-pm__soon{display:flex;align-items:center;gap:10px;padding:7px 10px;margin:0 -10px;border-radius:10px;text-decoration:none;color:#3A4F66;font-size:14px}.cws-pm__soon:hover{background:#f2f5f7;color:#1559ed}.cws-pm__soondot{width:8px;height:8px;border-radius:50%;background:#c7d0d9;flex:0 0 8px}.cws-pm__soonnote{margin:10px 0 0;font-size:12px;color:#7a8a9b;line-height:1.5}.cws-pm__soonnote a{color:#1559ed;font-weight:600;text-decoration:none}@media(max-width:999px){.cws-pm__grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(max-width:689px){.cws-pm__grid{grid-template-columns:1fr!important}}.cws-pm__title a{color:inherit;text-decoration:none}.cws-pm__title a:hover{color:#1559ed}
.hdr__nav li{position:static}
.hdr__bar{position:relative}

/* hero */
.hero{text-align:center;padding:72px 0 var(--sec);margin-top:-96px;padding-top:168px;background:linear-gradient(180deg,#e1e3e5 0%,#e9edf3 55%,#fff 100%)}
.hero .pill{margin-bottom:28px}
.hero h1{max-width:900px;margin:0 auto .5em}
.hero__intro{max-width:800px;margin:0 auto 2.2rem;font-size:1.05rem}
.hero__btns{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}
.hl{margin-top:64px;text-align:left}
.hl__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(min-width:901px){.hl__grid li{white-space:nowrap;font-size:clamp(.78rem,1.05vw,.9rem);padding:14px 16px}}
.hl__grid li{display:flex;align-items:center;gap:12px;background:#fff;border-radius:var(--r-sm);border-top:3px solid var(--blue);padding:14px 18px;font-weight:700;font-size:.9rem;color:var(--navy);box-shadow:var(--shadow)}

/* client logos under the hero */
.logos{margin:48px auto 0;max-width:var(--wrap);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.logos__track{display:flex;align-items:center;gap:56px;width:max-content;list-style:none;margin:0;padding:0;animation:logos 40s linear infinite}
.logos__track li{flex:none}
.logos__track img{display:block;height:34px;width:auto;max-width:150px;object-fit:contain;filter:grayscale(1) contrast(1.1);opacity:.75}
.logos:hover .logos__track{animation-play-state:paused}
@keyframes logos{to{transform:translateX(-50%)}}
.hhero .logos{margin-top:40px;padding:0 16px}
@media(prefers-reduced-motion:reduce){.logos__track{animation:none;flex-wrap:wrap;justify-content:center;width:auto}.logos__track li:nth-child(n+9){display:none}}

/* hero background from the original site: grey fading to white, with the blue rings, glow and faint grid */
.hero,.hhero,.phead,.dochead{background-color:#fff!important;background-image:linear-gradient(to bottom,rgba(255,255,255,0) 0,rgba(255,255,255,0) min(70%,760px),#fff min(100%,1200px)),url(/assets/uploads/hero-background-grid.svg),linear-gradient(to bottom,#e1e3e5 0,#e1e3e5 min(40%,420px),#fff min(100%,1100px))!important;background-size:100% 100%,max(2000px,100%) auto,100% 100%!important;background-position:0 0,50% -40px,0 0!important;background-repeat:no-repeat!important}

/* why */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px}
.why__card{background:var(--tint);border-radius:24px;padding:24px;display:flex;flex-direction:column}
.why__card img,.why__card .ill{display:block;width:100%;height:auto;aspect-ratio:900/560;object-fit:contain;margin-bottom:18px}
.why__card p{margin:0}
/* round soft icon, same as the monthly report */
.why__card{background:#fff;border:1px solid #dfe5ec;border-radius:20px;padding:28px}
.why__ic{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#e6eefb;color:var(--navy);margin-bottom:20px}
.why__ic .glyph{width:26px;height:26px}

/* included */
.inc__in{max-width:var(--wrap);margin:0 16px;padding:64px 20px;background:var(--panel);border-radius:var(--r-lg);text-align:center}
@media(min-width:1184px){.inc__in{margin:0 auto}}
.inc__grid{columns:3 300px;column-gap:20px;text-align:left;max-width:1112px;margin:0 auto}
.card{break-inside:avoid;background:#fff;border-radius:var(--r);padding:28px 24px;margin-bottom:20px;box-shadow:var(--shadow);display:inline-block;width:100%}
.card--blue{background:var(--blue);color:#e7efff}
.card--blue h3{color:#fff}
.card__btns{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.ticks{list-style:none;margin:0;padding:0}
.ticks li{display:flex;gap:12px;align-items:flex-start;margin:0 0 .6em}
.ticks li .i{margin-top:2px}
.ticks--center{display:inline-block;text-align:left;margin:0 auto 1.4rem}

/* versus */
.vs__wrap{max-width:none;margin:0;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--grey)}
.vs__t{width:100%;border-collapse:collapse;font-size:.98rem}
.vs__t th,.vs__t td{padding:18px 22px;text-align:left;vertical-align:top;border-top:1px solid var(--grey)}
.vs__t thead th{border-top:0;font-size:.9rem;color:var(--slate);background:#fff}
.vs__t thead th.us{background:var(--blue);color:#fff}
.vs__t tbody th{color:var(--navy);font-weight:600;width:32%}
.vs__t td.us{background:var(--tint);color:var(--navy);font-weight:600}
.vs__t--3 tbody th{width:24%}
.vs__key{display:none}
.vs__key span{flex:1;display:flex;align-items:center;gap:8px;border-radius:12px;padding:10px 12px;font-size:.82rem;font-weight:700;line-height:1.3;color:var(--navy);background:#f5f7fa}
.vs__key i{flex:none;width:10px;height:10px;border-radius:50%;background:#c7d0d9}
.vs__key span.us{background:var(--blue);color:#fff}
.vs__key span.us i{background:#fff}

/* testimonials and talk */
.talk__grid{display:grid;grid-template-columns:2fr 1fr;gap:40px}
.quotes{position:relative;background:var(--grey);border-radius:var(--r-lg);padding:40px}
#main .quotes h2{text-align:left;font-size:clamp(1.6rem,2.6vw,2.1rem);max-width:none;margin:0 0 .6em}
/* every quote sits in the same spot, so the card is always as tall as the longest one and never jumps */
.quotes__stack{display:grid}
.quotes__stack>.quote{grid-area:1/1}
.quotes__stack>.quote[hidden]{display:block;visibility:hidden;opacity:0}
.quote{margin:0;transition:opacity .4s ease}
.quote.is-out{opacity:0}
.quote blockquote{margin:0 0 1.4rem;font-size:1.35rem;line-height:1.5;color:var(--navy)}
.quote figcaption{font-size:.9rem;color:var(--muted)}
.quote figcaption strong{display:block;color:var(--navy);font-weight:600}
.quotes__nav{position:absolute;right:40px;bottom:40px;display:flex;gap:10px}
.quotes__nav button{width:36px;height:36px;border-radius:50%;border:0;background:var(--blue);color:#fff;display:grid;place-items:center;cursor:pointer}
.talk__card{display:flex;flex-direction:column;justify-content:space-between;background:var(--blue-2);border-radius:var(--r-lg);padding:40px;text-decoration:none;min-height:320px}
#main .talk__card h2{color:#fff;text-align:left;font-size:clamp(1.8rem,2.8vw,2.4rem)}
.talk__card>span{display:flex;align-items:center;justify-content:space-between;color:#fff;font-weight:700}
.talk__go{width:48px;height:48px;border-radius:50%;background:var(--navy);display:grid;place-items:center}
/* the slow-turning orbit in the corner of the blue card, as on the old site */
.talk__card{position:relative;overflow:hidden}
.talk__card>*:not(.talk__orbit){position:relative}
.talk__orbit{position:absolute;right:-90px;bottom:-60px;width:300px;height:300px;fill:none;animation:cwsSpin 25s linear infinite;pointer-events:none}
.talk__orbit .r{stroke:#8fb6ff;stroke-width:6px;opacity:.55}
.talk__orbit .d{fill:#8fb6ff;opacity:.8}
@keyframes cwsSpin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.talk__orbit{animation:none}}

/* fits / how */
.cols3{display:grid;grid-template-columns:repeat(3,1fr);margin:40px 0 -40px}
.col{text-align:center;padding:40px 32px;font-size:.95rem;position:relative}
/* the middle column's tint and the dividers peak in the middle and fade out at the top and bottom */
.col+.col::before{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background:linear-gradient(180deg,rgba(206,213,217,0) 0%,#ced5d9 50%,rgba(206,213,217,0) 100%)}
.col:nth-child(2){background:linear-gradient(180deg,rgba(240,244,249,0) 0%,#f0f4f9 50%,rgba(240,244,249,0) 100%)}
.col__ic{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--blue);margin-bottom:20px}
.col__ic svg{width:26px;height:26px;fill:#fff}
.col__ic .glyph{fill:none;color:#fff;width:26px;height:26px}
.col h3{font-size:1.05rem}
.col__go{display:inline-flex;align-items:center;gap:8px;margin-top:6px;padding:10px 22px;border-radius:999px;background:#dfe9fd;color:var(--navy);font-weight:600;text-decoration:none;font-size:.92rem;transition:background .2s,color .2s}
.col__go::after{content:"";width:8px;height:8px;border:solid currentColor;border-width:2px 2px 0 0;transform:rotate(45deg)}
.col__go:hover{background:var(--blue);color:#fff}

/* banner */
.band{padding:var(--sec) 0}
.band__in{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--blue);border-radius:var(--r);padding:40px;color:#e7efff;box-shadow:0 20px 40px rgba(40,114,250,.25)}
.band h2{color:#fff;text-align:left;font-size:1.65rem;margin-bottom:.2em}
.band p{margin:0}
.band__btns{display:flex;gap:14px;flex:none}

/* pricing */
.price__in{max-width:760px;margin:0 auto;padding:48px 40px;text-align:center;background:#fff;border-radius:var(--r-lg);border-top:3px solid var(--blue);box-shadow:0 20px 50px rgba(25,42,61,.1)}
.price .eyebrow{color:var(--slate)}
.price__status{display:inline-block;background:#fff4e0;color:#9a5b00;font-weight:700;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:4px 12px;margin:0 0 .4rem}
.price__amt{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:6px 10px;margin:.4rem 0 1.4rem}
.price__amt strong{font-size:3rem;font-weight:800;color:var(--navy);line-height:1}
.price__amt span{font-weight:600;color:var(--slate)}
.price__amt s{flex-basis:100%;color:var(--muted);font-size:.9rem}
.price__note,.price__small{display:block;color:var(--muted);font-size:.88rem;margin-top:12px}
.price__extra{text-align:left;margin:1.6rem 0;padding-top:1.4rem;border-top:1px solid var(--grey)}
.price__extra h3{font-size:1.1rem}
.rates{width:100%;border-collapse:collapse;margin:.6rem 0 .4rem;font-size:.95rem}
.rates caption{text-align:left;font-weight:700;color:var(--navy);padding:6px 0}
.rates th,.rates td{padding:9px 0;border-bottom:1px solid var(--mist);text-align:left;font-weight:400}
.rates td{text-align:right;font-weight:600;color:var(--navy);white-space:nowrap}

/* faq */
.faq__grid{display:grid;grid-template-columns:5fr 7fr;gap:48px;align-items:start}
.faq__side{background:#e1e8ed;border-radius:var(--r-lg);padding:40px;position:sticky;top:130px}
.faq__side h2{text-align:left;font-size:clamp(1.5rem,2.2vw,1.85rem);margin-top:22px}
.faq__side .btn{margin-top:24px}
.faq__list details{border-bottom:1px solid var(--mist)}
.faq__list summary{list-style:none;cursor:pointer;padding:14px 32px 14px 0;font-weight:600;color:var(--navy);position:relative}
.faq__list summary::-webkit-details-marker{display:none}
.faq__list summary::after{content:"+";position:absolute;right:4px;top:10px;font-size:1.4rem;color:var(--blue);font-weight:400}
.faq__list details[open] summary::after{content:"\2212"}
.faq__list details>div{font-size:.95rem;overflow:hidden;transition:height .3s ease,opacity .3s ease}
.faq__list details>div>p{padding-bottom:12px;margin:0}
.faq__list summary::after{transition:transform .3s ease}

/* contact */
.contact{padding:var(--sec) 0;position:relative;z-index:1}
.contact__in{max-width:var(--wrap);margin:0 auto;background:var(--navy);border-radius:var(--r-lg);padding:56px 48px;display:grid;grid-template-columns:1fr 1.75fr;gap:48px;color:#fff}
@media(max-width:1183px){.contact__in{margin:0 16px}}
.contact h2{color:#fff;text-align:left;font-size:1.5rem;margin:0 0 .2em}
.reach{display:flex;flex-direction:column;gap:10px;margin-top:22px}
.reach__item{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:var(--r-sm);padding:10px 14px;text-decoration:none;color:rgba(255,255,255,.75);font:inherit;font-size:.9rem;line-height:1.35;text-align:left;cursor:pointer;width:100%}
.reach__item:hover{background:rgba(255,255,255,.12)}
.reach__item strong{display:block;color:#fff}
.reach__icon{width:34px;height:34px;border-radius:50%;background:var(--blue);display:grid;place-items:center;flex:none}
.reach__icon .i{width:18px;height:18px;color:#fff}
.cform{display:flex;flex-direction:column;gap:20px}
.cform__row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.cform input,.cform textarea{width:100%;border:0;border-radius:24px;background:#ecf0f3;padding:14px 20px;font:inherit;color:var(--navy)}
.cform textarea{border-radius:24px;min-height:104px;resize:vertical}
.cform input:focus,.cform textarea:focus{outline:3px solid var(--blue);outline-offset:2px}
.cform .btn{align-self:center;min-width:112px}
.cform__msg{text-align:center;margin:0}
.cform__msg:empty{display:none}
.cform__msg.ok{color:#8ff0b5}.cform__msg.err{color:#ffb4b4}

/* footer: column markup and styles carried over from the original site (partials/footer-cols.html) */
.contact{background:linear-gradient(to bottom,#fff 0%,#f4f6fa 30%,#e1e3e5 62%,#e1e3e5 100%)}
.ftr{background:#e1e3e5;padding:56px 0 0}
.ftr__in{max-width:min(var(--wrap),calc(100% - 32px));margin:0 auto;padding:0}
.ftr__cols{display:grid;grid-template-columns:1fr 1.35fr 1fr 1fr;gap:28px}
@media(min-width:901px){.ftr__cols .cws-fcol a{white-space:nowrap}}
/* footer column styles, moved here because the widget cannot carry them through the API */
.cws-fcol__head{display:flex;align-items:center;gap:9px;margin:0 0 4px}
.cws-fcol__head svg{width:17px;height:17px;fill:none;stroke:#2872fa;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:0 0 17px}
.cws-fcol__head h5{margin:0;font-size:16px;color:#192a3d}
.cws-fcol__note{margin:0 0 14px;padding-left:26px;font-size:13px;color:#7a8a9b;line-height:1.4}
.cws-fcol ul{list-style:none;margin:0;padding:0 0 0 26px}
.cws-fcol li{margin:0 0 9px;line-height:1.35}
.cws-fcol a{color:#192a3d;font-weight:600;text-decoration:none;font-size:14.5px;display:inline-flex;align-items:center;gap:7px}
.cws-fcol a:hover{color:#1559ed}
.cws-fcol a::before{content:'';width:5px;height:5px;border-radius:50%;background:#7d93ab;flex:0 0 5px;transition:background .15s}
.cws-fcol a:hover::before{background:#2872fa}
.cws-ftag{font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:2px 7px;border-radius:999px}
.cws-ftag.free{background:#e4f6ea;color:#1b7a44}
.cws-ftag.paid{background:#e7effd;color:#1559ed}
.cws-ftag.new{background:#efe9fd;color:#5b3fd6}
.cws-fcol .strong a{color:#192a3d;font-weight:600}
.cws-ftag-free,.cws-ftag-paid,.cws-ftag-new{font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:2px 7px;border-radius:999px}
.cws-ftag-free{background:#e4f6ea;color:#1b7a44}
.cws-ftag-paid{background:#e7effd;color:#1559ed}
.cws-ftag-new{background:#efe9fd;color:#5b3fd6}
/* end cws-toc-collapse */

/* footer: the two hub links act as headings for the products under them (2026-09-30) */
.cws-fcol li.cws-fsub{margin-top:16px}
.cws-fcol li.cws-fsub:first-of-type{margin-top:12px}
.cws-fcol li.cws-fsub a{font-size:11px;letter-spacing:.07em;text-transform:uppercase;font-weight:700;color:#7a8a9b}
.cws-fcol li.cws-fsub a::before{display:none}
.cws-fcol li.cws-fsub a{padding-left:0}
.cws-fcol li.cws-fsub a:hover{color:#1559ed}
.cws-fcol li.cws-fend{margin-top:16px;padding-top:12px;border-top:1px solid #e1e8ed}

.ftr__facts{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;border-top:1px solid var(--line);margin-top:48px;padding:28px 0}
.ftr__facts>div{display:flex;gap:16px;align-items:center;justify-content:center;font-size:.92rem}
.ftr__facts strong{display:block;color:var(--navy);font-weight:600}
.ftr__ic{width:44px;height:44px;border-radius:50%;background:var(--line);display:grid;place-items:center;flex:none;color:var(--navy)}
.ftr__copy{border-top:1px solid var(--line);min-height:96px;display:flex;align-items:center;justify-content:center;text-align:center}
.ftr__copy p{margin:0;font-size:.88rem;color:var(--navy)}

/* sticky buy bar */
.buy{position:fixed;left:50%;bottom:16px;height:var(--fab);box-sizing:border-box;transform:translate(-50%,160%);transition:transform .35s ease;z-index:40;width:min(1040px,calc(100vw - 2 * (var(--fab) + 28px)));display:flex;align-items:center;gap:20px;background:var(--navy);color:#fff;border-radius:999px;padding:6px 6px 6px 26px;box-shadow:0 18px 40px rgba(25,42,61,.3)}
.buy.is-on{transform:translate(-50%,0)}
.buy__rot span{transition:opacity .4s ease,transform .4s ease}
.buy__rot span.is-out{opacity:0;transform:translateY(6px)}
.buy__name{margin-right:auto;font-weight:700;line-height:1.3}
.buy__price{color:#9cc0ff;font-weight:600;margin-left:6px}
.buy__rot{display:flex;align-items:center;gap:6px;font-weight:400;font-size:.85rem;color:#c9d3de}
.buy__rot .i{color:var(--blue)}
.buy__alt{color:#fff;font-size:.95rem}
.buy .btn{min-height:0;height:calc(var(--fab) - 12px);padding-block:0}
.buy__name{font-size:.95rem;line-height:1.25}

/* consent and search */
.consent{position:fixed;right:16px;bottom:16px;z-index:60;max-width:420px;background:#fff;border-radius:var(--r);box-shadow:0 20px 60px rgba(25,42,61,.25);padding:22px;font-size:.9rem}
.consent{transition:opacity .25s ease,transform .25s ease}
.consent.is-hiding,.consent.is-showing{opacity:0;transform:translateY(12px)}
.consent[hidden]{display:none}
.consent-tab{position:fixed;right:16px;bottom:16px;z-index:45;width:var(--fab);height:var(--fab);border-radius:50%;border:0;background:var(--navy);color:#fff;box-shadow:0 8px 24px rgba(25,42,61,.2);display:grid;place-items:center;cursor:pointer;transition:opacity .25s,transform .25s,background-color .3s ease,color .3s ease}
.consent-tab svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.consent-tab:hover{background:var(--blue);color:#fff}
.consent-tab[hidden]{display:none}
.consent__opts{display:flex;flex-direction:column;gap:6px;margin:0 0 14px}
.consent__opts[hidden]{display:none}
.consent__btns{display:flex;flex-wrap:wrap;gap:8px}
.consent .btn{min-height:40px;padding:8px 18px;font-size:.9rem}
/* search: full screen, darker backdrop, fades in; the bar slides up when results arrive */
.search{border:0;padding:0;margin:0;width:100vw;height:100vh;max-width:none;max-height:none;background:rgba(10,20,32,.8);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .2s ease}
.search.is-on{opacity:1}
.search::backdrop{background:transparent}
.search__in{width:min(760px,calc(100vw - 32px));margin:28vh auto 0;transition:margin-top .35s cubic-bezier(.2,.8,.2,1)}
.search.has-results .search__in{margin-top:9vh}
.search__bar{display:flex;align-items:center;gap:14px;background:#fff;border-radius:999px;padding:8px 8px 8px 24px;box-shadow:0 30px 80px rgba(0,0,0,.35);transform:translateY(8px);transition:transform .3s ease}
.search.is-on .search__bar{transform:none}
.search__bar>svg{width:22px;height:22px;flex:none;color:var(--blue)}
.search__bar input{flex:1;min-width:0;border:0;outline:0;background:none;font:inherit;font-size:1.25rem;color:var(--navy);caret-color:var(--blue);padding:12px 0}
.search__bar input::-webkit-search-cancel-button{display:none}
.search__close{flex:none;border:0;background:var(--mist);color:var(--muted);width:40px;height:40px;border-radius:50%;display:grid;place-items:center;cursor:pointer;transition:background-color .3s,color .3s}
.search__close svg{width:18px;height:18px}
.search__close:hover{background:var(--blue);color:#fff}
.search__res{margin-top:14px;max-height:calc(91vh - 140px);overflow-y:auto;overscroll-behavior:contain;display:grid;gap:8px;border-radius:20px;scrollbar-width:thin}
.search__item{display:block;background:#fff;border-radius:16px;padding:16px 20px;text-decoration:none;color:var(--text);border:2px solid transparent;transition:border-color .2s,transform .2s;animation:sIn .25s ease both}
.search__item:hover,.search__item[aria-selected=true]{border-color:var(--blue)}
.search__item strong{display:block;color:var(--navy);font-size:1.02rem;margin:2px 0 4px}
.search__type{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-2)}
.search__desc{display:block;font-size:.9rem;line-height:1.5;color:var(--muted)}
.search__desc mark{background:none;color:var(--navy);font-weight:700}
.search__status{margin:12px 0 0;text-align:center;color:#c9d3de;font-size:.85rem}
@keyframes sIn{from{opacity:0;transform:translateY(6px)}}

/* docs and legal header: the original page-hero style, pulled up under the floating menu bar */
.dochead{margin-top:-96px!important;padding-top:176px!important}

/* blog */
.phead{margin-top:-96px;padding:176px 0 0!important;text-align:center;background:linear-gradient(180deg,#e1e3e5 0%,#e9edf3 55%,#fff 100%)}
.phead .pill{text-decoration:none;margin-bottom:22px}
.phead h1{font-size:clamp(2rem,4.4vw,3.2rem);max-width:900px;margin:0 auto .4em;line-height:1.25}
.phead__meta{color:var(--muted);font-size:.92rem}
.phead__ill{max-width:240px;margin:20px auto 0;background:var(--tint);border-radius:20px;padding:10px}
.phead__ill .ill{display:block;width:100%;height:auto}
#main>.post-body{max-width:min(780px,calc(100% - 32px))}
.post-body h2{text-align:left;margin-top:1.6em}
.post-body h3{margin-top:1.4em}
.post-body pre{background:var(--navy);color:#e6edf5;padding:16px 18px;border-radius:12px;overflow:auto;font-size:.88rem}
.post-body :not(pre)>code{background:var(--mist);padding:1px 6px;border-radius:6px;font-size:.9em}
.post-body table{width:100%;border-collapse:collapse;font-size:.93rem;margin:1em 0}
.post-body th,.post-body td{border-bottom:1px solid var(--grey);padding:8px 10px;text-align:left;vertical-align:top}
.pcard{display:flex;flex-direction:column;gap:10px;background:#f2f5f7;border:1px solid #e3e8ec;border-radius:var(--r);padding:18px;text-decoration:none;color:var(--text);transition:transform .2s ease,box-shadow .2s ease}
.pcard:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.pcard__ill{display:flex;justify-content:center;background:var(--tint);border-radius:14px;padding:6px}
.pcard__ill .ill{display:block;width:auto;height:96px;aspect-ratio:900/760}
.pcard__meta{display:flex;justify-content:space-between;font-size:.8rem;color:var(--muted);font-weight:600}
.pcard strong{color:var(--navy);font-size:1.05rem;line-height:1.35}
.pcard__text{font-size:.9rem;line-height:1.55}
.pcard .hcard__go{margin:auto 0 0}
.chips--topics{margin-bottom:28px}
.chips--topics a{padding:6px 14px;font-size:.88rem;border-radius:999px}
.chips--topics a[aria-current]{background:var(--navy);color:#fff;border-color:var(--navy)}

.notice{min-height:62vh;padding-bottom:var(--sec)!important}

/* hub pages */
.hhero{margin-top:-96px;padding:176px 0 var(--sec);background:linear-gradient(180deg,#e1e3e5 0%,#e9edf3 55%,#fff 100%)}
.hhero__grid{display:grid;grid-template-columns:1.15fr 1fr;gap:48px;align-items:end}
.hhero h1{font-size:clamp(2rem,4.2vw,3.2rem);line-height:1.25;margin:0}
.hhero .pill{margin-bottom:22px}
.hhero__intro{margin:0;font-size:1rem}
.hero__btns--left{justify-content:flex-start;margin-top:24px}
.hgroup h2,.hsteps h2{text-align:left}
.hgroup__lead{max-width:760px;margin:-.2em 0 28px}
.hgrid{display:grid;gap:20px;list-style:none;margin:0;padding:0}
.hgrid--3{grid-template-columns:repeat(3,1fr)}
.hgrid--2{grid-template-columns:repeat(2,1fr)}
.hcard{display:flex;flex-direction:column;gap:10px;background:#f2f5f7;border:1px solid #e3e8ec;border-radius:var(--r);padding:24px;text-decoration:none;color:var(--text);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
a.hcard:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#cfdcf5}
.hcard__top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.hcard__top strong{color:var(--navy);font-size:1.08rem;line-height:1.3}
.hcard__text{font-size:.92rem;line-height:1.55}
.hcard__foot{margin-top:auto;padding-top:8px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.hcard__price{font-weight:700;color:var(--navy);font-size:.95rem;white-space:nowrap}
.hcard__foot .hcard__go{white-space:nowrap}
.hcard__go{display:inline-flex;align-items:center;gap:6px;color:var(--blue);font-weight:600;font-size:.9rem;text-decoration:none;margin-left:auto}
.hcard--soon{background:#fff;border-style:dashed}
.hpro{grid-column:1/-1;display:grid;grid-template-columns:1.6fr 1fr;gap:32px;align-items:center;background:var(--navy);background-image:radial-gradient(circle at 85% 20%,rgba(40,114,250,.35),transparent 55%);color:#c9d3de;border-radius:var(--r-lg);padding:36px 40px;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}
.hpro:hover{transform:translateY(-3px);box-shadow:0 20px 40px rgba(25,42,61,.25)}
.hpro__main{display:flex;flex-direction:column;gap:10px}
.hpro__tag{align-self:flex-start;background:var(--blue);color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:5px 12px}
.hpro strong{color:#fff;font-size:1.6rem;line-height:1.2}
.hpro__text{font-size:.95rem}
.chips--dark>span{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);color:#fff}
.chips--dark .i{color:#7fb0ff}
.hpro__price{display:flex;flex-direction:column;align-items:flex-start;gap:4px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:var(--r);padding:24px}
.hpro__price s{color:#93a3b5;font-size:.95rem}
.hpro__price b{color:#fff;font-size:2.4rem;line-height:1}
.hpro__price>span{color:#c9d3de;font-size:.9rem}
.hpro__price em{font-style:normal;color:#8ff0b5;font-weight:700;font-size:.95rem;margin:4px 0 12px}
@media(max-width:900px){.hpro{grid-template-columns:1fr;padding:28px 22px}}
.hcard--static{background:#f2f5f7}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips>*{background:#fff;border:1px solid #dfe5ea;border-radius:8px;padding:3px 9px;font-size:.78rem;color:var(--navy);text-decoration:none}
.chips--links>a:hover{border-color:var(--blue);color:var(--blue)}
.badge--soon,.badge--coming-soon{background:#fff4e0;color:#9a5b00}
.badge--bundle{background:var(--tint);color:var(--blue)}
.tband__in{background:var(--navy);border-radius:var(--r-lg);padding:64px 40px;text-align:center;color:#c9d3de;background-image:radial-gradient(circle at 70% 120%,rgba(40,114,250,.18),transparent 55%)}
.tband h2{color:#fff;margin:.6em 0 .4em}
.tband p{max-width:720px;margin:0 auto}
.pill--dark{background:#fff;color:var(--navy);font-size:.82rem;padding:6px 14px;box-shadow:none}
.hsteps__head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:28px}
.hsteps__head h2{margin:0}.hsteps__head p{margin:0}
.hstep{background:#f2f5f7;border-radius:var(--r);padding:26px 24px;display:flex;flex-direction:column;gap:6px}
.hstep__n{font-size:2rem;font-weight:800;color:var(--navy);line-height:1;margin-bottom:6px}
.hstep strong{color:var(--navy);font-size:1.05rem}
.hstep__sub{font-size:.88rem;color:var(--muted);margin-bottom:8px}
.ticks--sm li{font-size:.9rem;margin-bottom:.45em}
.ticks--sm .i--tick{width:18px;height:18px;padding:3px}
.hstep .hcard__go{margin:auto 0 0;padding-top:10px}

/* carried-over sections: same width as the rest of the site, same spacing rhythm */
/* One content width everywhere: every block is the same 1152px box, and anything the old site nested inside
   (inner wrappers, nested sections, their own max-widths and side padding) is flattened so text and cards
   start and end on the same lines on every page. */
#main>.blk{max-width:min(var(--wrap),calc(100% - 32px))!important;width:auto!important;margin-inline:auto!important;box-sizing:border-box;padding:var(--sec)!important}
#main>.blk :is([class$="__in"],section,.md,.zsv,.ph){padding-left:0!important;padding-right:0!important;max-width:none!important;margin-left:0!important;margin-right:0!important;width:auto!important}
#main>.blk section{padding-top:0!important;padding-bottom:0!important}
/* blocks without a panel color line their text up with the page edge; panels keep even padding inside */
#main>.blk:not(.c2--tint,.cws-inc,.cws-inc2,.cws-better,.cws-steps2,.ops--alt,.cws-home--alt,.ops-home,.cws-guide){padding-left:0!important;padding-right:0!important}
/* panels (blocks with their own color) keep roomier, even padding inside; the gap between sections stays the rhythm */
#main>.blk:is(.c2--tint,.cws-inc,.cws-inc2,.cws-better,.cws-steps2,.ops--alt,.cws-home--alt,.ops-home,.cws-guide){padding:var(--pad)!important;margin-block:var(--sec)}
#main a[class*="btn"]{white-space:nowrap}
/* text runs the full content width, so paragraphs end on the same line as the cards below them */
#main>.blk :is(p,h2,h3,ul,ol,[class$="__lead"],[class$="__sublead"],[class$="__intro"],[class$="__text"]){max-width:none!important}
/* card grids fill the row: a short last row stretches instead of leaving a hole on the right */
#main .cws-legalhub__grid{display:flex!important;flex-wrap:wrap}
#main .cws-legalhub__grid>*{flex:1 1 calc(33.333% - 18px);min-width:240px}
/* product screenshots: text beside a smaller picture that opens full size (assets/site.js) */
.c2__in:has(>.c2__shot){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);column-gap:56px;align-items:start}
.c2__in:has(>.c2__shot)>*{grid-column:1}
.c2__in:has(>.c2__shot)>.c2__shot{grid-column:2;grid-row:1/span 20;margin:0;align-self:center}
.c2__in:has(>.c2__shot) .c2__feat{grid-template-columns:1fr}
.c2__shot{cursor:zoom-in;position:relative;transition:box-shadow .2s,transform .2s}
.c2__shot:hover{box-shadow:0 18px 40px rgba(25,42,61,.16);transform:translateY(-2px)}
.c2__shot::after{content:"";position:absolute;right:12px;top:12px;width:36px;height:36px;border-radius:50%;background:var(--navy) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E") no-repeat center/16px;opacity:.85}
.zoom{position:fixed;inset:0;z-index:300;background:rgba(15,28,43,.82);display:grid;place-items:center;padding:24px;cursor:zoom-out;opacity:0;transition:opacity .2s}
.zoom.is-on{opacity:1}
.zoom img{max-width:min(1280px,100%);max-height:calc(100vh - 48px);border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.4);background:#fff}
@media(max-width:899px){.c2__in:has(>.c2__shot){display:block}.c2__shot{margin-top:24px!important}}
/* chat and cookie buttons: same size, stacked on the right (chat above cookies), same colors and hover */
#zsiq_float{width:var(--fab)!important;height:var(--fab)!important;right:16px!important;bottom:calc(16px + var(--fab) + 12px)!important;background:var(--navy)!important;transition:background-color .3s ease!important}
#zsiq_float:hover{background:var(--blue)!important}
/* no stray paragraph margins at a section's top or bottom edge, so every gap is exactly the rhythm */
#main>.blk :last-child{margin-bottom:0}
#main>.blk :first-child{margin-top:0}
#main>.blk:is(.cws-inc2,.cws-better,.cws-steps2,.cws-guide){margin-block:var(--sec)}
#main>.blk:is(.cws-inc2,.cws-better,.cws-steps2,.cws-guide)+.blk:is(.cws-inc2,.cws-better,.cws-steps2,.cws-guide){margin-top:calc(var(--sec)*2)}

/* page transitions: pages load in place and fade (assets/site.js) */
@view-transition{navigation:auto}
#main{transition:opacity .22s ease,transform .22s ease}
#main:focus{outline:none}
#main.is-leaving{opacity:0;transform:translateY(6px)}
#main.is-entering{opacity:0;transform:translateY(-6px);transition:none}
.hdr.nav-lock .mega{opacity:0!important;visibility:hidden!important}
.nav-bar{position:fixed;top:0;left:0;height:3px;width:0;background:var(--blue);z-index:200;opacity:0;transition:width 8s cubic-bezier(.1,.7,.2,1),opacity .2s}
.nav-bar.is-on{width:85%;opacity:1}

/* responsive */
@media(max-width:1060px){
  .hdr__nav,.hdr__acct{display:none}
  .hdr__menu{display:block}
  .hdr.open .hdr__bar{border-radius:var(--r);flex-wrap:wrap}
  .hdr.open .hdr__nav{display:block;order:9;width:100%;margin:8px 0}
  .hdr.open .hdr__nav>ul{flex-direction:column}
  .mega{display:none}
  .hdr__search{margin-left:auto}
  .hdr__menu{margin-left:0}
}
@media(max-width:900px){
  :root{--sec:20px;--pad:28px}
  .grid3,.cols3,.hl__grid,.talk__grid,.faq__grid,.contact__in,.ftr__facts,.hhero__grid,.hgrid--3,.hgrid--2,.hsteps__head{grid-template-columns:1fr}
  .hhero__grid{gap:20px}
  .ftr__cols{grid-template-columns:1fr 1fr}
  .ftr__facts>div{justify-content:flex-start}
  .buy{left:16px;width:calc(100vw - 32px - var(--fab) - 12px);transform:translateY(160%)}
  .buy.is-on{transform:none}
  .col+.col::before{left:0;right:0;top:0;bottom:auto;width:auto;height:1px;background:linear-gradient(90deg,rgba(206,213,217,0) 0%,#ced5d9 50%,rgba(206,213,217,0) 100%)}
  .col:nth-child(2){background:linear-gradient(90deg,rgba(240,244,249,0) 0%,#f0f4f9 50%,rgba(240,244,249,0) 100%)}
  .band__in{flex-direction:column;align-items:flex-start;padding:32px 24px}
  .band__btns{flex-wrap:wrap}
  .faq__side{position:static}
  .contact__in{padding:40px 24px}
  .quotes,.talk__card{padding:28px}
  .quotes__nav{position:static;margin-top:20px}
  .vs__key{display:flex;gap:8px;margin:0 0 12px}
  .vs__wrap{border:0;border-radius:0;box-shadow:none;overflow:visible}
  .vs__t thead{display:none}
  .vs__t,.vs__t tbody{display:block}
  .vs__t tr{display:block;border:2px solid #e1e8ed;border-radius:20px;padding:16px 16px 14px;background:#fff}
  .vs__t tr+tr{margin-top:10px}
  .vs__t th,.vs__t td{display:block;border:0;width:auto!important}
  .vs__t tbody th{padding:0 0 10px;font-size:1rem;font-weight:800;line-height:1.3}
  .vs__t td{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:start;padding:10px 12px;border-radius:12px;font-size:.93rem;line-height:1.45}
  .vs__t td+td{margin-top:4px}
  .vs__t td::before{content:"";width:10px;height:10px;border-radius:50%;background:#c7d0d9;margin:5px 0 0 7px}
  .vs__t td.us::before{width:24px;height:24px;margin:-1px 0 0;background:var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}
  .buy__rot,.buy__alt{display:none}
  .price__in{padding:36px 22px}
}
@media(max-width:560px){
  .cform__row{grid-template-columns:1fr}
  .hero{padding-top:140px}
  .hdr{padding-top:12px}
  .hdr__bar{padding-left:16px}
  .buy{padding-left:20px}
  .buy .btn{padding:10px 18px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}@view-transition{navigation:none}}

/* docs and legal contents list: follows your place on the page; sub-sections open for the section you are in */
.cws-guide__wrap{display:block!important}
.cws-doc__toc .cws-doc__sub{display:none}
.cws-doc__toc li.is-open>.cws-doc__sub{display:block}
:is(.cws-doc__toc,.cws-legal__toc) a{transition:color .2s}
:is(.cws-doc__toc,.cws-legal__toc) a.is-current{color:var(--blue)!important;font-weight:700}

/* blog: black and white photography (Pexels), a wide cover under the title and pictures between sections */
.phead{padding-bottom:0}
.post-cover{max-width:min(var(--wrap),calc(100% - 32px));margin:40px auto 0;position:relative}
.post-cover img{display:block;width:100%;height:auto;max-height:520px;object-fit:cover;border-radius:var(--r-lg)}
.post-cover figcaption,.post-fig figcaption{font-size:.8rem;color:var(--muted);margin-top:8px}
.post-cover figcaption a,.post-fig figcaption a{color:inherit}
.post-fig{margin:2.2em 0}
.post-fig img{display:block;width:100%;height:auto;max-height:460px;object-fit:cover;border-radius:var(--r)}
/* the setup guide reads as ordinary sections of the doc, not a box inside a box */
#main .cws-guide,#main .cws-guide__in,#main .cws-guide__body,#main .cws-guide__wrap{background:none!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
#main .cws-guide{margin-top:48px!important}
#main .cws-guide h2,#main .cws-guide__lead{text-align:left!important}

/* pricing widgets (mockup at /mockups/pricing/, becomes the real pricing section once chosen) */
.pt-demo__note{color:var(--muted);margin:-.4em 0 28px}
#main .pt-demo h2{text-align:left!important}
.pt-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:20px;align-items:stretch}
.pt-card{position:relative;background:#fff;border:1px solid #dfe5ec;border-radius:20px;padding:32px;display:flex;flex-direction:column;gap:6px}
.pt-card .btn{align-self:flex-start;margin-top:auto}
.pt-card .ticks{margin:14px 0 22px}
.pt-card__name{font-weight:700;color:var(--navy);margin:0}
.pt-card__amt{margin:0;display:flex;align-items:baseline;gap:6px}
.pt-card__amt strong{font-size:2.8rem;line-height:1.1;color:var(--navy);font-weight:800}
.pt-card__amt span{color:var(--muted);font-weight:600}
.pt-card__terms,.pt-card__cap{margin:0;color:var(--muted);font-size:.92rem}
.pt-card__cap{color:var(--blue-2);font-weight:600}
.pt-card__flag{position:absolute;top:-13px;left:32px;margin:0;background:var(--blue);color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:4px 12px}
.pt-card--pop{border:2px solid var(--blue);box-shadow:0 20px 40px rgba(40,114,250,.14)}
.pt-over{margin-top:18px;border-top:1px solid #dfe5ec;padding-top:12px}
.pt-over summary{cursor:pointer;font-weight:600;color:var(--blue-2);font-size:.92rem}
.pt-over .rates{margin-top:10px}
.pt-pro{background:var(--navy);color:#c9d3de;border-radius:20px;padding:32px;display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden}
.pt-pro h3{color:#fff;margin:0;font-size:1.3rem}
.pt-pro__tag{margin:0;color:#9cc0ff;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.pt-pro__amt{margin:0;display:flex;align-items:baseline;gap:6px}
.pt-pro__amt strong{font-size:2.2rem;color:#fff;font-weight:800}
.pt-pro__save{margin:0;color:#7ee2a8;font-weight:700}
.pt-pro__list{list-style:none;padding:0;margin:14px 0 22px;display:grid;gap:8px}
.pt-pro__list li{display:flex;gap:10px;align-items:center;color:#fff}
.pt-pro .btn{align-self:flex-start;margin-top:auto}
.pt-tiers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.pt-probar{margin-top:20px;background:var(--navy);color:#c9d3de;border-radius:20px;padding:28px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.pt-probar h3{color:#fff;margin:4px 0 4px;font-size:1.2rem}
.pt-probar p{margin:0}
.pt-card--bundle{max-width:none;border:2px solid var(--blue)}
.pt-card__was{margin:4px 0 0;color:var(--text)}
.pt-card__was s{color:var(--muted)}
.pt-sum{width:100%;border-collapse:collapse;margin:18px 0 6px;font-size:.95rem}
.pt-sum th,.pt-sum td{padding:10px 0;border-bottom:1px solid #eef1f4;text-align:left;font-weight:500;color:var(--text)}
.pt-sum td{text-align:right}
.pt-sum__total th,.pt-sum__total td{color:var(--muted);text-decoration:line-through}
.pt-sum__pro th,.pt-sum__pro td{border-bottom:0;font-weight:800;color:var(--navy);font-size:1.05rem}
@media(max-width:899px){.pt-row,.pt-tiers{grid-template-columns:1fr}.pt-probar{flex-direction:column;align-items:flex-start}}

/* buy bar options (mockup at /mockups/buy-bar/) */
.buy__rot,.buy__rot span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bb-stage{position:relative;background:linear-gradient(180deg,#f5f7fa,#e9edf2);border-radius:20px;padding:28px 24px;display:flex;align-items:center;gap:12px}
.bb-fab{flex:none;width:var(--fab);height:var(--fab);border-radius:50%;background:var(--navy);margin-left:auto}
.bb{flex:1;height:var(--fab);box-sizing:border-box;display:flex;align-items:center;gap:20px;background:var(--navy);color:#fff;border-radius:999px;padding:6px 6px 6px 26px;box-shadow:0 18px 40px rgba(25,42,61,.25);min-width:0}
.bb .btn{min-height:0;height:calc(var(--fab) - 12px);padding-block:0;flex:none}
.bb__main{margin-right:auto;display:flex;align-items:baseline;gap:8px;min-width:0;white-space:nowrap}
.bb__main b{font-size:.95rem}
.bb__price{color:#9cc0ff;font-weight:600}
.bb__rot{display:flex;align-items:center;gap:6px;color:#c9d3de;font-size:.85rem;margin-left:10px;overflow:hidden;text-overflow:ellipsis}
.bb__rot .i{color:var(--blue)}
.bb__link{color:#fff;font-size:.92rem;white-space:nowrap}
.bb__pro{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-size:.9rem;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:8px 14px;white-space:nowrap;transition:background-color .3s}
.bb__pro:hover{background:rgba(255,255,255,.16)}
.bb__tag{background:#7ee2a8;color:var(--navy);font-weight:800;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:3px 8px}
.bb__nav{display:flex;gap:4px}
.bb__nav a{color:#c9d3de;text-decoration:none;font-size:.88rem;font-weight:600;padding:8px 12px;border-radius:999px;transition:background-color .3s,color .3s}
.bb__nav a:hover{color:#fff}
.bb__nav a.is-on{background:rgba(255,255,255,.12);color:#fff}
.bb--compact{flex:none;margin-left:auto;gap:14px}
.bb--compact+.bb-fab{margin-left:0}
.bb--light{background:#fff;color:var(--navy);border:1px solid #dfe5ec;box-shadow:0 18px 40px rgba(25,42,61,.12)}
.bb--light .bb__price{color:var(--blue-2)}
.bb--light .bb__rot{color:var(--muted)}
.bb--light .bb__link{color:var(--navy)}
@media(max-width:899px){.bb__link,.bb__rot,.bb__nav,.bb__pro{display:none}}

/* legal links sit in the copyright bar, the usual place people look for them */
.ftr__copy{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ftr__legal{display:flex;gap:18px}
.ftr__legal a{color:var(--muted);font-size:.85rem;text-decoration:none;transition:color .3s}
.ftr__legal a:hover{color:var(--blue-2)}
@media(max-width:700px){.ftr__copy{justify-content:center;text-align:center}}
/* the chat window opens above the chat button, so the button stays clickable to close it */
@media(min-width:761px){#zsiq_chat_wrap{right:16px!important;bottom:calc(16px + var(--fab) * 2 + 24px)!important;max-height:calc(100vh - 16px - var(--fab) * 2 - 24px - 110px)!important}}
#zsiq_chat_wrap #siq_chatwindow{max-height:100%!important}
/* while the cookie banner is open, the chat button and window step aside */
#zsiq_float,#zsiq_chat_wrap{transition:opacity .25s ease,visibility .25s,background-color .3s ease!important}
.consent-open #zsiq_float,.consent-open #zsiq_chat_wrap{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
/* no two neighboring sections share a look: the second panel on comparison pages is an outlined white card */
#main>.blk.cws-better{background:#fff!important;border:1px solid #dfe5ec;box-shadow:0 18px 40px rgba(25,42,61,.06)}

/* comparison page options (mockup at /mockups/comparison/) */
.cx{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;flex:none;font-weight:800;font-size:15px;line-height:1}
.cx .i{width:14px;height:14px}
.cx--yes{background:var(--blue);color:#fff}
.cx--no{background:#fde8e8;color:#c0392b}
.cx--mid{background:#fff1d6;color:#9a5b00}
.cg-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px;container-type:inline-size;--tw:calc((100cqi - 36px) / 4 - 44px)}
/* each tile is a 2-row subgrid, so numbers and labels line up across the row and every tile is the same height */
.cg-tile{background:var(--navy);color:#c9d3de;border-radius:18px;padding:22px;display:grid;grid-row:span 2;grid-template-rows:subgrid;row-gap:0;align-content:start}
/* --n (set by the comparison template) is the longest number on the page: every number in the row shrinks to the same size so the longest fits on one line */
.cg-tile b{display:block;color:#fff;font-size:min(2rem,calc(var(--tw) / (var(--n,8) * .6)));font-weight:800;line-height:1.1;margin-bottom:6px;white-space:nowrap;align-self:end}
.cg-tile span{font-size:.88rem}
@media(max-width:899px){.cg-tiles{--tw:calc((100cqi - 12px) / 2 - 44px)}.cg-tile b{font-size:max(1.2rem,min(2rem,calc(var(--tw) / (var(--n,8) * .6))));white-space:normal}}
.ct{border:1px solid #dfe5ec;border-radius:20px;overflow:hidden;background:#fff}
.ct table{width:100%;border-collapse:collapse}
.ct th,.ct td{padding:14px 20px;border-bottom:1px solid #eef1f4;text-align:left;vertical-align:middle;font-size:.95rem}
.ct thead th{background:#f5f7fa;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ct thead th.us{background:var(--blue);color:#fff}
.ct tbody th{font-weight:700;color:var(--navy);width:28%}
.ct td{color:var(--text)}
.ct td>span:last-child{margin-left:10px}
.ct td{white-space:normal}
.ct td.us{background:#f3f7ff;color:var(--navy);font-weight:600}
.ct td{display:table-cell}
.ct td .cx{vertical-align:middle}
.ct tr:last-child th,.ct tr:last-child td{border-bottom:0}
.cpick{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}
.cpick__c{border:1px solid #dfe5ec;border-radius:20px;padding:28px;background:#fff}
.cpick__c--us{background:var(--blue);border-color:var(--blue);color:#fff}
.cpick__c--us .eyebrow,.cpick__c--us .ticks li{color:#fff}
.cpick__c--us .i--tick{background:#fff;color:var(--blue)}
.cpick__c .btn{margin-top:12px}
.cv-cards{display:grid;gap:10px}
.cv-card{border:2px solid #e1e8ed;border-radius:20px;padding:16px 16px 14px;background:#fff}
#main .cv-card h3{margin:0 0 10px;font-size:1rem!important;line-height:1.3!important;color:var(--navy);font-weight:800;text-align:left}
.cv-line{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:start;padding:10px 12px;border-radius:12px;font-size:.93rem;line-height:1.45;color:var(--text)}
.cv-line+.cv-line{margin-top:4px}
.cv-line small{display:block;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:1px}
.cv-line--us{background:#f3f7ff;color:var(--navy);font-weight:600}
.cv-line--us small{color:var(--blue-2)}
.cq{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}
/* each question is a 3-row subgrid (number, title, answers), so titles and answers start at the same height in every card of the row */
.cq__q{border:1px solid #dfe5ec;border-radius:20px;padding:24px;background:#fff;display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:0;align-content:start}
.cq__n{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#e6eefb;color:var(--navy);font-weight:800;margin-bottom:12px}
.cq__q h3{font-size:1.05rem;margin:0 0 14px}
.cq__a{display:grid;gap:8px}
.cq__a{align-self:start}
.cq__a>div{border-radius:12px;padding:12px 14px;background:#f5f7fa;display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:.9rem}
.cq__a>div span{color:var(--muted);white-space:nowrap}
.cq__a .cq__a--us{background:var(--blue);color:#fff}
.cq__a .cq__a--us span{color:#fff;font-weight:700}
@media(max-width:899px){.cg-tiles{grid-template-columns:1fr 1fr}.cpick,.cq{grid-template-columns:1fr}.ct th,.ct td{padding:12px}}

/* Partners sits under Learn in the same column; every column note stays on one line */
.cws-fstack{display:flex;flex-direction:column;gap:28px}
@media(min-width:901px){.cws-fcol__note{white-space:nowrap}}

/* blog: smaller cover, photos set beside the text (alternating sides), related articles row */
.post-cover img{max-height:340px!important}
.post-body{display:flow-root}
.post-body .post-fig{width:42%;margin:.4em 0 1.2em 2.2em;float:right}
.post-body .post-fig:nth-of-type(even){float:left;margin:.4em 2.2em 1.2em 0}
.post-body .post-fig img{max-height:none;aspect-ratio:4/3;object-fit:cover}
@media(max-width:760px){.post-body .post-fig,.post-body .post-fig:nth-of-type(even){float:none;width:100%;margin:1.6em 0}}
.pcard__img{display:block;border-radius:14px;overflow:hidden;aspect-ratio:16/9;background:var(--mist)}
.pcard__img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.pcard:hover .pcard__img img{transform:scale(1.04)}
.more__head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}
#main .more__head h2{margin:0;text-align:left}
.more__nav{display:flex;align-items:center;gap:10px}
.more__nav button{width:40px;height:40px;border-radius:50%;border:0;background:var(--navy);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background-color .3s,opacity .3s}
.more__nav button:hover{background:var(--blue)}
.more__nav button:disabled{opacity:.3;cursor:default;background:var(--navy)}
.more__nav[data-fits] button{display:none}
.txtlink--dark{color:var(--blue-2);margin-left:8px}
.more{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 40px)/3);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding-bottom:4px}
.more::-webkit-scrollbar{display:none}
.more>*{scroll-snap-align:start}
@media(max-width:900px){.more{grid-auto-columns:85%}}
/* pricing v2 */
.pv{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:20px;align-items:start}
.pv-main{background:#fff;border:1px solid #dfe5ec;border-radius:20px;padding:32px;box-shadow:0 20px 40px rgba(25,42,61,.06)}
.pv-top{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}
.pv-name{margin:0;font-weight:800;color:var(--navy);font-size:1.3rem}
.pv-pitch{margin:4px 0 0;color:var(--muted);max-width:420px}
.pv-price{text-align:right;white-space:nowrap}
.pv-price strong{display:block;font-size:3rem;line-height:1;color:var(--navy);font-weight:800}
.pv-price span{color:var(--muted);font-weight:600;font-size:.9rem}
.pv-terms{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 4px}
.pv-terms span{display:inline-flex;align-items:center;gap:6px;background:#eef3fb;color:var(--navy);border-radius:999px;padding:6px 12px;font-size:.85rem;font-weight:600}
.pv-terms .i{color:var(--blue)}
.pv-sub{margin:24px 0 10px;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-2)}
.pv-lim{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}
.pv-lim div{background:#f5f7fa;border-radius:14px;padding:14px 16px}
.pv-lim b{display:block;font-size:1.4rem;color:var(--navy);font-weight:800;line-height:1.1}
.pv-lim span{font-size:.85rem;color:var(--muted)}
/* desktop: tiles share the row evenly but never get narrower than their label, so every label stays on one line */
@media(min-width:900px){.pv-main>.pv-lim{display:flex;flex-wrap:wrap}.pv-main>.pv-lim>div{flex:1 1 0;min-width:max-content}.pv-main>.pv-lim span{white-space:nowrap}}
.pv-does{display:grid;grid-template-columns:1fr 1fr;gap:6px 20px;margin:0}
.pv-over{margin-top:24px;border-top:1px solid #eef1f4;padding-top:16px}
.pv-over__h{margin:0 0 8px;font-weight:700;color:var(--navy)}
.pv-over__t{width:100%;border-collapse:collapse;font-size:.9rem}
.pv-over__t th,.pv-over__t td{padding:7px 0;border-bottom:1px solid #f0f3f6;text-align:left;font-weight:500;color:var(--text)}
.pv-over__t th{color:var(--navy);font-weight:700;width:28%}
.pv-over__t td:last-child{text-align:right;font-weight:700;color:var(--navy)}
.pv-over__n{margin:8px 0 0;font-size:.82rem;color:var(--muted)}
.pv-cta{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}
.pv-pro{background:var(--navy);color:#c9d3de;border-radius:20px;padding:30px;position:sticky;top:120px;display:flex;flex-direction:column;gap:6px}
.pv-pro h3{color:#fff;margin:0;font-size:1.3rem}
.pv-pro__was{margin:0 0 10px;font-size:.88rem}
.pv-up{width:100%;border-collapse:collapse;font-size:.88rem;margin:6px 0 18px}
.pv-up th,.pv-up td{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.1);text-align:left}
.pv-up thead th{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:#9cc0ff}
.pv-up tbody th{color:#c9d3de;font-weight:500}
.pv-up td:last-child{color:#fff;font-weight:700}
.pv-up__m{display:none}
@media(max-width:760px){
  .pv-up th,.pv-up td{overflow-wrap:normal;word-break:normal;hyphens:manual;vertical-align:middle;padding:10px 0}
  .pv-up thead th{font-size:.68rem}
  .pv-up thead th+th,.pv-up td{text-align:center;padding-left:10px;min-width:62px}
  .pv-up thead th:last-child{color:#fff}
  .pv-up td{color:#c9d3de;white-space:nowrap}
  .pv-up__w{display:none}
  .pv-up__m{display:inline-grid;vertical-align:middle}
  .pv-up .cx{width:20px;height:20px}
  .pv-up .cx .i{width:12px;height:12px}
  .pv-up__no{display:inline-block;width:18px;height:2px;border-radius:2px;background:#5a6d82}
}
.pv-pro .btn{align-self:flex-start}
.pv-tiernote{margin:14px 0 0;text-align:center;color:var(--muted);font-size:.9rem}
.pv-bundle__grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}
@media(max-width:899px){.pv,.pv-bundle__grid{grid-template-columns:1fr}.pv-does{grid-template-columns:1fr}.pv-pro{position:static}.pv-top{flex-direction:column}.pv-price{text-align:left}}
.bb--split{padding:6px;gap:0}
.bb__now{display:flex;align-items:center;gap:10px;padding:0 18px 0 20px;margin-right:auto;white-space:nowrap;min-width:0}
.bb__lbl{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#9cc0ff}
.bb--split .btn{margin-right:8px}
.bb__alt{display:flex;align-items:center;gap:10px;height:100%;background:#eef4ff;color:var(--navy);border-radius:999px;padding:0 8px 0 18px;text-decoration:none;white-space:nowrap;transition:background-color .3s}
.bb__alt:hover{background:#fff}
.bb__alt .bb__lbl{color:var(--blue-2)}
.bb__alt b{font-size:.92rem}
.bb__altp{font-size:.85rem;color:var(--text)}
.bb__go{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--blue);color:#fff}
@media(max-width:1100px){.bb__altp,.bb__now .bb__lbl{display:none}}

/* FAQ side panel: direct ways to ask, instead of a decorative picture */
.faq__ask{margin-top:28px;padding-top:22px;border-top:1px solid rgba(25,42,61,.1);display:grid;gap:8px}
.faq__ask>p{margin:0 0 4px;font-weight:700;color:var(--navy)}
.faq__ask a,.faq__ask button{display:flex;align-items:center;gap:12px;background:#fff;border:0;border-radius:14px;padding:12px 14px;text-align:left;font:inherit;color:var(--text);text-decoration:none;cursor:pointer;transition:background-color .3s,color .3s}
.faq__ask a:hover,.faq__ask button:hover{background:var(--blue);color:#fff}
.faq__ask a:hover b,.faq__ask button:hover b{color:#fff}
.faq__ask svg{width:20px;height:20px;flex:none;fill:none;stroke:var(--blue);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:stroke .3s}
.faq__ask a:hover svg,.faq__ask button:hover svg{stroke:#fff}
.faq__ask span{display:flex;flex-direction:column;font-size:.85rem;line-height:1.35}
.faq__ask b{color:var(--navy);font-size:.95rem;transition:color .3s}

/* search: a small spinner while results are on the way */
.search__spin{flex:none;width:20px;height:20px;border-radius:50%;border:2.5px solid #dfe5ec;border-top-color:var(--blue);opacity:0;transition:opacity .15s;animation:sSpin .7s linear infinite}
.search.is-busy .search__spin{opacity:1}
@keyframes sSpin{to{transform:rotate(360deg)}}
/* comparison pages: glance, side by side, who should pick which */
#main .cmp h2{text-align:left}
.cmp__sub{margin:36px 0 14px;font-size:1.2rem}
.cmp__narrow{display:none}
@media(max-width:760px){.cmp__wide{display:none}.cmp__narrow{display:block}}
.cmp .cpick{margin-top:0}
/* footer options (mockup at /mockups/footer/) */
.fm-stage{background:#e1e3e5;border-radius:20px;padding:40px}
.fm ul{list-style:none;margin:0;padding:0}
.fm a{color:var(--navy);text-decoration:none;font-weight:600;font-size:.92rem;transition:color .3s}
.fm a:hover{color:var(--blue-2)}
.fm-h{margin:0 0 12px;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-2)}
.fm-col li{margin:0 0 9px}
.fm--a{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,3fr);gap:48px}
.fm-brand img{display:block;border-radius:10px;margin-bottom:12px}
.fm-brand__name{margin:0 0 6px;font-weight:800;color:var(--navy)}
.fm-brand p{margin:0 0 14px;font-size:.9rem;color:var(--text)}
.fm-contact li{display:flex;align-items:center;gap:10px;margin:0 0 8px}
.fm-contact svg{width:18px;height:18px;fill:none;stroke:var(--blue);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.fm-contact button{background:none;border:0;padding:0;font:inherit;font-weight:600;font-size:.92rem;color:var(--navy);cursor:pointer}
.fm-hours{font-size:.82rem!important;color:var(--muted)!important}
.fm-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.fm-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--navy);color:#c9d3de;border-radius:18px;padding:24px 28px;margin-bottom:36px}
.fm-cta__h{margin:0 0 4px;color:#fff;font-weight:800;font-size:1.15rem}
.fm-cta p{margin:0}
.fm-cta__btns{display:flex;gap:10px;flex:none}
.fm--c{display:grid;gap:14px}
.fm-row{display:grid;grid-template-columns:180px 1fr;align-items:baseline;gap:16px;padding-bottom:14px;border-bottom:1px solid rgba(25,42,61,.1)}
.fm-row .fm-h{margin:0}
.fm-row ul{display:flex;flex-wrap:wrap;gap:8px 22px}
@media(max-width:899px){.fm--a{grid-template-columns:1fr}.fm-cols{grid-template-columns:1fr 1fr}.fm-cta{flex-direction:column;align-items:flex-start}.fm-row{grid-template-columns:1fr}}
.fm a.btn{color:#fff}
/* buy bar, split: this service on the left with its rotating checklist, the Pro bundle as its own panel on the right */
.buy--split{padding:6px;gap:0}
.buy__now{margin-right:auto;padding:0 16px 0 20px;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:1px;line-height:1.25}
.buy__line{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.buy__line b{font-size:.95rem}
.buy__lbl{font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#9cc0ff}
.buy--split .btn{margin-right:8px}
.buy__pro{display:flex;flex-direction:column;justify-content:center;gap:1px;position:relative;height:100%;background:#eef4ff;color:var(--navy);border-radius:999px;padding:0 50px 0 20px;text-decoration:none;white-space:nowrap;line-height:1.25;transition:background-color .3s}
.buy__pro:hover{background:#fff}
.buy__pro .buy__lbl{color:var(--blue-2)}
.buy__proline{font-size:.85rem;color:var(--text)}
.buy__proline b{color:var(--navy);font-size:.92rem}
.buy__go{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--blue);color:#fff}
@media(max-width:1100px){.buy__pro .buy__lbl,.buy--split .buy__rot{display:none}}
@media(max-width:760px){.buy__pro{display:none}}
.pv-terms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.pv-terms span{justify-content:center;text-align:center}
@media(max-width:600px){.pv-terms{grid-template-columns:1fr 1fr}}
.pv-terms span{white-space:nowrap}
.pv-terms--wide{grid-template-columns:repeat(6,minmax(0,1fr));margin:0 0 28px}
.pt-card__pitch{margin:0 0 8px;color:var(--muted);font-size:.9rem}
.pv-lim--stack{grid-template-columns:1fr}
.pv-lim--stack div{display:flex;align-items:baseline;gap:8px;padding:10px 14px}
.pv-lim--stack b{font-size:1.1rem}
.pv-cmpwrap{margin-top:28px;background:#fff;border:1px solid #dfe5ec;border-radius:20px;padding:28px}
.pv-cmpwrap .pv-sub{margin-top:0}
.pv-cmpwrap .ct td{text-align:center}
.pv-cmpwrap .ct thead th{text-align:center}
.pv-cmpwrap .ct thead th:first-child{text-align:left}
@media(max-width:1000px){.pv-terms--wide{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pt-card__pitch{min-height:2.9em}
/* Keep Reading: room around the row so the hover shadow is soft and never cut off by the scroll edge */
.more{padding:14px 24px 44px;margin:-14px -24px -40px;scroll-padding-inline:24px}
.pcard{transition:transform .25s ease,box-shadow .25s ease}
.pcard:hover{box-shadow:0 18px 40px rgba(25,42,61,.12)}
/* blog topic filter: cards fade out, the grid closes up, the chosen ones fade in */
.posts .pcard{transition:opacity .22s ease,transform .22s ease,box-shadow .25s ease}
[data-posts]{transition:opacity .3s ease,height .5s cubic-bezier(.4,0,.2,1)}
[data-posts].is-sizing{overflow:hidden}
[data-posts].is-fading{opacity:0}
.posts .pcard[hidden]{display:none}
/* the split bar never runs past its edge: the service side gives way first */
.buy--split{overflow:hidden}
.buy__now{flex:1 1 auto}
.buy__line,.buy--split .buy__rot{overflow:hidden;text-overflow:ellipsis}
.buy__line b{overflow:hidden;text-overflow:ellipsis}
.buy__pro,.buy--split .btn{flex:none}
@media(max-width:1250px){.buy__pro .buy__lbl{display:none}}
.pv-bundle .pv-lim{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:600px){.pv-bundle .pv-lim{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pv-adds{display:grid;gap:6px;margin-bottom:20px}
.pv-adds details{background:#f3f7ff;border-radius:12px;padding:10px 14px}
.pv-adds summary{cursor:pointer;list-style:none;font-weight:700;color:var(--navy);display:flex;align-items:center;gap:10px}
.pv-adds summary::-webkit-details-marker{display:none}
.pv-adds summary::before{content:"+";display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--blue);color:#fff;font-size:14px;line-height:1;flex:none}
.pv-adds details[open] summary::before{content:"\2212"}
.pv-adds p{margin:6px 0 2px 30px;font-size:.9rem;color:var(--text)}
.pv-bundle .pv-lim b{font-size:1.15rem;overflow-wrap:anywhere}
.fm-stage--dark{background:var(--navy)}
.fm--dark{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,2fr);gap:56px;color:#c9d3de}
.fm--dark a{color:#fff}
.fm--dark a:hover{color:#9cc0ff}
.fm--dark .fm-h{color:#9cc0ff}
.fm-dark__big{font-size:1.5rem;line-height:1.3;font-weight:800;color:#fff;margin:0 0 20px}
.fm--dark .btn{margin-bottom:22px}
.fm--dark .fm-contact svg{stroke:#9cc0ff}
.fm-dark__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.fm-dark__cols li,.fm-under li,.fm-card li{margin:0 0 9px}
.fm-h--gap{margin-top:24px!important}
.fm--center{text-align:center}
.fm-center__name{margin:0;font-weight:800;font-size:1.2rem;color:var(--navy)}
.fm-center__line{margin:6px 0 22px;color:var(--muted)}
.fm-center__nav{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 26px;max-width:860px;margin:0 auto 22px}
.fm--center .fm-contact{display:flex;justify-content:center;gap:28px}
.fm--cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.fm-card{background:#fff;border:1px solid #dfe5ec;border-radius:18px;padding:22px}
.fm-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:32px}
.fm-tile{display:block;background:#fff;border-radius:14px;padding:16px 18px;transition:background-color .3s,transform .2s}
.fm-tile:hover{background:var(--blue);transform:translateY(-2px)}
.fm-tile b{display:block;color:var(--navy);margin-bottom:4px;transition:color .3s}
.fm-tile span{font-size:.82rem;font-weight:500;color:var(--muted);transition:color .3s}
.fm-tile:hover b,.fm-tile:hover span{color:#fff}
.fm-tile--all{background:var(--navy)}
.fm-tile--all b,.fm-tile--all span{color:#fff}
.fm-under{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
@media(max-width:899px){.fm--dark,.fm-dark__cols,.fm--cards,.fm-tiles,.fm-under{grid-template-columns:1fr 1fr}}
/* the link at the end of "what ships" is a real button, centered under the list like the heading above it */
#main .cws-inc2__link{display:flex;width:max-content;max-width:100%;box-sizing:border-box;text-align:center;margin:32px auto 0;align-items:center;gap:8px;min-height:48px;padding:12px 28px;border-radius:999px;background:var(--navy);color:#fff!important;font-weight:600;text-decoration:none;transition:background-color .3s}
#main .cws-inc2__link:hover{background:var(--blue)}
/* switching steps: two wide columns, a quieter title and brighter, roomier text so it reads easily on navy */
@media(min-width:761px){#main .cws-steps2__list{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px}}
#main .cws-steps2__list li{display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:start;padding:26px 28px;background:rgba(255,255,255,.07)}
#main .cws-steps2__list span{grid-row:span 2;margin:0}
#main .cws-steps2__list h3{font-size:1.05rem;line-height:1.4;font-weight:700;margin:4px 0 8px}
#main .cws-steps2__list p{opacity:1;color:#d7dee6;font-size:.98rem;line-height:1.65}
#main .cws-steps2__list li{align-content:start}
#main .cws-steps2__list h3 br{display:none}

/* footer links (option G): service tiles, then four short lists */
.ftr__links ul{list-style:none;margin:0;padding:0}
.ftr__links a{text-decoration:none;font-weight:600;font-size:.92rem;color:var(--navy)}
.ftr__links .fm-under a{transition:color .3s ease}
.ftr__links .fm-tile{transition:background-color .3s ease,transform .3s ease,box-shadow .3s ease}
.ftr__links .fm-tile b,.ftr__links .fm-tile span{transition:color .3s ease}
.ftr__links .fm-tile:hover{box-shadow:0 14px 30px rgba(25,42,61,.14)}
.ftr__links .fm-under a:hover{color:var(--blue-2)}
.ftr__links .fm-h{margin:0 0 12px;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--blue-2)}
.ftr__links .fm-under li{margin:0 0 9px}

/* ===== One hover behavior everywhere =====
   Every button and card fades (.3s) to a clearly different state:
   dark buttons turn bright blue, blue buttons turn navy, light buttons turn bright blue with white text,
   buttons sitting on a dark or blue panel turn white, and cards lift with a blue edge. */
.btn,[class*="__btn"],[class*="__cta"],.cws-inc2__link,.col__go,.buy__pro,.card-go,
.hcard,.pcard,.cws-home__card,.cws-home__prod,.cws-legal__card,.talk__card,.fm-tile{transition:color .3s ease,background-color .3s ease,border-color .3s ease,box-shadow .3s ease,transform .3s ease!important}
/* dark buttons */
#main :is(.btn--navy,.cws-inc__btn,.cws-inc2__link,.cws-phero__btn:not(.cws-phero__btn--alt)):hover{background:var(--blue)!important;color:#fff!important}
/* blue buttons */
:is(#main,.mega,.buy,.consent) :is(.btn--blue,.cws-about__btn,.cws-home__btn,.cws-better__cta,.cws-wporg__btn,.cws-docl__btn,.cws-mm__btn,.ops-home__btn:not(.ops-home__btn--ghost)):hover{background:var(--navy)!important;color:#fff!important}
/* light buttons */
#main :is(.btn--grey,.btn--white,.btn--ghost,.cws-phero__btn--alt,.cws-vs__cta,.col__go):hover,.consent .btn--ghost:hover{background:var(--blue)!important;color:#fff!important;border-color:var(--blue)!important}
/* buttons on navy panels: turn white */
:is(.cws-steps2,.ops-home,.pt-pro,.pv-pro,.pt-probar,.contact,.buy,.cg-tile) :is(.btn--blue,.cws-steps2__cta,.ops-home__btn,.btn--white,.btn--outline,.ops-home__btn--ghost):hover{background:#fff!important;color:var(--navy)!important;border-color:#fff!important}
/* buttons on blue panels (the band, the "Choose Cascadia" card): turn navy */
:is(.band__in,.cpick__c--us) :is(.btn--white,.btn--outline):hover{background:var(--navy)!important;color:#fff!important;border-color:var(--navy)!important}
/* outline buttons on dark backgrounds elsewhere */
.btn--outline:hover{background:#fff!important;color:var(--navy)!important}
/* the bundle panel in the buy bar */
.buy__pro:hover{background:var(--blue)!important}
.buy__pro:hover :is(.buy__lbl,.buy__proline,.buy__proline b){color:#fff!important}
.buy__pro:hover .buy__go{background:var(--navy)}
/* cards: lift, soft shadow, blue edge */
#main :is(.hcard,.pcard,.cws-home__card,.cws-home__prod,.cws-legal__card):hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(25,42,61,.12)!important;border-color:var(--blue)!important}
#main .talk__card:hover{background:var(--navy)!important}
.talk__go{transition:background-color .3s ease}
#main .talk__card:hover .talk__go{background:var(--blue-2)}
/* a card's own follow-on link, placed under the text rather than inside a sentence */
.card-go{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-weight:700;color:var(--blue-2);text-decoration:none}
.card-go::after{content:"";width:8px;height:8px;border:solid currentColor;border-width:2px 2px 0 0;transform:rotate(45deg);transition:transform .3s ease}
.card-go:hover{color:var(--navy)}
.card-go:hover::after{transform:translateX(3px) rotate(45deg)}
/* inline text links inside body copy: underline fades in color */
#main p a:not([class]){transition:color .3s ease}
#main p a:not([class]):hover{color:var(--navy)}
/* contact options beside the form: fade to a lighter panel with a bright icon */
.reach__item,.reach__icon{transition:background-color .3s ease,border-color .3s ease,color .3s ease,transform .3s ease!important}
.reach__item:hover{background:rgba(255,255,255,.12)!important;border-color:rgba(255,255,255,.35)!important;transform:translateX(3px)}
.reach__item:hover .reach__icon{background:#fff!important;color:var(--blue)!important}
/* product comparison buttons */
#main .cws-vs__cta:hover{background:var(--blue)!important;color:#fff!important}
#main .cws-vs__link{transition:color .3s ease,opacity .3s ease}
#main .cws-vs__link:hover{color:#9cc0ff!important}
.reach__icon .i{transition:color .3s ease}
.reach__item:hover .reach__icon .i{color:var(--blue)!important}

/* ===== Responsive fit: every screen size (2026-10-02) =====
   Fit fixes only, the look stays the same. Appended last so it wins over the rules above. */

/* Mega menus: compact enough to open in full on a 1280x720 or 1366x768 screen with no inner scrollbar.
   The max-height is only a safety net for unusually short windows. */
.cws-mm,.cws-pm{max-height:calc(100vh - 124px);max-height:calc(100dvh - 124px);overflow-y:auto;overscroll-behavior:contain}
.cws-mm{padding:12px 30px 16px}
.cws-mm__col{padding:14px 22px}
.cws-mm__head{gap:10px;margin-bottom:6px}
.cws-mm__icon{flex:0 0 32px;height:32px;border-radius:10px}
.cws-mm__icon svg{width:18px;height:18px}
.cws-mm__head strong{font-size:15px}
.cws-mm__head em{font-size:12.5px;line-height:1.35;margin-top:1px}
.cws-mm__list{margin-top:2px;padding-left:42px}
.cws-mm__list li{margin:0;padding:0;line-height:1.35}
.cws-mm__list a{display:block;padding:4px 0}
.cws-mm__pro{margin-top:6px}
.cws-mm__pro a{padding:6px 12px!important}
.cws-mm__foot,.cws-pm__foot{margin-top:10px;padding-top:12px}
:is(.cws-mm__note,.cws-pm__note) :is(strong,span){line-height:1.4}
.cws-mm__btn,.cws-pm__btn{padding:8px 20px}
.cws-pm{padding:16px 30px 14px}
.cws-pm__ops{padding:12px 18px;margin-bottom:12px!important;gap:6px 26px}
.cws-pm__ops-title{margin-bottom:4px}
.cws-pm__ops-sub{margin-bottom:8px}
.cws-pm__cat-title{margin-bottom:4px}
.cws-pm__cat a{padding:2px 8px}
.cws-pm__legend{margin:6px 0 0!important;padding-top:8px!important}
.cws-pm__prokey{padding:3px 12px 3px 10px}
.cws-pm__grid{gap:10px 40px!important}
.cws-pm__title{margin-bottom:6px}
.cws-pm__item{padding:6px 10px}
.cws-pm__soon{padding:4px 10px;line-height:1.35}
.cws-pm__soonnote{margin-top:6px}
/* very short windows: drop the one-line descriptions under the menu headings */
@media(min-width:1061px) and (max-height:700px){
  .cws-mm__head em,.cws-pm__ops-sub,.cws-pm__item em,.cws-pm__soonnote{display:none}
}

/* Mobile menu (below the desktop breakpoint): the account link is reachable, the submenu arrows go
   (the mega panels do not open on touch), rows are full tap targets and a long menu scrolls. */
@media(max-width:1060px){
  .hdr.open .hdr__bar{max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain}
  .hdr.open .hdr__nav>ul>li>a{min-height:44px}
  .hdr.open .has-mega>a>svg{display:none}
  .hdr.open .hdr__acct{display:flex;order:10;width:100%;justify-content:center;margin:0 0 8px;min-height:48px}
}

/* Grids: columns may shrink below their content's widest word, so nothing pushes past the page edge */
.hgrid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.hgrid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.hgrid>*,.faq__grid>*,.talk__grid>*,.contact__in>*,.hhero__grid>*{min-width:0}
.hcard__foot{flex-wrap:wrap}
@media(max-width:900px){
  .grid3,.cols3,.hl__grid,.talk__grid,.faq__grid,.contact__in,.ftr__facts,.hhero__grid,.hgrid--3,.hgrid--2,.hsteps__head{grid-template-columns:minmax(0,1fr)}
}
/* hero highlights keep to one line only where three of them fit side by side */
@media(min-width:901px) and (max-width:1199px){.hl__grid li{white-space:normal}}

/* Keep Reading row: its hover-shadow room must not reach past the 16px page gutter */
@media(max-width:1215px){.more{padding-inline:16px;margin-inline:-16px;scroll-padding-inline:16px}}

/* Phones: tap targets at least 40px tall */
@media(max-width:700px){
  .ftr__legal{flex-wrap:wrap;justify-content:center;gap:0 6px}
  .ftr__legal a{display:inline-flex;align-items:center;min-height:40px;padding:0 6px}
  .quotes__nav button{width:40px;height:40px}
  #main :is(.card-go,.txtlink,.cws-inc__link,.cws-wporg__link){display:inline-flex;align-items:center;min-height:40px}
  .chips--links>a,.chips--topics a{display:inline-flex;align-items:center;min-height:40px}
}
/* between the desktop breakpoint and 1100px the suite's six categories stay on one row under its intro */
@media(min-width:1061px) and (max-width:1100px){.cws-pm__cats{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px 14px}}
/* split buy bar on phones: name above price, so the service name is never squeezed to nothing */
@media(max-width:760px){
  .buy--split .buy__now{padding:0 8px 0 18px}
  .buy--split .buy__line{flex-direction:column;align-items:flex-start;gap:0;line-height:1.2}
  .buy--split .buy__line b{max-width:100%;font-size:.85rem}
  .buy--split .buy__price{margin-left:0;font-size:.8rem}
  .buy--split .btn{padding-inline:16px;font-size:.92rem;margin-right:0}
}
/* narrowest phones: a touch smaller so a long service name like "Domain Management" still fits in full */
@media(max-width:400px){
  .buy--split .buy__now{padding:0 6px 0 14px}
  .buy--split .buy__line b{font-size:.8rem;letter-spacing:-.01em}
  .buy--split .btn{padding-inline:12px;font-size:.85rem}
}
@media(max-width:370px){
  .buy--split .buy__line b{font-size:.74rem}
  .buy--split .btn{padding-inline:10px}
}
/* switching steps on phones: less inner padding so the text column is not a narrow strip */
@media(max-width:560px){#main .cws-steps2__list li{padding:20px 18px;column-gap:12px}}
/* colored link panels (marketplace and docs callouts) keep their inner padding; the block flattening above had removed it */
#main>.blk .cws-wporg__in{padding:clamp(24px,3.5vw,36px)!important}
#main>.blk .cws-docl__in{padding:clamp(20px,3vw,26px)!important}
/* docs and legal page headers: 16px side gutters so the intro never touches the screen edge */
#main>.cws-phero{padding-left:16px;padding-right:16px}
/* more phone tap targets: page contents lists, back-to-top links, app lists and card follow-on links */
@media(max-width:700px){
  :is(.cws-doc__toc,.cws-legal__toc) li,.cws-doc__sub li{margin:0}
  :is(.cws-doc__toc,.cws-legal__toc) a,.cws-doc__toc .cws-doc__sub a{display:block;padding:10px 0}
  :is(.cws-doc__toc,.cws-legal__toc)>ol>li{margin-bottom:4px}
  .cws-legal__top,.cws-doc__top{display:inline-flex;align-items:center;min-height:40px}
  .ops__apps li{padding:2px 0}
  .ops__apps a,.c2__prolinein a,#main a.hcard__go{display:inline-flex;align-items:center;min-height:40px}
}
/* card grids never leave a single orphan card with a hole beside it:
   in three columns a lone last card sits in the middle, in two columns it takes the full row */
@media(min-width:1000px){.cws-home__grid>:last-child:nth-child(3n+1),.cws-home__prods>:last-child:nth-child(3n+1){grid-column:2}}
@media(min-width:690px) and (max-width:999px){.cws-home__grid>:last-child:nth-child(odd),.cws-home__prods>:last-child:nth-child(odd){grid-column:1/-1}}
@media(min-width:901px){.hgrid--3>:last-child:nth-child(3n+1):not(.hpro){grid-column:2}}

/* contact form: sending overlay with a spinner, then a confirmation over the blurred form */
.cform{position:relative}
.cform>:not(.cform__veil){transition:filter .35s ease,opacity .35s ease}
.cform.is-busy>:not(.cform__veil),.cform.is-sent>:not(.cform__veil){filter:blur(5px);opacity:.45;pointer-events:none}
.cform__veil{position:absolute;inset:-12px;display:grid;place-items:center;border-radius:24px;opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s}
.cform.is-busy .cform__veil,.cform.is-sent .cform__veil{opacity:1;visibility:visible}
.cform__spin{grid-area:1/1;width:48px;height:48px;border-radius:50%;border:4px solid rgba(255,255,255,.25);border-top-color:var(--blue);animation:cwsSpin .8s linear infinite;transition:opacity .25s}
.cform.is-sent .cform__spin{opacity:0;animation:none}
.cform__done{grid-area:1/1;text-align:center;color:#fff;max-width:340px;opacity:0;transform:translateY(8px) scale(.97);transition:opacity .4s ease .1s,transform .4s ease .1s;pointer-events:none}
.cform.is-sent .cform__done{opacity:1;transform:none;pointer-events:auto}
.cform__done strong{display:block;font-size:1.4rem;margin:14px 0 6px}
.cform__done p{margin:0 0 18px;color:rgba(255,255,255,.85)}
.cform__tick{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--blue)}
.cform__tick svg{width:32px;height:32px;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24}
.cform.is-sent .cform__tick svg{animation:cwsTick .45s ease .3s forwards}
@keyframes cwsTick{to{stroke-dashoffset:0}}
.cform__again:hover{background:var(--blue)!important;color:#fff!important;border-color:var(--blue)!important}
@media(prefers-reduced-motion:reduce){.cform__spin{animation-duration:2s}.cform.is-sent .cform__tick svg{animation:none;stroke-dashoffset:0}}

/* cookie prompt: short list of what cookies are for, and a note when opened from a chat button */
.consent p{margin:0 0 6px}
.consent__list{margin:0 0 10px;padding-left:18px}
.consent__list li{margin:2px 0}
.consent__why{background:#eef4ff;border-radius:10px;padding:8px 12px;color:var(--navy)}

/* pricing mockup option 3 (Pro page), reworked: price band, then numbered sections */
.pp{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:#fff}
.pp-head{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center;background:var(--navy);color:#fff;padding:32px 36px}
.pp-head h3{color:#fff;font-size:1.8rem;margin:6px 0 6px}
.pp-head__pitch{color:rgba(255,255,255,.85);margin:0 0 14px;max-width:520px}
.pp-terms{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.9rem;color:rgba(255,255,255,.9)}
.pp-terms span{display:inline-flex;align-items:center;gap:6px}
.pp-head__r{display:flex;flex-direction:column;align-items:flex-end;text-align:right}
.pp-price{margin:0}.pp-price strong{font-size:3rem;line-height:1}.pp-price span{color:rgba(255,255,255,.8);margin-left:4px}
.pp-was{margin:6px 0 0;color:rgba(255,255,255,.75)}
.pp-save{display:inline-block;margin:8px 0 16px;background:var(--blue);border-radius:999px;padding:4px 12px;font-weight:700;font-size:.9rem}
.pp-sec{padding:28px 36px;border-top:1px solid var(--line)}
.pp-head+.pp-sec{border-top:0}
.pp-step{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--navy);font-size:1.1rem;margin:0 0 16px}
.pp-step span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#eef4ff;color:var(--blue-2);font-size:.9rem}
.pp-parts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.pp-part{border:1px solid var(--line);border-radius:var(--r);padding:18px 20px}
.pp-part__name{font-weight:700;color:var(--navy);font-size:1.05rem;margin:0}
.pp-part__alone{margin:2px 0 10px;color:var(--text);font-size:.9rem}
.pp-part .ticks{margin:0}
.pp-sum{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:16px;background:#f6f8fa;border-radius:999px;padding:10px 18px;font-size:.95rem;color:var(--navy)}
.pp-sum i{font-style:normal;color:var(--text)}
.pp-sum b{color:var(--blue-2)}
.pp-lim{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.pp-lim>div{background:#f6f8fa;border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column}
.pp-lim b{font-size:1.35rem;color:var(--navy);line-height:1.2}
.pp-lim span{color:var(--navy);font-size:.92rem}
.pp-lim em{font-style:normal;color:var(--text);font-size:.82rem;margin-top:6px}
.pp .pv-over{margin:0}.pp .pv-over__h{display:none}
@media(max-width:900px){.pp-head{grid-template-columns:1fr}.pp-head__r{text-align:left;align-items:flex-start}.pp-parts{grid-template-columns:1fr}.pp-lim{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.pp-head,.pp-sec{padding:22px 18px}.pp-price strong{font-size:2.4rem}.pp-sum{border-radius:16px}}
/* service page pricing (approved layouts) */
.pricing{padding:var(--sec) 0}
.pricing>.wrap>.eyebrow,.pricing>.wrap>h2{text-align:center}
.pricing>.wrap>h2{margin-bottom:24px}
.pv--solo{grid-template-columns:1fr;max-width:820px;margin:0 auto}
a.pp-part{display:block;text-decoration:none;color:inherit;transition:border-color .3s ease,box-shadow .3s ease,transform .3s ease}
a.pp-part:hover{border-color:var(--blue);box-shadow:0 18px 40px rgba(25,42,61,.12);transform:translateY(-3px)}
.pv-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
/* every text button carries the same arrow as the header buttons (buttons that already have an icon are left alone) */
:is(.btn,[class$="__btn"],[class*="__btn "],[class$="__cta"],[class*="__cta "],.col__go,.cws-inc2__link):not(:has(svg)):not(.btn--link)::after{content:"";flex:none;width:16px;height:16px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M7 7h10v10'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M7 7h10v10'/%3E%3C/svg%3E") center/contain no-repeat}

:is([class$="__btn"],[class*="__btn "],[class$="__cta"],[class*="__cta "],.col__go,.cws-inc2__link):not(:has(svg)):not(.btn){display:inline-flex;align-items:center;justify-content:center;gap:8px}
/* info box inside a section (e.g. "Our Commitment"): section spacing above, the site's own type sizes */
.md__in>.cws-info{max-width:none!important}
.cws-info__head h2{font-size:clamp(1.3rem,2vw,1.6rem)!important}
.cws-info p,.cws-info li{font-size:1rem}
/* the "why this one" block uses the site's content width, not its own narrower one */
.c2__in>.md{max-width:none;padding-left:0;padding-right:0}
.c2__in>.md .md__in{max-width:none}
/* blue "ready to move" card: the card goes navy while a button in it is hovered, so the button never blends in */
.card--blue{transition:background-color .3s ease}
.card--blue:has(.btn:hover){background:var(--navy)}
.card--blue .btn--navy:hover{background:var(--blue)!important;color:#fff!important;border-color:var(--blue)!important}
.card--blue .btn--outline:hover{background:#fff!important;color:var(--navy)!important;border-color:#fff!important}
/* blue call-to-action band: same as the blue card, the band turns navy while one of its buttons is hovered */
.band__in{transition:background-color .3s ease}
.band__in:has(.btn:hover){background:var(--navy)!important}
.band__in .btn--white:hover{background:var(--blue)!important;color:#fff!important;border-color:var(--blue)!important}
.band__in .btn--outline:hover{background:#fff!important;color:var(--navy)!important;border-color:#fff!important}
/* "What we do for you" and the Pro "what's inside" points: one line each */
.pv-does li{white-space:nowrap}
.pv-does li span{overflow:hidden;text-overflow:ellipsis}
@media(max-width:560px){.pv-does li{white-space:normal}}
@media(max-width:1199px){.pv-does{grid-template-columns:1fr!important}}
/* the selected topic chip keeps its look on hover (navy, white text), only easing to blue */
.chips--topics a[aria-current]:hover{background:var(--blue)!important;color:#fff!important;border-color:var(--blue)!important}
/* imported WordPress blocks carried their own 1000-1240px caps; inside a page section they follow the site's content width */
#main :is(.c2__in,.c2__cta,.c2__proline,.cws-about__in,.cws-about2__in,.cws-better__in,.cws-bh__in,.cws-cap__in,.cws-cmp__in,.cws-cmphub__in,.cws-fits__in,.cws-home__in,.cws-inc__in,.cws-inc2__in,.cws-mid__in,.cws-price__in,.cws-rival__in,.cws-steps2__in,.cws-verdict__in,.cws-vs__in,.cws-why__in,.cws-wporg__in,.cwsh-in,.hub__in,.md__in,.ops__cta,.ops__in,.ph__in,.ph__cta,.zsv__in){max-width:none!important}
#main .c2__proline{padding-left:0!important;padding-right:0!important}
.price__in{max-width:none}
/* testimonial and Keep Reading arrows fade to navy on hover, like every other button */
.quotes__nav button,.more__nav button{transition:background-color .3s ease,color .3s ease,transform .3s ease}
.quotes__nav button:hover{background:var(--navy)}
.more__nav button:not(:disabled):hover{background:var(--blue);color:#fff;border-color:var(--blue)}
/* search on phones: normal text size (16px keeps iPhones from zooming in) and a tighter bar */
@media(max-width:600px){.search__bar{padding:4px 4px 4px 16px;gap:10px}.search__bar input{font-size:1rem;padding:10px 0}.search__bar input::placeholder{font-size:1rem}}
/* phone menu: fades open and shut; Services and Products open a short list of their sections */
.hdr__sub{display:none}
@media(max-width:1060px){
  .hdr.open .hdr__nav{animation:cwsMenuIn .25s ease both}
  .hdr.open.closing .hdr__nav,.hdr.open.closing .hdr__acct{animation:cwsMenuOut .25s ease both}
  .hdr.open .has-mega>a>svg{display:inline-block!important;margin-left:auto;transition:transform .3s ease}
  .hdr.open .has-mega.sub-open>a>svg{transform:rotate(180deg)}
  .hdr.open .has-mega.sub-open>a{background:rgba(255,255,255,.08)}
  .hdr.open .has-mega .hdr__sub{display:block;list-style:none;margin:0;padding:0 0 0 14px;max-height:0;overflow:hidden;opacity:0;transition:max-height .35s ease,opacity .3s ease}
  .hdr.open .has-mega.sub-open .hdr__sub{max-height:480px;opacity:1}
  .hdr.open .hdr__sub a{display:flex;align-items:center;min-height:44px;padding:0 16px;color:#d7dee6;text-decoration:none;font-weight:600;font-size:.92rem;border-radius:999px;transition:background-color .3s ease,color .3s ease}
  .hdr.open .hdr__sub a:hover{background:rgba(255,255,255,.08);color:#fff}
  .hdr:not(.open) .hdr__sub{display:none}
}
@keyframes cwsMenuIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes cwsMenuOut{from{opacity:1}to{opacity:0;transform:translateY(-6px)}}
@media(prefers-reduced-motion:reduce){.hdr.open .hdr__nav,.hdr.open.closing .hdr__nav{animation:none}}
/* chat button: same size as the cookie button on every screen (Zoho draws a bigger inner circle on phones) */
#zsiq_float{border-radius:50%!important;overflow:hidden!important;min-width:0!important;min-height:0!important;box-shadow:0 8px 24px rgba(25,42,61,.2)!important}
#zsiq_float .zsiq_flt_rel,#zsiq_float .zsiq_flt_rel *:not(svg):not(path){width:var(--fab)!important;height:var(--fab)!important;min-width:0!important;min-height:0!important;max-width:var(--fab)!important;max-height:var(--fab)!important;border-radius:50%!important;line-height:var(--fab)!important;background-color:transparent}
#zsiq_float .zsiq_flt_rel{background:var(--navy)!important;transition:background-color .3s ease!important}
#zsiq_float:hover .zsiq_flt_rel{background:var(--blue)!important}
#zsiq_float .siqico-chat,#zsiq_float [class*="siqico"]{font-size:22px!important;display:grid!important;place-items:center!important}
#zsiq_float .zsiq_unrdcnt,#zsiq_float .zsiq_cnt{display:none!important}

/* phone menu: the panel itself grows and fades open, and shrinks and fades shut */
@media(max-width:1060px){
  .hdr__bar{flex-wrap:wrap;row-gap:0}
  .hdr .hdr__nav{display:block!important;order:9;width:100%;max-height:0;opacity:0;overflow:hidden;margin:0!important;visibility:hidden;transition:max-height .4s ease,opacity .3s ease,margin .4s ease,visibility .4s}
  .hdr.open:not(.closing) .hdr__nav{max-height:85vh;max-height:85dvh;opacity:1;margin:8px 0!important;visibility:visible;overflow-y:auto}
  .hdr.open .hdr__nav,.hdr.open.closing .hdr__nav,.hdr.open.closing .hdr__acct{animation:none!important}
  .hdr .hdr__acct{display:flex!important;order:10;width:100%;justify-content:center;max-height:0;min-height:0!important;opacity:0;overflow:hidden;visibility:hidden;margin:0!important;padding-block:0!important;border-width:0!important;transition:max-height .4s ease,opacity .3s ease,margin .4s ease,padding .4s ease,visibility .4s}
  .hdr.open:not(.closing) .hdr__acct{max-height:80px;min-height:48px!important;opacity:1;visibility:visible;margin:0 0 8px!important;padding-block:8px!important;border-width:2px!important}
}
/* phones: no shadows on the buy bar, cookie button and chat button */
@media(max-width:760px){.buy,.consent-tab,#zsiq_float,#zsiq_float *{box-shadow:none!important}}
/* the nightly update inspection on the Maintenance page */
.insp{padding:var(--sec) 0}
.insp .eyebrow,.insp h2,.insp .lead{text-align:center}
.insp .lead{max-width:760px;margin:0 auto 28px}
.insp__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.insp__card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px;display:flex;flex-direction:column;gap:8px}
.insp__n{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--navy);color:#fff;font-weight:700;font-size:.9rem}
.insp__card h3{margin:4px 0 0;font-size:1.05rem}
.insp__card>p{margin:0;color:var(--text);font-size:.92rem}
.insp__card .ticks{margin:6px 0 0}
.insp__card .ticks li{font-size:.9rem}
.insp__note{display:flex;align-items:center;justify-content:center;gap:8px;margin:22px auto 0;max-width:820px;text-align:center;color:var(--navy);font-weight:600}
@media(max-width:1100px){.insp__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.insp__grid{grid-template-columns:1fr}}
/* chat: our own button, identical to the cookie button and sitting just above it; Zoho's own floating button stays hidden */
.chat-tab{position:fixed;right:16px;bottom:calc(16px + var(--fab) + 12px);z-index:45;width:var(--fab);height:var(--fab);border-radius:50%;border:0;background:var(--navy);color:#fff;box-shadow:0 8px 24px rgba(25,42,61,.2);display:grid;place-items:center;cursor:pointer;transition:opacity .25s,visibility .25s,background-color .3s ease,color .3s ease}
.chat-tab svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.chat-tab:hover{background:var(--blue);color:#fff}
.consent-open .chat-tab{opacity:0;visibility:hidden;pointer-events:none}
#zsiq_float,.zsiq_floatmain{display:none!important}
@media(max-width:760px){.chat-tab{box-shadow:none}}

/* chat button: chat icon fades to an X while the chat is open, and a tap closes it */
.chat-tab{overflow:hidden}
.chat-tab__i{grid-area:1/1;display:grid;place-items:center;transition:opacity .3s ease,transform .3s ease}
.chat-tab__close{opacity:0;transform:rotate(-90deg) scale(.6)}
.chat-open .chat-tab__open{opacity:0;transform:rotate(90deg) scale(.6)}
.chat-open .chat-tab__close{opacity:1;transform:none}
.chat-open .chat-tab{z-index:2147483647}
/* phones: the chat fills the screen, with our X in the top corner (clear of the message box) */
@media(max-width:760px){
  #zsiq_chat_wrap,#zsiq_chat_wrap.zsiq_size2,#zsiq_chat_wrap.zsiq_size3{top:0!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;border-radius:0!important;margin:0!important}
  #zsiq_chat_wrap #siq_chatwindow,#zsiq_chat_wrap .zls-sptwndw,#zsiq_chat_wrap iframe{width:100%!important;height:100%!important;max-height:none!important;border-radius:0!important}
  .chat-open .chat-tab{top:calc(env(safe-area-inset-top, 0px) + 10px);bottom:auto;right:12px;width:44px;height:44px;background:var(--navy)}
  .chat-open .consent-tab{opacity:0;pointer-events:none}
  .chat-open body{overflow:hidden}
}
/* the chat window fades in when opened and out when closed, on every screen */
.chat-open #zsiq_chat_wrap{animation:cwsChatIn .3s ease both}
.chat-closing #zsiq_chat_wrap{animation:cwsChatOut .25s ease both!important}
@keyframes cwsChatIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes cwsChatOut{from{opacity:1;transform:none}to{opacity:0;transform:translateY(10px)}}
@media(prefers-reduced-motion:reduce){.chat-open #zsiq_chat_wrap,.chat-closing #zsiq_chat_wrap{animation:none!important}}

/* Phone footer: the copyright reads as two clean lines, the legal links sit in one row, and the bottom clears the
   chat, cookie, and buy buttons that float over it. */
.ftr__copy p i{font-style:normal}
@media(max-width:760px){
  .ftr__copy{flex-direction:column;justify-content:center;gap:10px;padding:22px 0 calc(16px + var(--fab) * 2 + 12px + 20px)}
  .ftr__copy p{display:flex;flex-wrap:wrap;justify-content:center;column-gap:.35em;font-size:.82rem;line-height:1.5;color:var(--muted)}
  .ftr__copy p i{display:none}
  .ftr__copy p span:first-child{flex-basis:100%}
  .ftr__copy p span:nth-child(5)::before{content:"· "}
  .ftr__legal{gap:0 4px}
  .ftr__legal a{min-height:36px;padding:0 8px;font-size:.82rem}
}

/* ===== One vertical rhythm and one content width (2026-10-02) =====
   The rule: the visible gap between two sections, and between two boxes stacked with nothing in between, is always
   the section gap (2 x --sec: 56px on desktop, 40px on phones). Every box spans the content width (.wrap).
   Checked by tools/layout-audit.cjs; run it after layout changes. */
:root{--gap:calc(var(--sec)*2)}
/* no stray margin at a section's bottom or top edge, in the site's own sections too (the carried-over blocks already had this) */
#main>section:not(.hero,.hhero,.phead)>.wrap>:last-child:not(.cols3,.more){margin-bottom:0!important}
#main>section:not(.hero,.hhero,.phead)>.wrap>:first-child{margin-top:0!important}
/* panels (blocks with their own color): one section gap outside, even when two panels meet (their margins would
   otherwise collapse into one, halving the gap) */
#main>.blk:is(.c2--tint,.cws-inc,.cws-inc2,.cws-better,.cws-steps2,.ops--alt,.cws-home--alt,.ops-home,.cws-guide){margin-block:var(--sec)!important}
#main>.blk:is(.c2--tint,.cws-inc,.cws-inc2,.cws-better,.cws-steps2,.ops--alt,.cws-home--alt,.ops-home,.cws-guide)+.blk:is(.c2--tint,.cws-inc,.cws-inc2,.cws-better,.cws-steps2,.ops--alt,.cws-home--alt,.ops-home,.cws-guide){margin-top:var(--gap)!important}
/* a band, note, or box pair that follows a row of cards inside the same section sits one section gap below it,
   the same distance as from the band to the next section (the home page "Weighing Us Against Someone Else?" band) */
#main :is(div,ul,ol):has(+:is(.cws-home__split,.cws-cap__note,.cws-req,.cws-info,.c2__pro,.c2__proline)){margin-bottom:0!important}
#main :is(div,ul,ol)+:is(.cws-home__split,.cws-cap__note,.cws-req,.cws-info,.c2__pro,.c2__proline){margin-top:var(--gap)!important}
/* info boxes run the full content width; an old 1080px cap had left them inset on both sides */
#main .cws-info{max-width:none!important;margin-inline:0!important}
/* server requirements beside the privacy commitment (MountDev Ops pages): two equal boxes, one heading style */
.cws-req{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:stretch}
#main .cws-req>:is(.cws-req__card,.cws-info){margin:0!important;padding:28px!important;border-radius:24px!important}
.cws-req__card{background:#fff;border:2px solid #e1e8ed}
.cws-req .cws-info__head{margin:0 0 16px}
.cws-req .cws-info__head :is(h2,h3){margin:0!important;font-size:1.25rem!important;line-height:1.3;color:var(--navy)}
.cws-req__list{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:8px}
.cws-req__list li{position:relative;padding-left:22px;color:var(--navy);font-weight:600;line-height:1.5}
.cws-req__list li::before{content:"";position:absolute;left:0;top:8px;width:8px;height:8px;border-radius:50%;background:var(--blue)}
.cws-req__note{margin:0 0 10px;font-size:.95rem;line-height:1.6;color:var(--text)}
.cws-req__note:last-child{margin:0}
@media(max-width:900px){.cws-req{grid-template-columns:minmax(0,1fr)}#main .cws-req>:is(.cws-req__card,.cws-info){padding:22px!important}}
/* phones: a long button label wraps inside the screen instead of pushing the page sideways */
@media(max-width:560px){
  #main :is(.btn,a[class*="btn"],a[class*="__cta"]){white-space:normal!important;max-width:100%;min-width:0;text-align:center}
  #main .band__btns{max-width:100%;flex:0 1 auto}
}

/* Your Monthly Report (service pages, home, white-label): text and points beside a picture of the sample report */
.rpt h2{margin:0 0 14px}
.rpt__lead{margin:0 0 24px;color:var(--text);font-size:1.05rem;line-height:1.65;max-width:640px}
.rpt .c2__feat{margin:0}
.rpt__btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.rpt .c2__in:has(>.c2__shot){grid-template-columns:minmax(0,1fr) minmax(0,540px);column-gap:48px}
.rptb .eyebrow,.rptb h2{text-align:center}
.rptb .rpt__lead{text-align:center;max-width:760px;margin:0 auto 32px}
.rptb__shots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.rptb__shots .c2__shot{margin:0}
.rptb__can{margin-top:32px;text-align:center}
.rptb__can h3{margin:0 0 18px}
.rptb__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 28px;text-align:left}
.rptb__list li{margin:0}
.rptb .rpt__btns{justify-content:center}
@media(max-width:899px){.rptb__shots{grid-template-columns:1fr}.rptb__list{grid-template-columns:1fr}.rptb__shots .c2__shot{margin:0!important}}

/* Comparison index (/compare/): method cards, filter and jump bar, then one section per service family */
.cmethod{margin-bottom:28px}
.cfind__bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin:0 0 16px}
.cfind__field{position:relative;flex:1 1 320px;max-width:520px}
.cfind__field .i{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.cfind__field input{width:100%;box-sizing:border-box;font:inherit;font-size:1rem;padding:12px 18px 12px 46px;border:1px solid #dfe5ea;border-radius:999px;background:#fff;color:var(--navy)}
.cfind__field input:focus{outline:2px solid var(--blue);outline-offset:1px;border-color:var(--blue)}
.cfind__count{margin:0;color:var(--muted);font-size:.92rem}
.cfind__jump>a{font-size:.88rem;padding:6px 12px;border-radius:999px}
.cfind__jump b{color:var(--blue);margin-left:4px}
.cfind__none{margin:20px 0 0;font-weight:600;color:var(--navy)}
.cfam__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 20px}
.cfam__head h2{margin-bottom:.3em}
.cfam__count{margin:0;color:var(--muted);font-weight:600;font-size:.95rem}
.cfam .hgroup__lead{margin-bottom:24px}
#main .cfind>.wrap>.eyebrow,#main .cfind>.wrap>.hgroup__lead{text-align:center;margin-left:auto;margin-right:auto}
.cfam .badge{white-space:nowrap;flex:none}
.cfam__n{color:var(--navy)}
.t-report #main>.cws-report{padding-bottom:var(--sec)!important}

/* 404: the trail scene with the logo, one line, and three ways back */
.nf .nf__scene{display:block;width:100%;max-width:860px;height:auto;margin:0 auto 28px}
.nf .nf__alt{margin:22px 0 0;color:var(--muted);font-size:.95rem}
.nf .nf__search{background:none;border:0;padding:0;font:inherit;color:var(--blue-2,#1559ed);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
@media(max-width:600px){.nf .nf__scene{width:calc(100% + 32px);max-width:none;margin:0 -16px 18px}}

.consent .consent__what{color:var(--muted);font-size:.9em;margin:0 0 10px}
