/* Page styles for /microsoft-365/, extracted from microsoft-365.html (all selectors start with .pg-microsoft-365) */
.pg-microsoft-365 .phero{padding:56px 0 48px}
.pg-microsoft-365 .phero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.06) 1px,transparent 1px);background-size:22px 22px;pointer-events:none}
.pg-microsoft-365 .hgrid{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:36px;align-items:center}
.pg-microsoft-365 .hacts{display:flex;flex-wrap:wrap;gap:12px}
.pg-microsoft-365 .hart svg{display:block;width:100%;max-width:520px;height:auto;margin-inline:auto;overflow:visible}
.pg-microsoft-365 .hart svg text{font-family:var(--display)}
.pg-microsoft-365 .hstat{display:inline-flex;align-items:center;gap:10px;margin-top:22px;font:600 13px var(--mono);color:#9fe3c9;background:rgba(18,145,107,.12);border:1px solid rgba(18,145,107,.35);padding:7px 12px;border-radius:999px}
.pg-microsoft-365 .dot{width:8px;height:8px;border-radius:50%;background:#2fd49a;animation:pgblink 1.8s ease-in-out infinite;flex:none}
@keyframes pgblink{0%,100%{box-shadow:0 0 0 0 rgba(47,212,154,.6)}50%{box-shadow:0 0 0 6px rgba(47,212,154,0)}}
/* hero svg life */
.pg-microsoft-365 .flow{stroke-dasharray:3 10;stroke-linecap:round;animation:pgdash 1.4s linear infinite}
@keyframes pgdash{to{stroke-dashoffset:-26}}
.pg-microsoft-365 .blinkl{animation:pgled 1.6s steps(2) infinite}
@keyframes pgled{50%{opacity:.35}}
.pg-microsoft-365 .floaty{animation:pgfloat 4s ease-in-out infinite}
@keyframes pgfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.pg-microsoft-365 .ringp{transform-box:fill-box;transform-origin:center;animation:pgringp 3.6s ease-out infinite}
@keyframes pgringp{0%{transform:scale(.92);opacity:1}100%{transform:scale(1.08);opacity:.35}}
.pg-microsoft-365 .spinr{transform-box:fill-box;transform-origin:center;animation:pgspin 12s linear infinite}
@keyframes pgspin{to{transform:rotate(360deg)}}
/* what you get */
.pg-microsoft-365 .svcs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.pg-microsoft-365 .svcs.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pg-microsoft-365 .svc{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px;transition:transform .25s,box-shadow .25s,border-color .25s}
.pg-microsoft-365 .svc:hover{transform:translateY(-4px);box-shadow:0 18px 36px -18px rgba(4,36,58,.35);border-color:#b9d6ea}
.pg-microsoft-365 .ic{width:60px;height:60px;border-radius:16px;background:linear-gradient(160deg,#e6f1f8,#d3e7f4);display:grid;place-items:center;margin-bottom:14px}
.pg-microsoft-365 .ic svg{width:40px;height:40px;overflow:visible}
.pg-microsoft-365 .svc h3{font-size:18px;margin:0 0 6px}
.pg-microsoft-365 .svc p{margin:0;color:var(--sub);font-size:15px}
.pg-microsoft-365 .ic .bob{animation:pgbob 2.4s ease-in-out infinite}
@keyframes pgbob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.pg-microsoft-365 .ic .spin{transform-box:fill-box;transform-origin:center;animation:pgspin 6s linear infinite}
.pg-microsoft-365 .ic .blink{animation:pgled 1.6s steps(2) infinite}
.pg-microsoft-365 .ic .draw{stroke-dasharray:60;animation:pgdraw 3.2s ease-in-out infinite}
@keyframes pgdraw{0%{stroke-dashoffset:60}45%,100%{stroke-dashoffset:0}}
.pg-microsoft-365 .ic .pulse{transform-box:fill-box;transform-origin:center;animation:pgpulse 2.2s ease-in-out infinite}
@keyframes pgpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
.pg-microsoft-365 .ic .slide{animation:pgslide 2.4s ease-in-out infinite}
@keyframes pgslide{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}
/* stats */
.pg-microsoft-365 .stats2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.pg-microsoft-365 .stat{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px;display:flex;gap:18px;align-items:center}
.pg-microsoft-365 .stat .num{font:800 clamp(34px,4.4vw,46px)/1 var(--display);color:var(--blue);min-width:3.4em;letter-spacing:-.02em}
.pg-microsoft-365 .stat p{margin:0;font-size:15.5px}
.pg-microsoft-365 .stat small{display:block;margin-top:6px;color:var(--sub);font-size:12.5px}
/* tool shell */
.pg-microsoft-365 .tool{position:relative;background:radial-gradient(120% 90% at 100% 0%,#26303b 0%,var(--g-dark2) 45%,var(--g-dark) 100%);color:#e9eef3;border-radius:22px;padding:28px;border:1px solid #2a323c;box-shadow:0 24px 60px rgba(20,23,27,.28);overflow:hidden}
.pg-microsoft-365 .tool::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:22px 22px;pointer-events:none}
.pg-microsoft-365 .tool>*{position:relative}
.pg-microsoft-365 .thd{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:20px}
.pg-microsoft-365 .badge{font:700 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:5px 10px;border-radius:999px;background:var(--amber);color:var(--g-dark)}
.pg-microsoft-365 .tlive{display:inline-flex;align-items:center;gap:8px;font:600 12px var(--mono);color:#9fb0c4}
.pg-microsoft-365 .tl{font:700 12px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--blue-hi);margin:0 0 10px}
.pg-microsoft-365 .tft{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-top:24px;padding-top:20px;border-top:1px solid #333d49}
.pg-microsoft-365 .demo{margin:0;font-size:13px;color:#9aa6b3}
.pg-microsoft-365 .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.pg-microsoft-365 .opt{display:flex;flex-wrap:wrap;gap:8px}
.pg-microsoft-365 label.chip{position:relative;display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;border:1.5px solid #3a4654;background:rgba(255,255,255,.04);color:#dfe6ee;font:600 14px var(--body);cursor:pointer;transition:background .25s,border-color .25s,color .25s,transform .2s}
.pg-microsoft-365 label.chip input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.pg-microsoft-365 label.chip.on{background:var(--blue-hi);border-color:var(--blue-hi);color:var(--blue-ink)}
.pg-microsoft-365 label.chip:has(input:focus-visible){outline:3px solid var(--blue-hi);outline-offset:3px}
/* how we work strip */
.pg-microsoft-365 .hw{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;position:relative}
.pg-microsoft-365 .hw::before{content:"";position:absolute;left:28px;right:28px;top:27px;height:2px;background:repeating-linear-gradient(90deg,#7fb6dc 0 8px,transparent 8px 16px);background-size:32px 2px;animation:pgflow 1.2s linear infinite}
@keyframes pgflow{to{background-position:32px 0}}
@keyframes pgflowv{to{background-position:0 32px}}
.pg-microsoft-365 .hw li{position:relative}
.pg-microsoft-365 .hw .n{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:#fff;border:2px solid var(--blue);color:var(--blue);font:800 18px var(--mono);position:relative;z-index:1;animation:pgring 4s ease-out infinite}
.pg-microsoft-365 .hw li:nth-child(2) .n{animation-delay:1s}.pg-microsoft-365 .hw li:nth-child(3) .n{animation-delay:2s}.pg-microsoft-365 .hw li:nth-child(4) .n{animation-delay:3s}
@keyframes pgring{0%{box-shadow:0 0 0 0 rgba(2,99,153,.4);background:#e6f1f8}25%,100%{box-shadow:0 0 0 16px rgba(2,99,153,0);background:#fff}}
.pg-microsoft-365 .hw h3{font-size:17px;margin:14px 0 4px}
.pg-microsoft-365 .hw p{margin:0;color:var(--sub);font-size:14.5px}
/* faq + plans */
.pg-microsoft-365 .fgrid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:28px;align-items:start}
.pg-microsoft-365 .faq{display:grid;gap:8px}
.pg-microsoft-365 .faq details{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:0 18px;transition:border-color .25s,box-shadow .25s}
.pg-microsoft-365 .faq details[open]{border-color:var(--blue);box-shadow:0 10px 24px -16px rgba(4,36,58,.35)}
.pg-microsoft-365 .faq summary{cursor:pointer;list-style:none;padding:15px 0;font-family:var(--display);font-weight:700;font-size:16px;display:flex;justify-content:space-between;gap:12px;border-radius:8px}
.pg-microsoft-365 .faq summary::-webkit-details-marker{display:none}
.pg-microsoft-365 .faq summary::after{content:"+";font-family:var(--mono);color:var(--blue);font-size:22px;line-height:1;transition:transform .25s}
.pg-microsoft-365 .faq details[open] summary::after{transform:rotate(45deg)}
.pg-microsoft-365 .faq details p{margin:0 0 16px;color:var(--sub);line-height:1.55;font-size:15px}
.pg-microsoft-365 .faq details[open] p{animation:pgfade .35s ease}
@keyframes pgfade{from{transform:translateY(-4px)}to{transform:none}}
.pg-microsoft-365 .plans{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px;position:sticky;top:90px}
.pg-microsoft-365 .plans h3{font-size:18px;margin:6px 0 4px}
.pg-microsoft-365 .plans p{margin:0 0 6px;color:var(--sub);font-size:14.5px}
.pg-microsoft-365 .pchip{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1.5px solid var(--line);border-radius:14px;text-decoration:none;margin-top:10px;transition:border-color .2s,transform .2s,background .2s}
.pg-microsoft-365 .pchip:hover{border-color:var(--blue);background:#f3f9fd;transform:translateX(3px)}
.pg-microsoft-365 .pchip .pl{font:700 12px var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;border-radius:999px;background:var(--blue);color:#fff;flex:none}
.pg-microsoft-365 .pchip span{font-size:14px;color:var(--sub);line-height:1.4}
@media (max-width:900px){
 .pg-microsoft-365 .hgrid,.pg-microsoft-365 .fgrid{grid-template-columns:1fr}
 .pg-microsoft-365 .hart svg{max-width:440px}
 .pg-microsoft-365 .svcs{grid-template-columns:1fr 1fr}
 .pg-microsoft-365 .plans{position:static}
 .pg-microsoft-365 .hw{grid-template-columns:1fr 1fr}
 .pg-microsoft-365 .hw::before{display:none}
}
@media (max-width:640px){
 .pg-microsoft-365 .psec{padding:48px 0}
 .pg-microsoft-365 .phero{padding:40px 0 36px}
 .pg-microsoft-365 .svcs,.pg-microsoft-365 .svcs.c2,.pg-microsoft-365 .stats2{grid-template-columns:1fr}
 .pg-microsoft-365 .tool{padding:20px 16px;border-radius:18px}
 .pg-microsoft-365 .hw{grid-template-columns:1fr;gap:16px}
 .pg-microsoft-365 .hw::before{display:block;left:27px;right:auto;top:28px;bottom:28px;width:2px;height:auto;background:repeating-linear-gradient(180deg,#7fb6dc 0 8px,transparent 8px 16px);background-size:2px 32px;animation-name:pgflowv}
 .pg-microsoft-365 .hw li{display:grid;grid-template-columns:56px minmax(0,1fr);gap:14px;align-items:start}
 .pg-microsoft-365 .hw h3{margin-top:4px}
 .pg-microsoft-365 .stat{flex-direction:column;align-items:flex-start;gap:8px}
 .pg-microsoft-365 .tft .pbtn{width:100%;text-align:center}
}

.pg-microsoft-365 .sq.t1,.pg-microsoft-365 .sq.t2,.pg-microsoft-365 .sq.t3,.pg-microsoft-365 .sq.t4,.pg-microsoft-365 .sq.t5,.pg-microsoft-365 .sq.t6{animation:pglit 6s ease-in-out infinite}
.pg-microsoft-365 .sq.t2{animation-delay:1s}.pg-microsoft-365 .sq.t3{animation-delay:2s}.pg-microsoft-365 .sq.t4{animation-delay:3s}.pg-microsoft-365 .sq.t5{animation-delay:4s}.pg-microsoft-365 .sq.t6{animation-delay:5s}
@keyframes pglit{0%,30%,100%{fill:#2f3b48;stroke:#3a4757}8%,22%{fill:#026399;stroke:#3fa9f5}}
.pg-microsoft-365 .m365-fill{transform-box:fill-box;transform-origin:left;animation:pgbar 6s ease-in-out infinite}
@keyframes pgbar{0%{transform:scaleX(.15)}85%,100%{transform:scaleX(1)}}
.pg-microsoft-365 .yes{transform-box:fill-box;transform-origin:center;animation:pgpulse 1.8s ease-in-out infinite}
@keyframes pgpulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
.pg-microsoft-365 fieldset.step{border:0;margin:0 0 18px;padding:0;min-width:0}
.pg-microsoft-365 fieldset.step legend{padding:0}
.pg-microsoft-365 .sumrow{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin:0 0 18px;padding:14px 16px;border:1px solid #333d49;border-radius:16px;background:rgba(255,255,255,.04)}
.pg-microsoft-365 .sum{display:flex;gap:10px;flex-wrap:wrap}
.pg-microsoft-365 .sc{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:999px;background:#2f3b48;font-size:13px;color:#dfe6ee}
.pg-microsoft-365 .sc b{min-width:30px;height:30px;border-radius:999px;display:grid;place-items:center;font:800 15px var(--mono)}
.pg-microsoft-365 .sc.gap b{background:var(--amber);color:var(--g-dark)}.pg-microsoft-365 .sc.use b{background:#12916b;color:#fff}.pg-microsoft-365 .sc.off b{background:#4a5563;color:#fff}
.pg-microsoft-365 .sc b.bump{animation:pgpop2 .45s cubic-bezier(.3,1.5,.5,1)}
@keyframes pgpop2{0%{transform:scale(.6)}100%{transform:none}}
.pg-microsoft-365 .msg{margin:0;font:700 15px var(--display);color:#fff;flex:1;min-width:220px}
.pg-microsoft-365 .tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;perspective:900px}
.pg-microsoft-365 label.tile{position:relative;display:flex;flex-direction:column;gap:6px;padding:14px 14px 12px;border-radius:16px;border:1.5px solid #333d49;background:rgba(255,255,255,.03);cursor:pointer;min-height:150px;transition:background .45s,border-color .45s,box-shadow .45s,transform .3s}
.pg-microsoft-365 label.tile input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.pg-microsoft-365 label.tile:has(input:focus-visible){outline:3px solid var(--blue-hi);outline-offset:3px}
@media (hover:hover){.pg-microsoft-365 label.tile:hover{transform:translateY(-3px);animation:hvp 1.1s ease-out infinite!important}}
.pg-microsoft-365 .tile .tt{display:flex;align-items:center;justify-content:space-between;gap:8px}
.pg-microsoft-365 .tile .ti{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#2f3b48;color:#8b96a3;transition:background .45s,color .45s,transform .45s}
.pg-microsoft-365 .tile .ti svg{width:22px;height:22px}
.pg-microsoft-365 .tile .use{display:inline-flex;align-items:center;gap:6px;font:600 12px var(--mono);color:#9fb0c4}
.pg-microsoft-365 .tile .use em{font-style:normal}
.pg-microsoft-365 .tile .use i{width:18px;height:18px;border-radius:6px;border:1.5px solid #5b6b7e;display:grid;place-items:center;transition:background .25s,border-color .25s}
.pg-microsoft-365 .tile.used .use i{background:var(--blue-hi);border-color:var(--blue-hi)}
.pg-microsoft-365 .tile.used .use i::after{content:"";width:8px;height:4px;border:solid var(--blue-ink);border-width:0 0 2.5px 2.5px;transform:translateY(-1px) rotate(-45deg)}
.pg-microsoft-365 .tile .tn{font:700 15px/1.25 var(--display);color:#fff;transition:color .45s}
.pg-microsoft-365 .tile .td{font-size:13px;color:#9aa6b3;line-height:1.4}
.pg-microsoft-365 .tile .ts{margin-top:auto;align-self:flex-start;font:700 12px var(--mono);padding:4px 9px;border-radius:999px;background:#2f3b48;color:#aeb8c4;transition:background .45s,color .45s}
.pg-microsoft-365 .tile[data-s=use]{border-color:rgba(47,212,154,.6);background:rgba(18,145,107,.14)}
.pg-microsoft-365 .tile[data-s=use] .ti{background:#12916b;color:#fff}
.pg-microsoft-365 .tile[data-s=use] .ts{background:rgba(47,212,154,.2);color:#9fe3c9}
.pg-microsoft-365 .tile[data-s=gap]{border-color:var(--amber);background:rgba(245,165,36,.12);animation:pgglow 2.2s ease-in-out infinite}
.pg-microsoft-365 .tile[data-s=gap] .ti{background:var(--amber);color:var(--g-dark);transform:rotate(-6deg)}
.pg-microsoft-365 .tile[data-s=gap] .ts{background:var(--amber);color:var(--g-dark)}
@keyframes pgglow{0%,100%{box-shadow:0 0 0 0 rgba(245,165,36,0)}50%{box-shadow:0 0 0 6px rgba(245,165,36,.2)}}
.pg-microsoft-365 .tile[data-s=off]{border-style:dashed;background:transparent}
.pg-microsoft-365 .tile[data-s=off] .tn{color:#8b96a3}.pg-microsoft-365 .tile[data-s=off] .td{color:#76818e}
.pg-microsoft-365 .tile[data-s=add]{border-color:var(--blue-hi);background:rgba(63,169,245,.08)}
.pg-microsoft-365 .tile[data-s=add] .ti{background:var(--blue-hi);color:var(--blue-ink)}
.pg-microsoft-365 .tile[data-s=add] .ts{background:rgba(63,169,245,.2);color:#cfe8fb}
.pg-microsoft-365 .tile.flip{animation:pgflip .55s cubic-bezier(.3,1.3,.5,1) both}
@keyframes pgflip{0%{transform:rotateX(0)}45%{transform:rotateX(75deg)}100%{transform:rotateX(0)}}
.pg-microsoft-365 .fn{margin:14px 0 0;font-size:13px;color:#9aa6b3}
@media (max-width:1000px){.pg-microsoft-365 .tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:720px){.pg-microsoft-365 .tiles{grid-template-columns:1fr 1fr;gap:8px}.pg-microsoft-365 label.tile{min-height:0;padding:12px 10px 10px}.pg-microsoft-365 .tile .td{display:none}.pg-microsoft-365 .tile .tn{font-size:14px}.pg-microsoft-365 .tile .use em{display:none}.pg-microsoft-365 .tile .ts{font-size:12px}}
