Changes for page Public Web Site

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

From version 28.19
edited by Agnease
on 2026/07/03 13:03
Change comment: There is no comment for this version
To version 22.1
edited by Agnease
on 2026/06/23 12:06
Change comment: Rollback to version 20.11

Summary

Details

Page properties
Default language
... ... @@ -1,0 +1,1 @@
1 +en
Hidden
... ... @@ -1,1 +1,1 @@
1 -true
1 +false
Content
... ... @@ -2,45 +2,7 @@
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 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>
27 - </div>
28 - </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 - />
39 - </div>
40 - </div>
41 - </div>
42 - </section>
43 -#*
44 44   <section class="hero hero-centered" aria-labelledby="hero-title">
45 45   <div class="container hero-inner">
46 46   <h1 id="hero-title">Professional XWiki consulting and engineering</h1>
... ... @@ -64,7 +64,7 @@
64 64   </div>
65 65   </div>
66 66   </section>
67 -*#
29 +
68 68   <section class="trust-strip" aria-label="Agnease experience">
69 69   <div class="container">
70 70   <ul>
... ... @@ -149,9 +149,9 @@
149 149   </div>
150 150   </section>
151 151  
152 - <section class="contrast-band" aria-labelledby="industry-trust-title">
114 + <section class="industry-trust-section" aria-labelledby="industry-trust-title">
153 153   <div class="container">
154 - <div class="contrast-panel">
116 + <div class="industry-trust-panel">
155 155   <h2 id="industry-trust-title">Trusted XWiki expertise for business-critical platforms</h2>
156 156  
157 157   <p class="section-intro">
... ... @@ -159,7 +159,7 @@
159 159   government institutions, transportation, software development, compliance programs and regulated environments.
160 160   </p>
161 161  
162 - <div class="contrast-tags" aria-label="Industries and environments supported">
124 + <div class="industry-tags" aria-label="Industries and environments supported">
163 163   <span>Healthcare</span>
164 164   <span>Financial services</span>
165 165   <span>Scientific research</span>
... ... @@ -170,7 +170,7 @@
170 170   <span>Regulated environments</span>
171 171   </div>
172 172  
173 - <p class="contrast-support">
135 + <p class="industry-support">
174 174   Organizations rely on these platforms to manage documentation, workflows, compliance processes,
175 175   research knowledge and critical business information. From upgrades and authentication integrations
176 176   to workflow systems and long-term maintenance, Agnease helps keep XWiki secure, stable and ready for the future.
agnease-xwiki-hero.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Admin
Size
... ... @@ -1,1 +1,0 @@
1 -981.8 KB
Content
XWiki.StyleSheetExtension[0]
code
... ... @@ -1,5 +1,5 @@
1 1  /* ========== Agnease Public Website ========== */
2 -/*
2 +
3 3  @brand: #00937D;
4 4  @brand-strong: #007B6A;
5 5  @brand-soft: #E7FFF8;
... ... @@ -11,19 +11,6 @@
11 11  @shadow-sm: 0 6px 20px rgba(0, 0, 0, .06);
12 12  @shadow: 0 12px 36px rgba(0, 0, 0, .08);
13 13  @maxw: 1140px;
14 -*/
15 -@brand: #00937D;
16 -@brand-strong: #007B6A;
17 -@brand-soft: #E7FFF8;
18 -@brand-bg: #F7F9FC;
19 -@text: #07182D;
20 -@text-soft: #10243D;
21 -@muted: #64748B;
22 -@line: #E6EBF2;
23 -@radius: 18px;
24 -@shadow-sm: 0 18px 45px rgba(15, 23, 42, .06);
25 -@shadow: 0 30px 80px rgba(15, 23, 42, .12);
26 -@maxw: 1140px;
27 27  
28 28  @section-padding: 30px 0;
29 29  @section-padding-mobile: 28px 0;
... ... @@ -150,7 +150,7 @@
150 150  
151 151  /* ========== Buttons ========== */
152 152  
153 -/*.btn-primary {
140 +.btn-primary {
154 154   background: @brand;
155 155   border-color: @brand;
156 156   color: #fff;
... ... @@ -162,12 +162,18 @@
162 162   color: #fff;
163 163   }
164 164  }
165 -*/
152 +
166 166  .btn-secondary {
167 - color: @text;
154 + color: @brand;
168 168   background: #fff;
169 - border: 1px solid fade(@text, 35%);
156 + border: 1px solid fade(@brand, 35%);
170 170  
158 + &:hover,
159 + &:focus {
160 + color: @brand-strong;
161 + border-color: @brand;
162 + background: @brand-bg;
163 + }
171 171  }
172 172  
173 173  /* ========== Hero ========== */
... ... @@ -179,6 +179,9 @@
179 179  
180 180   &.hero-centered {
181 181   text-align: center;
175 + background:
176 + radial-gradient(50rem 18rem at 50% -10%, @brand-soft 0%, transparent 60%),
177 + radial-gradient(50rem 18rem at 50% 0%, #E8F6F3 0%, transparent 60%);
182 182   display: flex;
183 183   align-items: center;
184 184   justify-content: center;
... ... @@ -247,104 +247,35 @@
247 247   margin-top: 22px;
248 248  }
249 249  
250 -/* ========== Contrast Band ========== */
246 +/* ========== Trust Strip ========== */
251 251  
252 -.contrast-band {
253 - position: relative;
254 - overflow: hidden;
255 - padding: 54px 0;
256 - background:
257 - radial-gradient(circle at 18% 18%, fade(@brand, 22%) 0%, transparent 28%),
258 - radial-gradient(circle at 86% 12%, fade(@brand, 16%) 0%, transparent 30%),
259 - linear-gradient(135deg, @text 0%, @text-soft 100%);
260 - color: #fff;
248 +.trust-strip {
249 + padding: 18px 0;
250 + border-top: 1px solid @line;
251 + background: #fff;
261 261  
262 - &::before {
263 - content: "";
264 - position: absolute;
265 - inset: 0;
266 - background:
267 - linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px),
268 - linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px);
269 - background-size: 52px 52px;
270 - opacity: .38;
271 - pointer-events: none;
272 - }
273 -
274 - .container {
275 - position: relative;
276 - z-index: 1;
277 - }
278 -
279 - .contrast-panel {
280 - max-width: 1040px;
253 + ul {
254 + max-width: 960px;
281 281   margin: 0 auto;
282 - text-align: center;
256 + padding: 0;
257 + list-style: none;
258 + display: flex;
259 + justify-content: center;
260 + gap: 22px;
261 + flex-wrap: wrap;
262 + color: @muted;
263 + font-size: 13px;
283 283   }
284 284  
285 - h2 {
286 - max-width: 860px;
287 - margin: 0 auto 12px;
288 - color: #fff;
289 - }
290 -
291 - .section-intro {
292 - max-width: 840px;
293 - margin: 0 auto 26px;
294 - color: #D9E3EE;
295 - }
296 -}
297 -
298 -.contrast-tags {
299 - max-width: 940px;
300 - margin: 0 auto;
301 - display: flex;
302 - flex-wrap: wrap;
303 - justify-content: center;
304 - gap: 10px;
305 -
306 - span {
307 - display: inline-flex;
266 + li {
267 + display: flex;
308 308   align-items: center;
309 - padding: 8px 13px;
310 - border: 1px solid fade(#fff, 18%);
311 - border-radius: 999px;
312 - background: fade(#fff, 8%);
313 - color: #F8FAFC;
314 - font-size: 13px;
315 - font-weight: 700;
316 - line-height: 1.2;
317 -
318 - &::before {
319 - content: "";
320 - width: 7px;
321 - height: 7px;
322 - margin-right: 8px;
323 - border-radius: 50%;
324 - background: @brand;
325 - box-shadow: 0 0 0 4px fade(@brand, 18%);
326 - }
269 + gap: 7px;
327 327   }
328 -}
329 329  
330 -.contrast-support {
331 - max-width: 860px;
332 - margin: 30px auto 0;
333 - color: #D9E3EE;
334 - text-align: center;
335 - font-size: 15px;
336 - line-height: 1.7;
337 -}
338 -
339 -@media (max-width: 640px) {
340 - .contrast-band {
341 - padding: 40px 0;
272 + i {
273 + color: @brand;
342 342   }
343 -
344 - .contrast-tags span {
345 - font-size: 12px;
346 - padding: 8px 11px;
347 - }
348 348  }
349 349  
350 350  /* ========== Reusable Grids ========== */
... ... @@ -394,6 +394,7 @@
394 394  .pathway-card,
395 395  .service-card,
396 396  .resource-card {
324 + background: #fff;
397 397   border: 1px solid @line;
398 398   border-radius: @radius;
399 399   box-shadow: @shadow-sm;
... ... @@ -589,6 +589,7 @@
589 589   align-items: flex-start;
590 590   gap: 16px;
591 591   padding: 22px;
520 + background: #fff;
592 592   border: 1px solid @line;
593 593   border-radius: @radius;
594 594   box-shadow: @shadow-sm;
... ... @@ -676,6 +676,7 @@
676 676   position: relative;
677 677   padding: 16px 16px 16px 58px;
678 678   margin-bottom: 12px;
608 + background: #fff;
679 679   border: 1px solid @line;
680 680   border-radius: @radius;
681 681   box-shadow: @shadow-sm;
... ... @@ -807,8 +807,8 @@
807 807  
808 808  /* ========== CTA ========== */
809 809  
810 -#mainContentArea .cta-section {
811 - padding: 44px 0 56px;
740 +.cta-section {
741 + padding: @section-padding;
812 812  
813 813   .contact-inline {
814 814   margin: 0;
... ... @@ -820,70 +820,27 @@
820 820   }
821 821  }
822 822  
823 -#mainContentArea .cta-panel {
824 - position: relative;
825 - overflow: hidden;
826 - max-width: 1040px;
753 +.cta-panel {
754 + max-width: 860px;
827 827   margin: 0 auto;
828 - padding: 48px 40px;
829 - border: 0;
830 - border-radius: 26px;
756 + padding: 32px;
757 + border-radius: @radius;
758 + border: 1px solid fade(@brand, 20%);
831 831   background:
832 - radial-gradient(circle at 88% 10%, fade(@brand, 24%) 0%, transparent 30%),
833 - linear-gradient(135deg, @text 0%, @text-soft 100%);
834 - color: #fff;
835 - box-shadow: @shadow;
760 + radial-gradient(34rem 12rem at 50% 0%, @brand-soft 0%, #fff 70%);
761 + box-shadow: @shadow-sm;
836 836   text-align: center;
837 -}
838 838  
839 -#mainContentArea .cta-panel::before {
840 - content: "";
841 - position: absolute;
842 - inset: 0;
843 - background:
844 - linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px),
845 - linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px);
846 - background-size: 48px 48px;
847 - opacity: .4;
848 - pointer-events: none;
849 -}
764 + h2 {
765 + margin-top: 0;
766 + }
850 850  
851 -#mainContentArea .cta-panel h2,
852 -#mainContentArea .cta-panel p,
853 -#mainContentArea .cta-panel .btn {
854 - position: relative;
855 - z-index: 1;
768 + p {
769 + color: @muted;
770 + line-height: 1.55;
771 + }
856 856  }
857 857  
858 -#mainContentArea .cta-panel h2 {
859 - max-width: 760px;
860 - margin: 0 auto 16px;
861 - color: #fff;
862 -}
863 -
864 -#mainContentArea .cta-panel p {
865 - max-width: 760px;
866 - margin: 0 auto 28px;
867 - color: #DBE4EF;
868 - font-size: 16px;
869 - line-height: 1.6;
870 -}
871 -
872 -#mainContentArea .cta-panel .btn-primary {
873 - border-color: #fff;
874 - background: #fff;
875 - color: @text;
876 - box-shadow: 0 18px 42px rgba(0, 0, 0, .18);
877 -}
878 -
879 -#mainContentArea .cta-panel .btn-primary:hover,
880 -#mainContentArea .cta-panel .btn-primary:focus {
881 - border-color: #fff;
882 - background: #fff;
883 - color: @brand-strong;
884 - text-decoration: none;
885 -}
886 -
887 887  .resource-inline-cta {
888 888   display: flex;
889 889   align-items: center;
... ... @@ -1015,14 +1015,9 @@
1015 1015   gap: 14px;
1016 1016   }
1017 1017  
1018 - #mainContentArea .cta-panel {
1019 - padding: 30px 22px;
1020 - border-radius: 20px;
905 + .cta-panel {
906 + padding: 24px 20px;
1021 1021   }
1022 -
1023 - #mainContentArea .cta-panel .btn-primary {
1024 - width: 100%;
1025 - }
1026 1026  }
1027 1027  
1028 1028  /* ========== Resource / Article Pages ========== */
... ... @@ -1034,6 +1034,9 @@
1034 1034  .resource-header {
1035 1035   padding: @section-padding;
1036 1036   border-top: none;
919 + background:
920 + radial-gradient(50rem 18rem at 50% -10%, @brand-soft 0%, transparent 60%),
921 + radial-gradient(50rem 18rem at 50% 0%, #E8F6F3 0%, transparent 60%);
1037 1037  
1038 1038   h1 {
1039 1039   margin: 0 auto 14px;
... ... @@ -1181,6 +1181,7 @@
1181 1181   border: 1px solid @line;
1182 1182   border-radius: @radius;
1183 1183   padding: 18px;
1069 + background: #fff;
1184 1184   box-shadow: @shadow-sm;
1185 1185  
1186 1186   h4 {
... ... @@ -1270,39 +1270,30 @@
1270 1270  }
1271 1271  
1272 1272  .product-card-grid {
1273 - max-width: 980px;
1274 - margin: 26px auto 0;
1159 + max-width: 840px;
1160 + margin: 22px auto 0;
1275 1275   display: grid;
1276 1276   grid-template-columns: 1fr;
1277 - grid-gap: 22px;
1163 + grid-gap: 18px;
1278 1278  }
1279 1279  
1280 1280  .product-card {
1281 - position: relative;
1167 + background: #fff;
1282 1282   border: 1px solid @line;
1283 1283   border-radius: @radius;
1284 1284   box-shadow: @shadow-sm;
1285 - padding: 32px;
1171 + padding: 28px;
1286 1286   display: grid;
1287 - grid-template-columns: 70px 1fr;
1288 - grid-gap: 24px;
1173 + grid-template-columns: 68px 1fr;
1174 + grid-gap: 22px;
1289 1289   align-items: start;
1290 - overflow: hidden;
1291 1291  
1292 - &:before {
1293 - content: "";
1294 - position: absolute;
1295 - inset: 0 auto 0 0;
1296 - width: 5px;
1297 - background: linear-gradient(180deg, @brand 0%, @brand-strong 100%);
1298 - }
1299 -
1300 1300   .product-card-icon {
1301 1301   width: 58px;
1302 1302   height: 58px;
1303 1303   border-radius: 50%;
1304 1304   background: fade(@brand, 10%);
1305 - border: 1px solid fade(@brand, 22%);
1182 + border: 1px solid fade(@brand, 20%);
1306 1306   color: @brand;
1307 1307   display: flex;
1308 1308   align-items: center;
... ... @@ -1311,15 +1311,11 @@
1311 1311   flex-shrink: 0;
1312 1312   }
1313 1313  
1314 - .product-card-body {
1315 - min-width: 0;
1316 - }
1317 -
1318 1318   h3 {
1319 1319   margin: 0 0 10px;
1320 1320   color: @text;
1321 - font-size: 25px;
1322 - line-height: 1.22;
1194 + font-size: 23px;
1195 + line-height: 1.25;
1323 1323   font-weight: 800;
1324 1324   }
1325 1325  
... ... @@ -1328,36 +1328,25 @@
1328 1328   line-height: 1.6;
1329 1329   }
1330 1330  
1331 - .product-card-description {
1332 - max-width: 760px;
1333 - margin: 0 0 14px;
1334 - font-size: 16px;
1204 + .card-link {
1205 + margin: 0;
1206 +
1207 + a {
1208 + font-weight: 700;
1209 + }
1335 1335   }
1336 1336  }
1337 1337  
1338 1338  .product-card-kicker {
1339 - display: inline-flex;
1340 - align-items: center;
1341 - gap: 7px;
1342 - width: fit-content;
1343 1343   margin-bottom: 10px;
1344 1344   padding: 5px 10px;
1345 - border: 1px solid fade(@brand, 24%);
1346 - border-radius: 999px;
1347 - background: fade(@brand, 8%);
1348 - color: @brand-strong;
1349 1349   font-size: 12px;
1350 - font-weight: 800;
1351 1351   text-transform: uppercase;
1352 1352   letter-spacing: .04em;
1353 -
1354 - i {
1355 - color: @brand;
1356 - }
1357 1357  }
1358 1358  
1359 1359  .product-highlights {
1360 - margin: 14px 0 22px;
1222 + margin: 14px 0 20px;
1361 1361   padding-left: 18px;
1362 1362   color: @muted;
1363 1363  
... ... @@ -1367,58 +1367,12 @@
1367 1367   }
1368 1368  }
1369 1369  
1370 -.product-card-actions {
1371 - display: flex;
1372 - align-items: center;
1373 - gap: 16px;
1374 - flex-wrap: wrap;
1375 -
1376 - .btn {
1377 - font-weight: 700;
1378 - }
1379 -}
1380 -
1381 -.product-card-contact {
1382 - color: @brand;
1383 - font-weight: 700;
1384 - text-decoration: underline;
1385 -
1386 - &:hover,
1387 - &:focus {
1388 - color: @brand-strong;
1389 - }
1390 -}
1391 -
1392 -@media (max-width: 640px) {
1393 - .product-card {
1394 - grid-template-columns: 1fr;
1395 - padding: 26px 22px;
1396 - text-align: left;
1397 -
1398 - &:before {
1399 - width: 4px;
1400 - }
1401 -
1402 - .product-card-icon {
1403 - margin-bottom: 2px;
1404 - }
1405 -
1406 - h3 {
1407 - font-size: 22px;
1408 - }
1409 - }
1410 -
1411 - .product-card-actions {
1412 - gap: 12px;
1413 - }
1414 -}
1415 -
1416 1416  /* ========== Individual Product Pages ========== */
1417 1417  
1418 1418  .product-layout {
1419 1419   display: grid;
1420 - grid-template-columns: minmax(0, 1.12fr) minmax(280px, .88fr);
1421 - grid-gap: 32px;
1236 + grid-template-columns: 1.1fr .9fr;
1237 + grid-gap: 36px;
1422 1422   max-width: 1040px;
1423 1423   margin: 0 auto;
1424 1424   align-items: start;
... ... @@ -1426,8 +1426,8 @@
1426 1426  
1427 1427  .product-summary-card,
1428 1428  .product-info-card,
1429 -.product-feature,
1430 1430  .product-gallery-panel {
1246 + background: #fff;
1431 1431   border: 1px solid @line;
1432 1432   border-radius: @radius;
1433 1433   box-shadow: @shadow-sm;
... ... @@ -1434,18 +1434,16 @@
1434 1434  }
1435 1435  
1436 1436  .product-summary-card {
1437 - padding: 28px;
1253 + padding: 26px;
1438 1438  
1439 1439   h2 {
1440 1440   text-align: left;
1441 1441   margin-top: 0;
1442 - margin-bottom: 14px;
1443 - line-height: 1.25;
1444 1444   }
1445 1445  
1446 1446   p {
1447 1447   color: @muted;
1448 - line-height: 1.62;
1262 + line-height: 1.6;
1449 1449   }
1450 1450  
1451 1451   p:last-child {
... ... @@ -1454,19 +1454,13 @@
1454 1454  }
1455 1455  
1456 1456  .product-info-card {
1457 - padding: 24px;
1271 + padding: 22px;
1458 1458  
1459 1459   h3 {
1460 1460   margin-top: 0;
1461 1461   margin-bottom: 12px;
1462 - line-height: 1.3;
1463 1463   }
1464 1464  
1465 - p {
1466 - color: @muted;
1467 - line-height: 1.55;
1468 - }
1469 -
1470 1470   ul {
1471 1471   margin: 0;
1472 1472   padding-left: 20px;
... ... @@ -1475,30 +1475,25 @@
1475 1475  
1476 1476   li {
1477 1477   margin: 8px 0;
1478 - line-height: 1.3;
1286 + line-height: 1.45;
1479 1479   }
1480 1480  }
1481 1481  
1482 -.product-card-note {
1483 - margin: 0 0 14px;
1484 - color: @muted;
1485 - line-height: 1.55;
1486 -}
1487 -
1488 1488  .product-feature-grid {
1489 1489   display: grid;
1490 1490   grid-template-columns: repeat(3, minmax(0, 1fr));
1491 - grid-gap: 20px;
1293 + grid-gap: 18px;
1492 1492   max-width: 1040px;
1493 - margin: 24px auto 0;
1295 + margin: 22px auto 0;
1494 1494  }
1495 1495  
1496 1496  .product-feature {
1497 - padding: 24px;
1498 - min-width: 0;
1499 - min-height: 100%;
1299 + background: #fff;
1300 + border: 1px solid @line;
1301 + border-radius: @radius;
1302 + box-shadow: @shadow-sm;
1303 + padding: 22px;
1500 1500  
1501 - .card-heading,
1502 1502   .feature-heading {
1503 1503   display: flex;
1504 1504   align-items: center;
... ... @@ -1529,56 +1529,10 @@
1529 1529   p {
1530 1530   margin: 0;
1531 1531   color: @muted;
1532 - line-height: 1.52;
1335 + line-height: 1.5;
1533 1533   }
1534 1534  }
1535 1535  
1536 -.product-gallery-caption {
1537 - max-width: 820px;
1538 - margin: 12px auto 0;
1539 - color: @muted;
1540 - font-size: 14px;
1541 - line-height: 1.5;
1542 - text-align: center;
1543 -}
1544 -
1545 -/* Keep the default XWiki gallery style.
1546 - Only add spacing before it and center it. */
1547 -.gallery.xGallery {
1548 - margin: 25px auto;
1549 - width: 920px;
1550 - height: 518px;
1551 -}
1552 -
1553 -.product-section-muted {
1554 - background:
1555 - radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 65%);
1556 -}
1557 -
1558 -/* Compact process list when used inside a product card. */
1559 -.product-summary-card .process-list {
1560 - margin-top: 16px;
1561 -
1562 - li {
1563 - padding: 13px 14px 13px 50px;
1564 - margin-bottom: 10px;
1565 - box-shadow: none;
1566 - }
1567 -
1568 - li:before {
1569 - left: 14px;
1570 - top: 14px;
1571 - width: 24px;
1572 - height: 24px;
1573 - font-size: 12px;
1574 - }
1575 -
1576 - strong {
1577 - margin-bottom: 2px;
1578 - }
1579 -}
1580 -
1581 -/* Kept for older product pages that still use a screenshot placeholder/panel. */
1582 1582  .product-gallery-panel {
1583 1583   max-width: 1040px;
1584 1584   margin: 20px auto 0;
... ... @@ -1611,6 +1611,11 @@
1611 1611   justify-content: center;
1612 1612  }
1613 1613  
1371 +.product-section-muted {
1372 + background:
1373 + radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 65%);
1374 +}
1375 +
1614 1614  @media (max-width: 980px) {
1615 1615   .product-layout,
1616 1616   .product-feature-grid {
... ... @@ -1639,37 +1639,12 @@
1639 1639   .product-gallery-panel {
1640 1640   padding: 20px;
1641 1641   }
1642 -
1643 - .product-feature {
1644 - .card-heading,
1645 - .feature-heading {
1646 - gap: 12px;
1647 - }
1648 -
1649 - .feature-icon {
1650 - width: 42px;
1651 - height: 42px;
1652 - font-size: 16px;
1653 - }
1654 - }
1655 -
1656 - .gallery.xGallery {
1657 - margin-top: 22px !important;
1658 - }
1659 -
1660 - .product-gallery-caption {
1661 - margin-top: 10px;
1662 - padding: 0 14px;
1663 - }
1664 -
1665 - .product-summary-card .process-list li {
1666 - padding-left: 46px;
1667 - }
1668 1668  }
1669 1669  
1670 1670  /* ========== Resources Index ========== */
1671 1671  
1672 1672  .resources-index-page {
1409 + background: #fff;
1673 1673  
1674 1674   .services-grid {
1675 1675   grid-template-columns: repeat(2, minmax(0, 1fr));
... ... @@ -1705,321 +1705,3 @@
1705 1705   color: @muted;
1706 1706   }
1707 1707  }
1708 -
1709 -/* ========== Global Theme Background ========== */
1710 -
1711 -html,
1712 -body {
1713 - min-height: 100%;
1714 -}
1715 -
1716 -body {
1717 - color: @text;
1718 - background:
1719 - radial-gradient(circle at 12% 8%, rgba(0, 147, 125, 0.08) 0, transparent 26%),
1720 - radial-gradient(circle at 90% 28%, rgba(7, 24, 45, 0.05) 0, transparent 30%),
1721 - linear-gradient(180deg, #fff 0, @brand-bg 42%, #fff 100%) !important;
1722 - background-attachment: fixed;
1723 -}
1724 -
1725 -/* Let the body background show through the XWiki wrappers.
1726 -#mainContentArea,
1727 -.resource-page,
1728 -.resources-index-page {
1729 - background: transparent !important;
1730 - background-image: none !important;
1731 -}
1732 -*/
1733 -/* Remove local decorative backgrounds that compete with the global gradient.
1734 -.hero,
1735 -.hero.hero-centered,
1736 -.trust-strip,
1737 -.industry-trust-section,
1738 -.split-section,
1739 -.resource-strip,
1740 -.homepage-resource-strip,
1741 -.resource-header,
1742 -.product-section-muted,
1743 -.resources-index-page {
1744 - background: transparent !important;
1745 - background-image: none !important;
1746 -}
1747 - */
1748 -/* Keep large panels readable, but remove their inner gradients.
1749 -.industry-trust-section .industry-trust-panel,
1750 -.cta-panel,
1751 -.resource-inline-cta,
1752 -.resource-note,
1753 -.resource-cta {
1754 - background: #fff !important;
1755 - background-image: none !important;
1756 -} */
1757 -
1758 -/* ========== Main Page Hero / SaaS Layout ========== */
1759 -
1760 -#mainContentArea .hero.hero-saas {
1761 - min-height: auto;
1762 - padding: 60px 0 34px;
1763 - display: flex;
1764 - align-items: center;
1765 - overflow: hidden;
1766 - background: transparent;
1767 -}
1768 -
1769 -#mainContentArea .hero-layout {
1770 - max-width: 1120px;
1771 - margin: 0 auto;
1772 - display: grid;
1773 - grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
1774 - gap: 56px;
1775 - align-items: center;
1776 -}
1777 -
1778 -#mainContentArea .hero-copy {
1779 - min-width: 0;
1780 - text-align: left;
1781 -}
1782 -
1783 -#mainContentArea .hero.hero-saas h1 {
1784 - max-width: 640px;
1785 - margin: 0 0 26px;
1786 - font-size: 60px;
1787 - font-weight: 800;
1788 - line-height: 1;
1789 - letter-spacing: -3px;
1790 -}
1791 -
1792 -#mainContentArea .hero.hero-saas h1 span {
1793 - color: @brand;
1794 -}
1795 -
1796 -#mainContentArea .hero.hero-saas .lead {
1797 - max-width: 590px;
1798 - margin: 0 0 28px;
1799 - color: #334155;
1800 - text-align: left;
1801 - font-size: 18px;
1802 - line-height: 1.6;
1803 -}
1804 -
1805 -#mainContentArea .hero.hero-saas .benefits {
1806 - max-width: 620px;
1807 - margin: 0 0 30px;
1808 - padding: 0;
1809 - display: grid;
1810 - grid-template-columns: repeat(2, minmax(0, 1fr));
1811 - gap: 10px 24px;
1812 - list-style: none;
1813 - color: #475569;
1814 - font-size: 15px;
1815 - text-align: left;
1816 -}
1817 -
1818 -#mainContentArea .hero.hero-saas .benefits li {
1819 - display: grid;
1820 - grid-template-columns: 18px minmax(0, 1fr);
1821 - column-gap: 8px;
1822 - align-items: start;
1823 - margin: 0;
1824 - line-height: 1.45;
1825 -}
1826 -
1827 -#mainContentArea .hero.hero-saas .benefits li::before {
1828 - content: "✓";
1829 - display: block;
1830 - width: 18px;
1831 - color: @brand;
1832 - font-weight: 900;
1833 - line-height: 1.45;
1834 - text-align: left;
1835 - margin: 0;
1836 -}
1837 -
1838 -#mainContentArea .hero.hero-saas .hero-actions,
1839 -#mainContentArea .hero.hero-saas #hero-cta {
1840 - display: flex;
1841 - flex-wrap: wrap;
1842 - justify-content: flex-start;
1843 - gap: 12px;
1844 - margin-top: 0;
1845 -}
1846 -
1847 -#mainContentArea .hero-image-wrapper {
1848 - min-width: 0;
1849 - display: flex;
1850 - justify-content: center;
1851 - align-items: center;
1852 -}
1853 -
1854 -#mainContentArea .hero-image {
1855 - display: block;
1856 - width: 100%;
1857 - max-width: 620px;
1858 - height: auto;
1859 - border: 0;
1860 -}
1861 -
1862 -/* ========== Main Page Hero Responsive ========== */
1863 -
1864 -@media (max-width: 1100px) {
1865 - #mainContentArea .hero-layout {
1866 - max-width: 760px;
1867 - grid-template-columns: 1fr;
1868 - gap: 34px;
1869 - }
1870 -
1871 - #mainContentArea .hero-copy {
1872 - order: 1;
1873 - text-align: center;
1874 - }
1875 -
1876 - #mainContentArea .hero-image-wrapper {
1877 - order: 2;
1878 - }
1879 -
1880 - #mainContentArea .hero.hero-saas h1 {
1881 - margin-left: auto;
1882 - margin-right: auto;
1883 - text-align: center;
1884 - }
1885 -
1886 - #mainContentArea .hero.hero-saas .lead {
1887 - margin-left: auto;
1888 - margin-right: auto;
1889 - text-align: center;
1890 - }
1891 -
1892 - #mainContentArea .hero.hero-saas .benefits {
1893 - margin-left: auto;
1894 - margin-right: auto;
1895 - }
1896 -
1897 - #mainContentArea .hero.hero-saas .hero-actions,
1898 - #mainContentArea .hero.hero-saas #hero-cta {
1899 - justify-content: center;
1900 - }
1901 -
1902 - #mainContentArea .hero-image {
1903 - max-width: 620px;
1904 - }
1905 -}
1906 -
1907 -@media (max-width: 640px) {
1908 - #mainContentArea .hero.hero-saas {
1909 - padding: 42px 0 28px;
1910 - }
1911 -
1912 - #mainContentArea .hero-layout {
1913 - gap: 28px;
1914 - }
1915 -
1916 - #mainContentArea .hero.hero-saas h1 {
1917 - font-size: 42px;
1918 - letter-spacing: -1.5px;
1919 - }
1920 -
1921 - #mainContentArea .hero.hero-saas .lead {
1922 - font-size: 17px;
1923 - }
1924 -
1925 - #mainContentArea .hero.hero-saas .benefits {
1926 - grid-template-columns: 1fr;
1927 - }
1928 -
1929 - #mainContentArea .hero-image {
1930 - max-width: 100%;
1931 - }
1932 -}
1933 -
1934 -/* ========== Accessibility / Contrast Improvements ========== */
1935 -
1936 -/* Make the global background softer and less distracting. */
1937 -body {
1938 - background:
1939 - radial-gradient(circle at 12% 8%, rgba(0, 147, 125, 0.035) 0, transparent 26%),
1940 - radial-gradient(circle at 90% 28%, rgba(7, 24, 45, 0.025) 0, transparent 30%),
1941 - linear-gradient(180deg, #fff 0, @brand-bg 42%, #fff 100%) !important;
1942 - background-attachment: scroll;
1943 -}
1944 -
1945 -/* Keep the article area readable while preserving the page background around it. */
1946 -#mainContentArea .resource-layout {
1947 - padding: 28px;
1948 - border: 1px solid fade(@line, 85%);
1949 - border-radius: @radius;
1950 - background: rgba(255, 255, 255, .88);
1951 - box-shadow: @shadow-sm;
1952 -}
1953 -
1954 -/* Ensure all reusable cards have a real surface, not transparent over the gradient. */
1955 -#mainContentArea .widget,
1956 -#mainContentArea .pathway-card,
1957 -#mainContentArea .service-card,
1958 -#mainContentArea .resource-card,
1959 -#mainContentArea .services .service,
1960 -#mainContentArea .product-card,
1961 -#mainContentArea .product-feature,
1962 -#mainContentArea .product-summary-card,
1963 -#mainContentArea .product-info-card {
1964 - background: #fff;
1965 -}
1966 -
1967 -/* Make notes more readable and visually stronger. */
1968 -#mainContentArea .resource-note {
1969 - border: 1px solid fade(@brand, 18%);
1970 - border-left: 4px solid @brand;
1971 - background: #fff;
1972 - box-shadow: 0 10px 28px rgba(15, 23, 42, .045);
1973 -}
1974 -
1975 -/* Keep the sidebar clearly separated from the background. */
1976 -#mainContentArea .resource-sidebar {
1977 - background: #fff;
1978 -}
1979 -
1980 -/* Make CTA panels stand out more clearly. */
1981 -#mainContentArea .resource-cta,
1982 -#mainContentArea .resource-inline-cta {
1983 - background: #fff;
1984 -}
1985 -
1986 -/* Improve table readability on long resource pages. */
1987 -#mainContentArea .resource-content table {
1988 - background: #fff;
1989 -}
1990 -
1991 -#mainContentArea .resource-content table th {
1992 - color: @text;
1993 - background: #F8FAFC;
1994 -}
1995 -
1996 -#mainContentArea .resource-content table td {
1997 - color: @text-soft;
1998 -}
1999 -
2000 -/* Slightly improve paragraph/list contrast in long articles. */
2001 -#mainContentArea .resource-content p,
2002 -#mainContentArea .resource-content li {
2003 - color: @text-soft;
2004 -}
2005 -
2006 -#mainContentArea .resource-content .resource-note p,
2007 -#mainContentArea .resource-content .resource-checklist li,
2008 -#mainContentArea .resource-content .process-list li {
2009 - color: @muted;
2010 -}
2011 -
2012 -@media (max-width: 900px) {
2013 - #mainContentArea .resource-layout {
2014 - padding: 22px;
2015 - }
2016 -}
2017 -
2018 -@media (max-width: 640px) {
2019 - #mainContentArea .resource-layout {
2020 - padding: 18px;
2021 - border-radius: 14px;
2022 - }
2023 -}
2024 -
2025 -