Changes for page Public Web Site

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

From version 28.40
edited by Agnease
on 2026/07/03 14:19
Change comment: There is no comment for this version
To version 24.6
edited by Agnease
on 2026/06/24 14:40
Change comment: There is no comment for this version

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,130 +247,37 @@
247 247   margin-top: 22px;
248 248  }
249 249  
250 -/* ========== Contrast Band ========== */
246 +/* ========== Trust Strip ========== */
251 251  
252 -.contrast-band {
253 - position: relative;
254 - z-index: 0;
255 - overflow: visible; /* allow pseudo-element to escape */
256 - padding: 54px 0;
257 - border-top: 0;
258 - color: #fff;
248 +.trust-strip {
249 + padding: 18px 0;
250 + border-top: 1px solid @line;
251 + background: #fff;
259 259  
260 - /* Remove gradient from here */
261 - background: none;
262 -}
253 + ul {
254 + max-width: 960px;
255 + margin: 0 auto;
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;
264 + }
263 263  
264 -/* Full‑bleed gradient background */
265 -.contrast-band::before {
266 - content: "";
267 - position: absolute;
268 - top: 0;
269 - left: 50%;
270 - width: 100vw; /* full viewport width */
271 - height: 100%;
272 - transform: translateX(-50%);
273 - z-index: -1;
274 -
275 - background:
276 - radial-gradient(circle at 18% 18%, fade(@brand, 22%) 0%, transparent 28%),
277 - radial-gradient(circle at 86% 12%, fade(@brand, 16%) 0%, transparent 30%),
278 - linear-gradient(135deg, @text 0%, @text-soft 100%);
279 -
280 - background: red !important;
281 -}
282 -
283 -/* Grid overlay stays exactly as you had it */
284 -.contrast-band::after {
285 - content: "";
286 - position: absolute;
287 - inset: 0;
288 - background:
289 - linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px),
290 - linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px);
291 - background-size: 52px 52px;
292 - opacity: .38;
293 - pointer-events: none;
294 - z-index: 0;
295 -}
296 -
297 -.contrast-band .container {
298 - position: relative;
299 - z-index: 1;
300 -}
301 -
302 -/* Everything below stays unchanged */
303 -.contrast-panel {
304 - max-width: 1040px;
305 - margin: 0 auto;
306 - text-align: center;
307 -}
308 -
309 -.contrast-band h2 {
310 - max-width: 860px;
311 - margin: 0 auto 12px;
312 - color: #fff;
313 -}
314 -
315 -.contrast-band .section-intro {
316 - max-width: 840px;
317 - margin: 0 auto 26px;
318 - color: #D9E3EE;
319 -}
320 -
321 -.contrast-tags {
322 - max-width: 940px;
323 - margin: 0 auto;
324 - display: flex;
325 - flex-wrap: wrap;
326 - justify-content: center;
327 - gap: 10px;
328 -}
329 -
330 -.contrast-tags span {
331 - display: inline-flex;
332 - align-items: center;
333 - padding: 8px 13px;
334 - border: 1px solid fade(#fff, 18%);
335 - border-radius: 999px;
336 - background: fade(#fff, 8%);
337 - color: #F8FAFC;
338 - font-size: 13px;
339 - font-weight: 700;
340 - line-height: 1.2;
341 -}
342 -
343 -.contrast-tags span::before {
344 - content: "";
345 - width: 7px;
346 - height: 7px;
347 - margin-right: 8px;
348 - border-radius: 50%;
349 - background: @brand;
350 - box-shadow: 0 0 0 4px fade(@brand, 18%);
351 -}
352 -
353 -.contrast-support {
354 - max-width: 860px;
355 - margin: 30px auto 0;
356 - color: #D9E3EE;
357 - text-align: center;
358 - font-size: 15px;
359 - line-height: 1.7;
360 -}
361 -
362 -@media (max-width: 640px) {
363 - .contrast-band {
364 - padding: 40px 0;
266 + li {
267 + display: flex;
268 + align-items: center;
269 + gap: 7px;
365 365   }
366 366  
367 - .contrast-tags span {
368 - font-size: 12px;
369 - padding: 8px 11px;
272 + i {
273 + color: @brand;
370 370   }
371 371  }
372 372  
373 -
374 374  /* ========== Reusable Grids ========== */
375 375  
376 376  .card-grid,
... ... @@ -418,6 +418,7 @@
418 418  .pathway-card,
419 419  .service-card,
420 420  .resource-card {
324 + background: #fff;
421 421   border: 1px solid @line;
422 422   border-radius: @radius;
423 423   box-shadow: @shadow-sm;
... ... @@ -527,6 +527,80 @@
527 527   }
528 528  }
529 529  
434 +.industry-trust-section {
435 + background:
436 + radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 70%);
437 +
438 + .industry-trust-panel {
439 + max-width: 1040px;
440 + margin: 0 auto;
441 + padding: 30px 28px;
442 + border: 1px solid fade(@brand, 16%);
443 + border-radius: @radius;
444 + background:
445 + radial-gradient(34rem 12rem at 50% 0%, fade(@brand-soft, 75%) 0%, #fff 72%);
446 + box-shadow: @shadow-sm;
447 + text-align: center;
448 + }
449 +
450 + h2 {
451 + margin-bottom: 12px;
452 + }
453 +
454 + .section-intro {
455 + margin-bottom: 20px;
456 + max-width: 820px;
457 + }
458 +
459 + .industry-tags {
460 + max-width: 880px;
461 + margin: 0 auto;
462 + display: flex;
463 + flex-wrap: wrap;
464 + justify-content: center;
465 + gap: 10px;
466 + }
467 +
468 + .industry-tags span {
469 + display: inline-flex;
470 + align-items: center;
471 + padding: 7px 12px;
472 + border: 1px solid fade(@brand, 20%);
473 + border-radius: 999px;
474 + background: #fff;
475 + color: @text;
476 + font-size: 13px;
477 + font-weight: 600;
478 + line-height: 1.2;
479 + box-shadow: 0 3px 10px rgba(0, 0, 0, .04);
480 + }
481 +
482 + .industry-support {
483 + max-width: 820px;
484 + margin: 22px auto 0;
485 + color: @muted;
486 + font-size: 16px;
487 + line-height: 1.6;
488 + }
489 +}
490 +
491 +@media (max-width: 640px) {
492 + .industry-trust-section {
493 + .industry-trust-panel {
494 + padding: 24px 18px;
495 + }
496 +
497 + .industry-tags {
498 + gap: 8px;
499 + }
500 +
501 + .industry-tags span {
502 + font-size: 12px;
503 + padding: 6px 10px;
504 + }
505 + }
506 +}
507 +
530 530  /* ========== Services ========== */
531 531  
532 532  .services {
... ... @@ -539,6 +539,7 @@
539 539   align-items: flex-start;
540 540   gap: 16px;
541 541   padding: 22px;
520 + background: #fff;
542 542   border: 1px solid @line;
543 543   border-radius: @radius;
544 544   box-shadow: @shadow-sm;
... ... @@ -626,6 +626,7 @@
626 626   position: relative;
627 627   padding: 16px 16px 16px 58px;
628 628   margin-bottom: 12px;
608 + background: #fff;
629 629   border: 1px solid @line;
630 630   border-radius: @radius;
631 631   box-shadow: @shadow-sm;
... ... @@ -757,8 +757,8 @@
757 757  
758 758  /* ========== CTA ========== */
759 759  
760 -#mainContentArea .cta-section {
761 - padding: 44px 0 56px;
740 +.cta-section {
741 + padding: @section-padding;
762 762  
763 763   .contact-inline {
764 764   margin: 0;
... ... @@ -770,70 +770,27 @@
770 770   }
771 771  }
772 772  
773 -#mainContentArea .cta-panel {
774 - position: relative;
775 - overflow: hidden;
776 - max-width: 1040px;
753 +.cta-panel {
754 + max-width: 860px;
777 777   margin: 0 auto;
778 - padding: 48px 40px;
779 - border: 0;
780 - border-radius: 26px;
756 + padding: 32px;
757 + border-radius: @radius;
758 + border: 1px solid fade(@brand, 20%);
781 781   background:
782 - radial-gradient(circle at 88% 10%, fade(@brand, 24%) 0%, transparent 30%),
783 - linear-gradient(135deg, @text 0%, @text-soft 100%);
784 - color: #fff;
785 - box-shadow: @shadow;
760 + radial-gradient(34rem 12rem at 50% 0%, @brand-soft 0%, #fff 70%);
761 + box-shadow: @shadow-sm;
786 786   text-align: center;
787 -}
788 788  
789 -#mainContentArea .cta-panel::before {
790 - content: "";
791 - position: absolute;
792 - inset: 0;
793 - background:
794 - linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px),
795 - linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px);
796 - background-size: 48px 48px;
797 - opacity: .4;
798 - pointer-events: none;
799 -}
764 + h2 {
765 + margin-top: 0;
766 + }
800 800  
801 -#mainContentArea .cta-panel h2,
802 -#mainContentArea .cta-panel p,
803 -#mainContentArea .cta-panel .btn {
804 - position: relative;
805 - z-index: 1;
768 + p {
769 + color: @muted;
770 + line-height: 1.55;
771 + }
806 806  }
807 807  
808 -#mainContentArea .cta-panel h2 {
809 - max-width: 760px;
810 - margin: 0 auto 16px;
811 - color: #fff;
812 -}
813 -
814 -#mainContentArea .cta-panel p {
815 - max-width: 760px;
816 - margin: 0 auto 28px;
817 - color: #DBE4EF;
818 - font-size: 16px;
819 - line-height: 1.6;
820 -}
821 -
822 -#mainContentArea .cta-panel .btn-primary {
823 - border-color: #fff;
824 - background: #fff;
825 - color: @text;
826 - box-shadow: 0 18px 42px rgba(0, 0, 0, .18);
827 -}
828 -
829 -#mainContentArea .cta-panel .btn-primary:hover,
830 -#mainContentArea .cta-panel .btn-primary:focus {
831 - border-color: #fff;
832 - background: #fff;
833 - color: @brand-strong;
834 - text-decoration: none;
835 -}
836 -
837 837  .resource-inline-cta {
838 838   display: flex;
839 839   align-items: center;
... ... @@ -965,14 +965,9 @@
965 965   gap: 14px;
966 966   }
967 967  
968 - #mainContentArea .cta-panel {
969 - padding: 30px 22px;
970 - border-radius: 20px;
905 + .cta-panel {
906 + padding: 24px 20px;
971 971   }
972 -
973 - #mainContentArea .cta-panel .btn-primary {
974 - width: 100%;
975 - }
976 976  }
977 977  
978 978  /* ========== Resource / Article Pages ========== */
... ... @@ -984,6 +984,9 @@
984 984  .resource-header {
985 985   padding: @section-padding;
986 986   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%);
987 987  
988 988   h1 {
989 989   margin: 0 auto 14px;
... ... @@ -1131,6 +1131,7 @@
1131 1131   border: 1px solid @line;
1132 1132   border-radius: @radius;
1133 1133   padding: 18px;
1069 + background: #fff;
1134 1134   box-shadow: @shadow-sm;
1135 1135  
1136 1136   h4 {
... ... @@ -1220,39 +1220,30 @@
1220 1220  }
1221 1221  
1222 1222  .product-card-grid {
1223 - max-width: 980px;
1224 - margin: 26px auto 0;
1159 + max-width: 840px;
1160 + margin: 22px auto 0;
1225 1225   display: grid;
1226 1226   grid-template-columns: 1fr;
1227 - grid-gap: 22px;
1163 + grid-gap: 18px;
1228 1228  }
1229 1229  
1230 1230  .product-card {
1231 - position: relative;
1167 + background: #fff;
1232 1232   border: 1px solid @line;
1233 1233   border-radius: @radius;
1234 1234   box-shadow: @shadow-sm;
1235 - padding: 32px;
1171 + padding: 28px;
1236 1236   display: grid;
1237 - grid-template-columns: 70px 1fr;
1238 - grid-gap: 24px;
1173 + grid-template-columns: 68px 1fr;
1174 + grid-gap: 22px;
1239 1239   align-items: start;
1240 - overflow: hidden;
1241 1241  
1242 - &:before {
1243 - content: "";
1244 - position: absolute;
1245 - inset: 0 auto 0 0;
1246 - width: 5px;
1247 - background: linear-gradient(180deg, @brand 0%, @brand-strong 100%);
1248 - }
1249 -
1250 1250   .product-card-icon {
1251 1251   width: 58px;
1252 1252   height: 58px;
1253 1253   border-radius: 50%;
1254 1254   background: fade(@brand, 10%);
1255 - border: 1px solid fade(@brand, 22%);
1182 + border: 1px solid fade(@brand, 20%);
1256 1256   color: @brand;
1257 1257   display: flex;
1258 1258   align-items: center;
... ... @@ -1261,15 +1261,11 @@
1261 1261   flex-shrink: 0;
1262 1262   }
1263 1263  
1264 - .product-card-body {
1265 - min-width: 0;
1266 - }
1267 -
1268 1268   h3 {
1269 1269   margin: 0 0 10px;
1270 1270   color: @text;
1271 - font-size: 25px;
1272 - line-height: 1.22;
1194 + font-size: 23px;
1195 + line-height: 1.25;
1273 1273   font-weight: 800;
1274 1274   }
1275 1275  
... ... @@ -1278,36 +1278,25 @@
1278 1278   line-height: 1.6;
1279 1279   }
1280 1280  
1281 - .product-card-description {
1282 - max-width: 760px;
1283 - margin: 0 0 14px;
1284 - font-size: 16px;
1204 + .card-link {
1205 + margin: 0;
1206 +
1207 + a {
1208 + font-weight: 700;
1209 + }
1285 1285   }
1286 1286  }
1287 1287  
1288 1288  .product-card-kicker {
1289 - display: inline-flex;
1290 - align-items: center;
1291 - gap: 7px;
1292 - width: fit-content;
1293 1293   margin-bottom: 10px;
1294 1294   padding: 5px 10px;
1295 - border: 1px solid fade(@brand, 24%);
1296 - border-radius: 999px;
1297 - background: fade(@brand, 8%);
1298 - color: @brand-strong;
1299 1299   font-size: 12px;
1300 - font-weight: 800;
1301 1301   text-transform: uppercase;
1302 1302   letter-spacing: .04em;
1303 -
1304 - i {
1305 - color: @brand;
1306 - }
1307 1307  }
1308 1308  
1309 1309  .product-highlights {
1310 - margin: 14px 0 22px;
1222 + margin: 14px 0 20px;
1311 1311   padding-left: 18px;
1312 1312   color: @muted;
1313 1313  
... ... @@ -1317,52 +1317,6 @@
1317 1317   }
1318 1318  }
1319 1319  
1320 -.product-card-actions {
1321 - display: flex;
1322 - align-items: center;
1323 - gap: 16px;
1324 - flex-wrap: wrap;
1325 -
1326 - .btn {
1327 - font-weight: 700;
1328 - }
1329 -}
1330 -
1331 -.product-card-contact {
1332 - color: @brand;
1333 - font-weight: 700;
1334 - text-decoration: underline;
1335 -
1336 - &:hover,
1337 - &:focus {
1338 - color: @brand-strong;
1339 - }
1340 -}
1341 -
1342 -@media (max-width: 640px) {
1343 - .product-card {
1344 - grid-template-columns: 1fr;
1345 - padding: 26px 22px;
1346 - text-align: left;
1347 -
1348 - &:before {
1349 - width: 4px;
1350 - }
1351 -
1352 - .product-card-icon {
1353 - margin-bottom: 2px;
1354 - }
1355 -
1356 - h3 {
1357 - font-size: 22px;
1358 - }
1359 - }
1360 -
1361 - .product-card-actions {
1362 - gap: 12px;
1363 - }
1364 -}
1365 -
1366 1366  /* ========== Individual Product Pages ========== */
1367 1367  
1368 1368  .product-layout {
... ... @@ -1378,6 +1378,7 @@
1378 1378  .product-info-card,
1379 1379  .product-feature,
1380 1380  .product-gallery-panel {
1247 + background: #fff;
1381 1381   border: 1px solid @line;
1382 1382   border-radius: @radius;
1383 1383   box-shadow: @shadow-sm;
... ... @@ -1425,7 +1425,7 @@
1425 1425  
1426 1426   li {
1427 1427   margin: 8px 0;
1428 - line-height: 1.3;
1295 + line-height: 1.45;
1429 1429   }
1430 1430  }
1431 1431  
... ... @@ -1495,9 +1495,9 @@
1495 1495  /* Keep the default XWiki gallery style.
1496 1496   Only add spacing before it and center it. */
1497 1497  .gallery.xGallery {
1498 - margin: 25px auto;
1499 - width: 920px;
1500 - height: 518px;
1365 + margin-top: 26px;
1366 + margin-left: auto !important;
1367 + margin-right: auto !important;
1501 1501  }
1502 1502  
1503 1503  .product-section-muted {
... ... @@ -1620,6 +1620,7 @@
1620 1620  /* ========== Resources Index ========== */
1621 1621  
1622 1622  .resources-index-page {
1490 + background: #fff;
1623 1623  
1624 1624   .services-grid {
1625 1625   grid-template-columns: repeat(2, minmax(0, 1fr));
... ... @@ -1655,284 +1655,3 @@
1655 1655   color: @muted;
1656 1656   }
1657 1657  }
1658 -
1659 -/* ========== Global Theme Background ========== */
1660 -
1661 -html,
1662 -body {
1663 - min-height: 100%;
1664 -}
1665 -
1666 -body {
1667 - color: @text;
1668 - background:
1669 - radial-gradient(circle at 12% 8%, rgba(0, 147, 125, 0.08) 0, transparent 26%),
1670 - radial-gradient(circle at 90% 28%, rgba(7, 24, 45, 0.05) 0, transparent 30%),
1671 - linear-gradient(180deg, #fff 0, @brand-bg 42%, #fff 100%) !important;
1672 - background-attachment: fixed;
1673 -}
1674 -
1675 -#mainContentArea {
1676 - padding: 0;
1677 - overflow-x: hidden;
1678 -}
1679 -
1680 -/* ========== Main Page Hero / SaaS Layout ========== */
1681 -
1682 -#mainContentArea .hero.hero-saas {
1683 - min-height: auto;
1684 - padding: 60px 0 34px;
1685 - display: flex;
1686 - align-items: center;
1687 - overflow: hidden;
1688 - background: transparent;
1689 -}
1690 -
1691 -#mainContentArea .hero-layout {
1692 - max-width: 1120px;
1693 - margin: 0 auto;
1694 - display: grid;
1695 - grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
1696 - gap: 56px;
1697 - align-items: center;
1698 -}
1699 -
1700 -#mainContentArea .hero-copy {
1701 - min-width: 0;
1702 - text-align: left;
1703 -}
1704 -
1705 -#mainContentArea .hero.hero-saas h1 {
1706 - max-width: 640px;
1707 - margin: 0 0 26px;
1708 - font-size: 60px;
1709 - font-weight: 800;
1710 - line-height: 1;
1711 - letter-spacing: -3px;
1712 -}
1713 -
1714 -#mainContentArea .hero.hero-saas h1 span {
1715 - color: @brand;
1716 -}
1717 -
1718 -#mainContentArea .hero.hero-saas .lead {
1719 - max-width: 590px;
1720 - margin: 0 0 28px;
1721 - color: #334155;
1722 - text-align: left;
1723 - font-size: 18px;
1724 - line-height: 1.6;
1725 -}
1726 -
1727 -#mainContentArea .hero.hero-saas .benefits {
1728 - max-width: 620px;
1729 - margin: 0 0 30px;
1730 - padding: 0;
1731 - display: grid;
1732 - grid-template-columns: repeat(2, minmax(0, 1fr));
1733 - gap: 10px 24px;
1734 - list-style: none;
1735 - color: #475569;
1736 - font-size: 15px;
1737 - text-align: left;
1738 -}
1739 -
1740 -#mainContentArea .hero.hero-saas .benefits li {
1741 - display: grid;
1742 - grid-template-columns: 18px minmax(0, 1fr);
1743 - column-gap: 8px;
1744 - align-items: start;
1745 - margin: 0;
1746 - line-height: 1.45;
1747 -}
1748 -
1749 -#mainContentArea .hero.hero-saas .benefits li::before {
1750 - content: "✓";
1751 - display: block;
1752 - width: 18px;
1753 - color: @brand;
1754 - font-weight: 900;
1755 - line-height: 1.45;
1756 - text-align: left;
1757 - margin: 0;
1758 -}
1759 -
1760 -#mainContentArea .hero.hero-saas .hero-actions,
1761 -#mainContentArea .hero.hero-saas #hero-cta {
1762 - display: flex;
1763 - flex-wrap: wrap;
1764 - justify-content: flex-start;
1765 - gap: 12px;
1766 - margin-top: 0;
1767 -}
1768 -
1769 -#mainContentArea .hero-image-wrapper {
1770 - min-width: 0;
1771 - display: flex;
1772 - justify-content: center;
1773 - align-items: center;
1774 -}
1775 -
1776 -#mainContentArea .hero-image {
1777 - display: block;
1778 - width: 100%;
1779 - max-width: 620px;
1780 - height: auto;
1781 - border: 0;
1782 -}
1783 -
1784 -/* ========== Main Page Hero Responsive ========== */
1785 -
1786 -@media (max-width: 1100px) {
1787 - #mainContentArea .hero-layout {
1788 - max-width: 760px;
1789 - grid-template-columns: 1fr;
1790 - gap: 34px;
1791 - }
1792 -
1793 - #mainContentArea .hero-copy {
1794 - order: 1;
1795 - text-align: center;
1796 - }
1797 -
1798 - #mainContentArea .hero-image-wrapper {
1799 - order: 2;
1800 - }
1801 -
1802 - #mainContentArea .hero.hero-saas h1 {
1803 - margin-left: auto;
1804 - margin-right: auto;
1805 - text-align: center;
1806 - }
1807 -
1808 - #mainContentArea .hero.hero-saas .lead {
1809 - margin-left: auto;
1810 - margin-right: auto;
1811 - text-align: center;
1812 - }
1813 -
1814 - #mainContentArea .hero.hero-saas .benefits {
1815 - margin-left: auto;
1816 - margin-right: auto;
1817 - }
1818 -
1819 - #mainContentArea .hero.hero-saas .hero-actions,
1820 - #mainContentArea .hero.hero-saas #hero-cta {
1821 - justify-content: center;
1822 - }
1823 -
1824 - #mainContentArea .hero-image {
1825 - max-width: 620px;
1826 - }
1827 -}
1828 -
1829 -@media (max-width: 640px) {
1830 - #mainContentArea .hero.hero-saas {
1831 - padding: 42px 0 28px;
1832 - }
1833 -
1834 - #mainContentArea .hero-layout {
1835 - gap: 28px;
1836 - }
1837 -
1838 - #mainContentArea .hero.hero-saas h1 {
1839 - font-size: 42px;
1840 - letter-spacing: -1.5px;
1841 - }
1842 -
1843 - #mainContentArea .hero.hero-saas .lead {
1844 - font-size: 17px;
1845 - }
1846 -
1847 - #mainContentArea .hero.hero-saas .benefits {
1848 - grid-template-columns: 1fr;
1849 - }
1850 -
1851 - #mainContentArea .hero-image {
1852 - max-width: 100%;
1853 - }
1854 -}
1855 -
1856 -/* ========== Accessibility / Contrast Improvements ========== */
1857 -
1858 -/* Keep the article area readable while preserving the page background around it. */
1859 -/*#mainContentArea .resource-layout {
1860 - padding: 28px;
1861 - border: 1px solid fade(@line, 85%);
1862 - border-radius: @radius;
1863 - background: rgba(255, 255, 255, .88);
1864 - box-shadow: @shadow-sm;
1865 -}*/
1866 -
1867 -/* Ensure all reusable cards have a real surface, not transparent over the gradient. */
1868 -#mainContentArea .widget,
1869 -#mainContentArea .pathway-card,
1870 -#mainContentArea .service-card,
1871 -#mainContentArea .resource-card,
1872 -#mainContentArea .services .service,
1873 -#mainContentArea .product-card,
1874 -#mainContentArea .product-feature,
1875 -#mainContentArea .product-summary-card,
1876 -#mainContentArea .product-info-card {
1877 - background: #fff;
1878 -}
1879 -
1880 -/* Make notes more readable and visually stronger. */
1881 -#mainContentArea .resource-note {
1882 - border: 1px solid fade(@brand, 18%);
1883 - border-left: 4px solid @brand;
1884 - background: #fff;
1885 - box-shadow: 0 10px 28px rgba(15, 23, 42, .045);
1886 -}
1887 -
1888 -/* Keep the sidebar clearly separated from the background. */
1889 -#mainContentArea .resource-sidebar {
1890 - background: #fff;
1891 -}
1892 -
1893 -/* Make CTA panels stand out more clearly. */
1894 -#mainContentArea .resource-cta,
1895 -#mainContentArea .resource-inline-cta {
1896 - background: #fff;
1897 -}
1898 -
1899 -/* Improve table readability on long resource pages. */
1900 -#mainContentArea .resource-content table {
1901 - background: #fff;
1902 -}
1903 -
1904 -#mainContentArea .resource-content table th {
1905 - color: @text;
1906 - background: #F8FAFC;
1907 -}
1908 -
1909 -#mainContentArea .resource-content table td {
1910 - color: @text-soft;
1911 -}
1912 -
1913 -/* Slightly improve paragraph/list contrast in long articles. */
1914 -#mainContentArea .resource-content p,
1915 -#mainContentArea .resource-content li {
1916 - color: @text-soft;
1917 -}
1918 -
1919 -#mainContentArea .resource-content .resource-note p,
1920 -#mainContentArea .resource-content .resource-checklist li,
1921 -#mainContentArea .resource-content .process-list li {
1922 - color: @muted;
1923 -}
1924 -
1925 -@media (max-width: 900px) {
1926 - #mainContentArea .resource-layout {
1927 - padding: 22px;
1928 - }
1929 -}
1930 -
1931 -@media (max-width: 640px) {
1932 - #mainContentArea .resource-layout {
1933 - padding: 18px;
1934 - border-radius: 14px;
1935 - }
1936 -}
1937 -
1938 -