Changes for page Public Web Site

Last modified by Agnease on 2026/07/03 16:14

From version 25.60
edited by Agnease
on 2026/06/30 12:29
Change comment: There is no comment for this version
To version 28.23
edited by Agnease
on 2026/07/03 13:15
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -2,94 +2,44 @@
2 2  #macro (displayPublicContent)
3 3   #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
4 4   {{html clean="false"}}
5 - <section class="hero hero-saas" id="top">
6 - <div class="container">
7 - <div class="hero-layout">
8 - <div class="hero-copy">
9 - <h1>Professional XWiki consulting <span>and engineering</span></h1>
10 - <p class="lead">
11 - Agnease helps organizations upgrade, maintain, secure and extend production XWiki platforms with practical engineering support, custom development, integrations and long-term care.
12 - </p>
13 - <ul class="benefits">
14 - <li>XWiki LTS upgrades</li>
15 - <li>Maintenance and support</li>
16 - <li>Custom XWiki development</li>
17 - <li>Migrations and integrations</li>
18 - </ul>
19 - <div class="hero-actions" id="hero-cta">
20 - <a class="btn btn-primary" href="https://calendly.com/alex-agnease/30min?back=1&month=2026-06">
21 - Book a free discussion
22 - </a>
23 - <a class="btn btn-secondary" href="$xwiki.getURL('services.WebHome')">View XWiki services</a>
24 - </div>
25 - </div>
26 - <div class="hero-visual" aria-hidden="true">
27 - <div class="hero-browser">
28 - <div class="hero-browser-top">
29 - <div class="hero-dot"></div>
30 - <div class="hero-dot"></div>
31 - <div class="hero-dot"></div>
32 - <div class="hero-search"></div>
5 + <section class="hero hero-saas" id="top">
6 + <div class="container">
7 + <div class="hero-layout">
8 + <div class="hero-copy">
9 + <h1>Professional XWiki consulting <span>and engineering</span></h1>
10 +
11 + <p class="lead">
12 + Agnease helps organizations upgrade, maintain, secure and extend production XWiki platforms with practical engineering support, custom development, integrations and long-term care.
13 + </p>
14 +
15 + <ul class="benefits">
16 + <li>XWiki LTS upgrades</li>
17 + <li>Maintenance and support</li>
18 + <li>Custom XWiki development</li>
19 + <li>Migrations and integrations</li>
20 + </ul>
21 +
22 + <div class="hero-actions" id="hero-cta">
23 + <a class="btn btn-primary" href="https://calendly.com/alex-agnease/30min?back=1&month=2026-06">
24 + Book a free discussion
25 + </a>
26 + <a class="btn btn-secondary" href="$xwiki.getURL('services.WebHome')">View XWiki services</a>
33 33   </div>
34 - <div class="hero-browser-body">
35 - <div class="hero-sidebar">
36 - <div class="hero-nav-item"><span class="hero-nav-icon"></span>Home</div>
37 - <div class="hero-nav-item"><span class="hero-nav-icon"></span>Documentation</div>
38 - <div class="hero-nav-item"><span class="hero-nav-icon"></span>Processes</div>
39 - <div class="hero-nav-item"><span class="hero-nav-icon"></span>Policies</div>
40 - <div class="hero-nav-item"><span class="hero-nav-icon"></span>Teams</div>
41 - </div>
42 - <div class="hero-content-panel">
43 - <div class="hero-panel-title">Production XWiki Platform</div>
44 - <div class="hero-skeleton"></div>
45 - <div class="hero-skeleton"></div>
46 - <div class="hero-skeleton short"></div>
47 - <div class="hero-dashboard-grid">
48 - <div class="hero-mini-card">
49 - <h4>Recent work</h4>
50 - <div class="hero-status-row"><span class="hero-status-dot"></span>LTS upgrade plan</div>
51 - <div class="hero-status-row"><span class="hero-status-dot"></span>Extension review</div>
52 - <div class="hero-status-row"><span class="hero-status-dot"></span>Production validation</div>
53 - </div>
54 - <div class="hero-mini-card">
55 - <h4>Platform care</h4>
56 - <div class="hero-status-row"><span class="hero-status-dot"></span>Permissions</div>
57 - <div class="hero-status-row"><span class="hero-status-dot"></span>Authentication</div>
58 - <div class="hero-status-row"><span class="hero-status-dot"></span>Maintainability</div>
59 - </div>
60 - </div>
61 - </div>
62 - </div>
63 63   </div>
64 - <div class="hero-floating hero-upgrade-card">
65 - <div class="hero-card-title">Upgrade with confidence</div>
66 - <div class="hero-version-flow">
67 - <div class="hero-version">XWiki<br/>LTS</div>
68 - <div class="hero-arrow">→</div>
69 - <div class="hero-version">Staging</div>
70 - <div class="hero-arrow">→</div>
71 - <div class="hero-version active">Production</div>
72 - </div>
29 +
30 + <div class="hero-image-wrapper">
31 + <img
32 + class="hero-image"
33 + src="$xwiki.getDocument('PublicWebSite.WebHome').getAttachmentURL('agnease-xwiki-hero.png')"
34 + alt="Illustration of a professional XWiki platform dashboard with upgrade, security and maintenance elements"
35 + width="1200"
36 + height="900"
37 + loading="eager"
38 + />
73 73   </div>
74 - <div class="hero-floating hero-security-card">
75 - <div class="hero-card-title">Security-aware maintenance</div>
76 - <ul>
77 - <li>Permissions review</li>
78 - <li>Authentication support</li>
79 - <li>Audit and traceability</li>
80 - </ul>
81 - </div>
82 - <div class="hero-flow">
83 - <div class="hero-env">Review</div>
84 - <div class="hero-arrow">→</div>
85 - <div class="hero-env">Plan</div>
86 - <div class="hero-arrow">→</div>
87 - <div class="hero-env">Validate</div>
88 - </div>
89 89   </div>
90 90   </div>
91 - </div>
92 - </section>
42 + </section>
93 93  #*
94 94   <section class="hero hero-centered" aria-labelledby="hero-title">
95 95   <div class="container hero-inner">
... ... @@ -199,9 +199,9 @@
199 199   </div>
200 200   </section>
201 201  
202 - <section class="industry-trust-section" aria-labelledby="industry-trust-title">
152 + <section class="contrast-band" aria-labelledby="industry-trust-title">
203 203   <div class="container">
204 - <div class="industry-trust-panel">
154 + <div class="contrast-panel">
205 205   <h2 id="industry-trust-title">Trusted XWiki expertise for business-critical platforms</h2>
206 206  
207 207   <p class="section-intro">
... ... @@ -209,7 +209,7 @@
209 209   government institutions, transportation, software development, compliance programs and regulated environments.
210 210   </p>
211 211  
212 - <div class="industry-tags" aria-label="Industries and environments supported">
162 + <div class="contrast-tags" aria-label="Industries and environments supported">
213 213   <span>Healthcare</span>
214 214   <span>Financial services</span>
215 215   <span>Scientific research</span>
... ... @@ -220,7 +220,7 @@
220 220   <span>Regulated environments</span>
221 221   </div>
222 222  
223 - <p class="industry-support">
173 + <p class="contrast-support">
224 224   Organizations rely on these platforms to manage documentation, workflows, compliance processes,
225 225   research knowledge and critical business information. From upgrades and authentication integrations
226 226   to workflow systems and long-term maintenance, Agnease helps keep XWiki secure, stable and ready for the future.
agnease-xwiki-hero.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Admin
Size
... ... @@ -1,0 +1,1 @@
1 +981.8 KB
Content
XWiki.StyleSheetExtension[0]
code
... ... @@ -165,6 +165,7 @@
165 165  */
166 166  .btn-secondary {
167 167   color: @text;
168 + background: #fff;
168 168   border: 1px solid fade(@text, 35%);
169 169  
170 170  }
... ... @@ -246,33 +246,122 @@
246 246   margin-top: 22px;
247 247  }
248 248  
249 -/* ========== Trust Strip ========== */
250 +/* ========== Contrast Band ========== */
250 250  
251 -.trust-strip {
252 - padding: 18px 0;
253 - border-top: 1px solid @line;
252 +.contrast-band {
253 + position: relative;
254 + overflow: visible;
255 + isolation: isolate;
256 + padding: 54px 0;
257 + border-top: 0;
258 + color: #fff;
259 + background: transparent;
260 +}
254 254  
255 - ul {
256 - max-width: 960px;
257 - margin: 0 auto;
258 - padding: 0;
259 - list-style: none;
260 - display: flex;
261 - justify-content: center;
262 - gap: 22px;
263 - flex-wrap: wrap;
264 - color: @muted;
265 - font-size: 13px;
266 - }
262 +.contrast-band::before {
263 + content: "";
264 + position: absolute;
265 + top: 0;
266 + bottom: 0;
267 + left: 50%;
268 + width: 100vw;
269 + transform: translateX(-50%);
270 + z-index: -2;
271 + background:
272 + radial-gradient(circle at 18% 18%, fade(@brand, 22%) 0%, transparent 28%),
273 + radial-gradient(circle at 86% 12%, fade(@brand, 16%) 0%, transparent 30%),
274 + linear-gradient(135deg, @text 0%, @text-soft 100%);
275 +}
267 267  
268 - li {
269 - display: flex;
270 - align-items: center;
271 - gap: 7px;
277 +.contrast-band::after {
278 + content: "";
279 + position: absolute;
280 + top: 0;
281 + bottom: 0;
282 + left: 50%;
283 + width: 100vw;
284 + transform: translateX(-50%);
285 + z-index: -1;
286 + background:
287 + linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px),
288 + linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px);
289 + background-size: 52px 52px;
290 + opacity: .38;
291 + pointer-events: none;
292 +}
293 +
294 +.contrast-band .container {
295 + position: relative;
296 + z-index: 1;
297 +}
298 +
299 +.contrast-panel {
300 + max-width: 1040px;
301 + margin: 0 auto;
302 + text-align: center;
303 +}
304 +
305 +.contrast-band h2 {
306 + max-width: 860px;
307 + margin: 0 auto 12px;
308 + color: #fff;
309 +}
310 +
311 +.contrast-band .section-intro {
312 + max-width: 840px;
313 + margin: 0 auto 26px;
314 + color: #D9E3EE;
315 +}
316 +
317 +.contrast-tags {
318 + max-width: 940px;
319 + margin: 0 auto;
320 + display: flex;
321 + flex-wrap: wrap;
322 + justify-content: center;
323 + gap: 10px;
324 +}
325 +
326 +.contrast-tags span {
327 + display: inline-flex;
328 + align-items: center;
329 + padding: 8px 13px;
330 + border: 1px solid fade(#fff, 18%);
331 + border-radius: 999px;
332 + background: fade(#fff, 8%);
333 + color: #F8FAFC;
334 + font-size: 13px;
335 + font-weight: 700;
336 + line-height: 1.2;
337 +}
338 +
339 +.contrast-tags span::before {
340 + content: "";
341 + width: 7px;
342 + height: 7px;
343 + margin-right: 8px;
344 + border-radius: 50%;
345 + background: @brand;
346 + box-shadow: 0 0 0 4px fade(@brand, 18%);
347 +}
348 +
349 +.contrast-support {
350 + max-width: 860px;
351 + margin: 30px auto 0;
352 + color: #D9E3EE;
353 + text-align: center;
354 + font-size: 15px;
355 + line-height: 1.7;
356 +}
357 +
358 +@media (max-width: 640px) {
359 + .contrast-band {
360 + padding: 40px 0;
272 272   }
273 273  
274 - i {
275 - color: @brand;
363 + .contrast-tags span {
364 + font-size: 12px;
365 + padding: 8px 11px;
276 276   }
277 277  }
278 278  
... ... @@ -432,80 +432,6 @@
432 432   }
433 433  }
434 434  
435 -.industry-trust-section {
436 - background:
437 - radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 70%);
438 -
439 - .industry-trust-panel {
440 - max-width: 1040px;
441 - margin: 0 auto;
442 - padding: 30px 28px;
443 - border: 1px solid fade(@brand, 16%);
444 - border-radius: @radius;
445 - background:
446 - radial-gradient(34rem 12rem at 50% 0%, fade(@brand-soft, 75%) 0%, #fff 72%);
447 - box-shadow: @shadow-sm;
448 - text-align: center;
449 - }
450 -
451 - h2 {
452 - margin-bottom: 12px;
453 - }
454 -
455 - .section-intro {
456 - margin-bottom: 20px;
457 - max-width: 820px;
458 - }
459 -
460 - .industry-tags {
461 - max-width: 880px;
462 - margin: 0 auto;
463 - display: flex;
464 - flex-wrap: wrap;
465 - justify-content: center;
466 - gap: 10px;
467 - }
468 -
469 - .industry-tags span {
470 - display: inline-flex;
471 - align-items: center;
472 - padding: 7px 12px;
473 - border: 1px solid fade(@brand, 20%);
474 - border-radius: 999px;
475 - background: #fff;
476 - color: @text;
477 - font-size: 13px;
478 - font-weight: 600;
479 - line-height: 1.2;
480 - box-shadow: 0 3px 10px rgba(0, 0, 0, .04);
481 - }
482 -
483 - .industry-support {
484 - max-width: 820px;
485 - margin: 22px auto 0;
486 - color: @muted;
487 - font-size: 16px;
488 - line-height: 1.6;
489 - }
490 -}
491 -
492 -@media (max-width: 640px) {
493 - .industry-trust-section {
494 - .industry-trust-panel {
495 - padding: 24px 18px;
496 - }
497 -
498 - .industry-tags {
499 - gap: 8px;
500 - }
501 -
502 - .industry-tags span {
503 - font-size: 12px;
504 - padding: 6px 10px;
505 - }
506 - }
507 -}
508 -
509 509  /* ========== Services ========== */
510 510  
511 511  .services {
... ... @@ -736,8 +736,8 @@
736 736  
737 737  /* ========== CTA ========== */
738 738  
739 -.cta-section {
740 - padding: @section-padding;
755 +#mainContentArea .cta-section {
756 + padding: 44px 0 56px;
741 741  
742 742   .contact-inline {
743 743   margin: 0;
... ... @@ -749,25 +749,70 @@
749 749   }
750 750  }
751 751  
752 -.cta-panel {
753 - max-width: 860px;
768 +#mainContentArea .cta-panel {
769 + position: relative;
770 + overflow: hidden;
771 + max-width: 1040px;
754 754   margin: 0 auto;
755 - padding: 32px;
756 - border-radius: @radius;
757 - border: 1px solid fade(@brand, 20%);
758 - box-shadow: @shadow-sm;
773 + padding: 48px 40px;
774 + border: 0;
775 + border-radius: 26px;
776 + background:
777 + radial-gradient(circle at 88% 10%, fade(@brand, 24%) 0%, transparent 30%),
778 + linear-gradient(135deg, @text 0%, @text-soft 100%);
779 + color: #fff;
780 + box-shadow: @shadow;
759 759   text-align: center;
782 +}
760 760  
761 - h2 {
762 - margin-top: 0;
763 - }
784 +#mainContentArea .cta-panel::before {
785 + content: "";
786 + position: absolute;
787 + inset: 0;
788 + background:
789 + linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px),
790 + linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px);
791 + background-size: 48px 48px;
792 + opacity: .4;
793 + pointer-events: none;
794 +}
764 764  
765 - p {
766 - color: @muted;
767 - line-height: 1.55;
768 - }
796 +#mainContentArea .cta-panel h2,
797 +#mainContentArea .cta-panel p,
798 +#mainContentArea .cta-panel .btn {
799 + position: relative;
800 + z-index: 1;
769 769  }
770 770  
803 +#mainContentArea .cta-panel h2 {
804 + max-width: 760px;
805 + margin: 0 auto 16px;
806 + color: #fff;
807 +}
808 +
809 +#mainContentArea .cta-panel p {
810 + max-width: 760px;
811 + margin: 0 auto 28px;
812 + color: #DBE4EF;
813 + font-size: 16px;
814 + line-height: 1.6;
815 +}
816 +
817 +#mainContentArea .cta-panel .btn-primary {
818 + border-color: #fff;
819 + background: #fff;
820 + color: @text;
821 + box-shadow: 0 18px 42px rgba(0, 0, 0, .18);
822 +}
823 +
824 +#mainContentArea .cta-panel .btn-primary:hover,
825 +#mainContentArea .cta-panel .btn-primary:focus {
826 + border-color: #fff;
827 + background: #fff;
828 + color: @brand-strong;
829 + text-decoration: none;
830 +}
831 +
771 771  .resource-inline-cta {
772 772   display: flex;
773 773   align-items: center;
... ... @@ -899,9 +899,14 @@
899 899   gap: 14px;
900 900   }
901 901  
902 - .cta-panel {
903 - padding: 24px 20px;
963 + #mainContentArea .cta-panel {
964 + padding: 30px 22px;
965 + border-radius: 20px;
904 904   }
967 +
968 + #mainContentArea .cta-panel .btn-primary {
969 + width: 100%;
970 + }
905 905  }
906 906  
907 907  /* ========== Resource / Article Pages ========== */
... ... @@ -1634,8 +1634,8 @@
1634 1634   background-image: none !important;
1635 1635  } */
1636 1636  
1703 +/* ========== Main Page Hero / SaaS Layout ========== */
1637 1637  
1638 -/* ========== Hero ========== */
1639 1639  #mainContentArea .hero.hero-saas {
1640 1640   min-height: auto;
1641 1641   padding: 60px 0 34px;
... ... @@ -1644,18 +1644,21 @@
1644 1644   overflow: hidden;
1645 1645   background: transparent;
1646 1646  }
1713 +
1647 1647  #mainContentArea .hero-layout {
1648 1648   max-width: 1120px;
1649 1649   margin: 0 auto;
1650 1650   display: grid;
1651 - grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
1718 + grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
1652 1652   gap: 56px;
1653 1653   align-items: center;
1654 1654  }
1655 -#mainContentArea .hero-copy,
1656 -#mainContentArea .hero.hero-saas .lead {
1722 +
1723 +#mainContentArea .hero-copy {
1724 + min-width: 0;
1657 1657   text-align: left;
1658 1658  }
1727 +
1659 1659  #mainContentArea .hero.hero-saas h1 {
1660 1660   max-width: 640px;
1661 1661   margin: 0 0 26px;
... ... @@ -1664,16 +1664,20 @@
1664 1664   line-height: 1;
1665 1665   letter-spacing: -3px;
1666 1666  }
1736 +
1667 1667  #mainContentArea .hero.hero-saas h1 span {
1668 1668   color: @brand;
1669 1669  }
1740 +
1670 1670  #mainContentArea .hero.hero-saas .lead {
1671 1671   max-width: 590px;
1672 1672   margin: 0 0 28px;
1673 1673   color: #334155;
1745 + text-align: left;
1674 1674   font-size: 18px;
1675 1675   line-height: 1.6;
1676 1676  }
1749 +
1677 1677  #mainContentArea .hero.hero-saas .benefits {
1678 1678   max-width: 620px;
1679 1679   margin: 0 0 30px;
... ... @@ -1686,6 +1686,7 @@
1686 1686   font-size: 15px;
1687 1687   text-align: left;
1688 1688  }
1762 +
1689 1689  #mainContentArea .hero.hero-saas .benefits li {
1690 1690   display: grid;
1691 1691   grid-template-columns: 18px minmax(0, 1fr);
... ... @@ -1694,6 +1694,7 @@
1694 1694   margin: 0;
1695 1695   line-height: 1.45;
1696 1696  }
1771 +
1697 1697  #mainContentArea .hero.hero-saas .benefits li::before {
1698 1698   content: "✓";
1699 1699   display: block;
... ... @@ -1704,212 +1704,192 @@
1704 1704   text-align: left;
1705 1705   margin: 0;
1706 1706  }
1707 -#mainContentArea .hero-actions,
1708 -#mainContentArea #hero-cta {
1782 +
1783 +#mainContentArea .hero.hero-saas .hero-actions,
1784 +#mainContentArea .hero.hero-saas #hero-cta {
1709 1709   display: flex;
1710 1710   flex-wrap: wrap;
1711 1711   justify-content: flex-start;
1712 1712   gap: 12px;
1789 + margin-top: 0;
1713 1713  }
1714 -#mainContentArea .hero-visual {
1715 - position: relative;
1716 - min-height: 540px;
1717 -}
1718 -#mainContentArea .hero-browser,
1719 -#mainContentArea .hero-floating {
1720 - border: 1px solid @line;
1721 - background: fade(#fff, 94%);
1722 - box-shadow: @shadow;
1723 - backdrop-filter: blur(14px);
1724 -}
1725 -#mainContentArea .hero-browser {
1726 - position: absolute;
1727 - top: 8px;
1728 - right: 0;
1729 - width: 100%;
1730 - max-width: 720px;
1731 - overflow: hidden;
1732 - border-radius: 18px;
1733 - background: fade(#fff, 88%);
1734 -}
1735 -#mainContentArea .hero-browser-top {
1736 - height: 58px;
1791 +
1792 +#mainContentArea .hero-image-wrapper {
1793 + min-width: 0;
1737 1737   display: flex;
1795 + justify-content: center;
1738 1738   align-items: center;
1739 - gap: 10px;
1740 - padding: 0 24px;
1741 - border-bottom: 1px solid @line;
1742 - background: fade(#fff, 74%);
1743 1743  }
1744 -#mainContentArea .hero-dot,
1745 -#mainContentArea .hero-status-dot {
1746 - border-radius: 50%;
1798 +
1799 +#mainContentArea .hero-image {
1800 + display: block;
1801 + width: 100%;
1802 + max-width: 620px;
1803 + height: auto;
1804 + border: 0;
1747 1747  }
1748 -#mainContentArea .hero-dot {
1749 - width: 10px;
1750 - height: 10px;
1751 - background: #CBD5E1;
1806 +
1807 +/* ========== Main Page Hero Responsive ========== */
1808 +
1809 +@media (max-width: 1100px) {
1810 + #mainContentArea .hero-layout {
1811 + max-width: 760px;
1812 + grid-template-columns: 1fr;
1813 + gap: 34px;
1814 + }
1815 +
1816 + #mainContentArea .hero-copy {
1817 + order: 1;
1818 + text-align: center;
1819 + }
1820 +
1821 + #mainContentArea .hero-image-wrapper {
1822 + order: 2;
1823 + }
1824 +
1825 + #mainContentArea .hero.hero-saas h1 {
1826 + margin-left: auto;
1827 + margin-right: auto;
1828 + text-align: center;
1829 + }
1830 +
1831 + #mainContentArea .hero.hero-saas .lead {
1832 + margin-left: auto;
1833 + margin-right: auto;
1834 + text-align: center;
1835 + }
1836 +
1837 + #mainContentArea .hero.hero-saas .benefits {
1838 + margin-left: auto;
1839 + margin-right: auto;
1840 + }
1841 +
1842 + #mainContentArea .hero.hero-saas .hero-actions,
1843 + #mainContentArea .hero.hero-saas #hero-cta {
1844 + justify-content: center;
1845 + }
1846 +
1847 + #mainContentArea .hero-image {
1848 + max-width: 620px;
1849 + }
1752 1752  }
1753 -#mainContentArea .hero-status-dot {
1754 - width: 8px;
1755 - height: 8px;
1756 - background: @brand;
1851 +
1852 +@media (max-width: 640px) {
1853 + #mainContentArea .hero.hero-saas {
1854 + padding: 42px 0 28px;
1855 + }
1856 +
1857 + #mainContentArea .hero-layout {
1858 + gap: 28px;
1859 + }
1860 +
1861 + #mainContentArea .hero.hero-saas h1 {
1862 + font-size: 42px;
1863 + letter-spacing: -1.5px;
1864 + }
1865 +
1866 + #mainContentArea .hero.hero-saas .lead {
1867 + font-size: 17px;
1868 + }
1869 +
1870 + #mainContentArea .hero.hero-saas .benefits {
1871 + grid-template-columns: 1fr;
1872 + }
1873 +
1874 + #mainContentArea .hero-image {
1875 + max-width: 100%;
1876 + }
1757 1757  }
1758 -#mainContentArea .hero-search {
1759 - margin-left: auto;
1760 - width: 170px;
1761 - height: 26px;
1762 - border: 1px solid #E2E8F0;
1763 - border-radius: 20px;
1764 - background: #F1F5F9;
1878 +
1879 +/* ========== Accessibility / Contrast Improvements ========== */
1880 +
1881 +/* Make the global background softer and less distracting. */
1882 +body {
1883 + background:
1884 + radial-gradient(circle at 12% 8%, rgba(0, 147, 125, 0.035) 0, transparent 26%),
1885 + radial-gradient(circle at 90% 28%, rgba(7, 24, 45, 0.025) 0, transparent 30%),
1886 + linear-gradient(180deg, #fff 0, @brand-bg 42%, #fff 100%) !important;
1887 + background-attachment: scroll;
1765 1765  }
1766 -#mainContentArea .hero-browser-body {
1767 - display: grid;
1768 - grid-template-columns: 150px minmax(0, 1fr);
1889 +
1890 +/* Keep the article area readable while preserving the page background around it. */
1891 +#mainContentArea .resource-layout {
1892 + padding: 28px;
1893 + border: 1px solid fade(@line, 85%);
1894 + border-radius: @radius;
1895 + background: rgba(255, 255, 255, .88);
1896 + box-shadow: @shadow-sm;
1769 1769  }
1770 -#mainContentArea .hero-sidebar {
1771 - padding: 24px 18px;
1772 - border-right: 1px solid @line;
1773 - background: #F8FAFC;
1898 +
1899 +/* Ensure all reusable cards have a real surface, not transparent over the gradient. */
1900 +#mainContentArea .widget,
1901 +#mainContentArea .pathway-card,
1902 +#mainContentArea .service-card,
1903 +#mainContentArea .resource-card,
1904 +#mainContentArea .services .service,
1905 +#mainContentArea .product-card,
1906 +#mainContentArea .product-feature,
1907 +#mainContentArea .product-summary-card,
1908 +#mainContentArea .product-info-card {
1909 + background: #fff;
1774 1774  }
1775 -#mainContentArea .hero-nav-item,
1776 -#mainContentArea .hero-status-row,
1777 -#mainContentArea .hero-version-flow,
1778 -#mainContentArea .hero-flow {
1779 - display: flex;
1780 - align-items: center;
1911 +
1912 +/* Make notes more readable and visually stronger. */
1913 +#mainContentArea .resource-note {
1914 + border: 1px solid fade(@brand, 18%);
1915 + border-left: 4px solid @brand;
1916 + background: #fff;
1917 + box-shadow: 0 10px 28px rgba(15, 23, 42, .045);
1781 1781  }
1782 -#mainContentArea .hero-nav-item {
1783 - gap: 9px;
1784 - padding: 10px 8px;
1785 - color: #334155;
1786 - font-size: 13px;
1919 +
1920 +/* Keep the sidebar clearly separated from the background. */
1921 +#mainContentArea .resource-sidebar {
1922 + background: #fff;
1787 1787  }
1788 -#mainContentArea .hero-nav-icon {
1789 - width: 20px;
1790 - height: 20px;
1791 - border: 1px solid #CBD5E1;
1792 - border-radius: 5px;
1924 +
1925 +/* Make CTA panels stand out more clearly. */
1926 +#mainContentArea .resource-cta,
1927 +#mainContentArea .resource-inline-cta {
1928 + background: #fff;
1793 1793  }
1794 -#mainContentArea .hero-content-panel {
1795 - padding: 26px;
1930 +
1931 +/* Improve table readability on long resource pages. */
1932 +#mainContentArea .resource-content table {
1933 + background: #fff;
1796 1796  }
1797 -#mainContentArea .hero-panel-title,
1798 -#mainContentArea .hero-card-title {
1935 +
1936 +#mainContentArea .resource-content table th {
1799 1799   color: @text;
1800 - font-weight: 800;
1938 + background: #F8FAFC;
1801 1801  }
1802 -#mainContentArea .hero-panel-title {
1803 - margin-bottom: 18px;
1804 - font-size: 20px;
1940 +
1941 +#mainContentArea .resource-content table td {
1942 + color: @text-soft;
1805 1805  }
1806 -#mainContentArea .hero-skeleton {
1807 - height: 8px;
1808 - margin-bottom: 10px;
1809 - border-radius: 10px;
1810 - background: #E2E8F0;
1944 +
1945 +/* Slightly improve paragraph/list contrast in long articles. */
1946 +#mainContentArea .resource-content p,
1947 +#mainContentArea .resource-content li {
1948 + color: @text-soft;
1811 1811  }
1812 -#mainContentArea .hero-skeleton.short {
1813 - width: 64%;
1950 +
1951 +#mainContentArea .resource-content .resource-note p,
1952 +#mainContentArea .resource-content .resource-checklist li,
1953 +#mainContentArea .resource-content .process-list li {
1954 + color: @muted;
1814 1814  }
1815 -#mainContentArea .hero-dashboard-grid {
1816 - margin-top: 28px;
1817 - display: grid;
1818 - grid-template-columns: repeat(2, minmax(0, 1fr));
1819 - gap: 18px;
1956 +
1957 +@media (max-width: 900px) {
1958 + #mainContentArea .resource-layout {
1959 + padding: 22px;
1960 + }
1820 1820  }
1821 -#mainContentArea .hero-mini-card {
1822 - padding: 18px;
1823 - border: 1px solid @line;
1824 - border-radius: 14px;
1825 - background: #fff;
1962 +
1963 +@media (max-width: 640px) {
1964 + #mainContentArea .resource-layout {
1965 + padding: 18px;
1966 + border-radius: 14px;
1967 + }
1826 1826  }
1827 -#mainContentArea .hero-mini-card h4 {
1828 - margin: 0 0 14px;
1829 - font-size: 15px;
1830 -}
1831 -#mainContentArea .hero-status-row {
1832 - gap: 10px;
1833 - margin: 11px 0;
1834 - color: #475569;
1835 - font-size: 13px;
1836 -}
1837 -#mainContentArea .hero-floating {
1838 - position: absolute;
1839 - border-radius: 16px;
1840 -}
1841 -#mainContentArea .hero-upgrade-card {
1842 - left: 0;
1843 - bottom: 72px;
1844 - width: 320px;
1845 - padding: 20px;
1846 -}
1847 -#mainContentArea .hero-security-card {
1848 - right: 20px;
1849 - top: 260px;
1850 - width: 260px;
1851 - padding: 22px;
1852 -}
1853 -#mainContentArea .hero-security-card ul {
1854 - margin: 0;
1855 - padding: 0;
1856 - list-style: none;
1857 -}
1858 -#mainContentArea .hero-security-card li {
1859 - margin: 12px 0;
1860 - font-size: 14px;
1861 -}
1862 -#mainContentArea .hero-security-card li::before {
1863 - content: "✓";
1864 - margin-right: 8px;
1865 - color: @brand;
1866 - font-weight: 900;
1867 -}
1868 -#mainContentArea .hero-card-title {
1869 - margin-bottom: 16px;
1870 -}
1871 -#mainContentArea .hero-version-flow {
1872 - gap: 8px;
1873 -}
1874 -#mainContentArea .hero-version {
1875 - width: 62px;
1876 - height: 54px;
1877 - padding: 0 8px;
1878 - display: grid;
1879 - place-items: center;
1880 - box-sizing: border-box;
1881 - border-radius: 8px;
1882 - background: #F1F5F9;
1883 - color: #334155;
1884 - text-align: center;
1885 - font-size: 13px;
1886 - line-height: 1.25;
1887 -}
1888 -#mainContentArea .hero-version.active {
1889 - width: 84px;
1890 - background: @text;
1891 - color: #fff;
1892 -}
1893 -#mainContentArea .hero-arrow {
1894 - color: #64748B;
1895 -}
1896 -#mainContentArea .hero-flow {
1897 - position: absolute;
1898 - right: 48px;
1899 - bottom: 18px;
1900 - gap: 12px;
1901 -}
1902 -#mainContentArea .hero-env {
1903 - min-width: 130px;
1904 - padding: 16px 20px;
1905 - border: 1px solid @line;
1906 - border-radius: 12px;
1907 - background: #fff;
1908 - color: #475569;
1909 - text-align: center;
1910 - text-transform: uppercase;
1911 - font-size: 12px;
1912 - letter-spacing: 1.3px;
1913 - box-shadow: 0 16px 40px rgba(15, 23, 42, .08);
1914 -}
1915 1915  
1970 +