Changes for page Public Web Site

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

From version 28.28
edited by Agnease
on 2026/07/03 13:25
Change comment: There is no comment for this version
To version 24.7
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,112 +247,34 @@
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 - border-top: 0;
257 - background:
258 - radial-gradient(circle at 18% 18%, fade(@brand, 22%) 0%, transparent 28%),
259 - radial-gradient(circle at 86% 12%, fade(@brand, 16%) 0%, transparent 30%),
260 - linear-gradient(135deg, @text 0%, @text-soft 100%);
261 - color: #fff;
248 +.trust-strip {
249 + padding: 18px 0;
250 + border-top: 1px solid @line;
251 + background: #fff;
262 262  
263 - /*
264 - * Full-bleed background without changing layout width.
265 - * This extends the dark surface beyond a fixed-width parent
266 - * without using 100vw or negative margins.
267 - */
268 - box-shadow: 0 0 0 100vmax @text;
269 - clip-path: inset(0 -100vmax);
270 -}
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 + }
271 271  
272 -.contrast-band::before {
273 - content: "";
274 - position: absolute;
275 - inset: 0;
276 - background:
277 - linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px),
278 - linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px);
279 - background-size: 52px 52px;
280 - opacity: .38;
281 - pointer-events: none;
282 -}
283 -
284 -.contrast-band .container {
285 - position: relative;
286 - z-index: 1;
287 -}
288 -
289 -.contrast-panel {
290 - max-width: 1040px;
291 - margin: 0 auto;
292 - text-align: center;
293 -}
294 -
295 -.contrast-band h2 {
296 - max-width: 860px;
297 - margin: 0 auto 12px;
298 - color: #fff;
299 -}
300 -
301 -.contrast-band .section-intro {
302 - max-width: 840px;
303 - margin: 0 auto 26px;
304 - color: #D9E3EE;
305 -}
306 -
307 -.contrast-tags {
308 - max-width: 940px;
309 - margin: 0 auto;
310 - display: flex;
311 - flex-wrap: wrap;
312 - justify-content: center;
313 - gap: 10px;
314 -}
315 -
316 -.contrast-tags span {
317 - display: inline-flex;
318 - align-items: center;
319 - padding: 8px 13px;
320 - border: 1px solid fade(#fff, 18%);
321 - border-radius: 999px;
322 - background: fade(#fff, 8%);
323 - color: #F8FAFC;
324 - font-size: 13px;
325 - font-weight: 700;
326 - line-height: 1.2;
327 -}
328 -
329 -.contrast-tags span::before {
330 - content: "";
331 - width: 7px;
332 - height: 7px;
333 - margin-right: 8px;
334 - border-radius: 50%;
335 - background: @brand;
336 - box-shadow: 0 0 0 4px fade(@brand, 18%);
337 -}
338 -
339 -.contrast-support {
340 - max-width: 860px;
341 - margin: 30px auto 0;
342 - color: #D9E3EE;
343 - text-align: center;
344 - font-size: 15px;
345 - line-height: 1.7;
346 -}
347 -
348 -@media (max-width: 640px) {
349 - .contrast-band {
350 - padding: 40px 0;
266 + li {
267 + display: flex;
268 + align-items: center;
269 + gap: 7px;
351 351   }
352 352  
353 - .contrast-tags span {
354 - font-size: 12px;
355 - padding: 8px 11px;
272 + i {
273 + color: @brand;
356 356   }
357 357  }
358 358  
... ... @@ -403,6 +403,7 @@
403 403  .pathway-card,
404 404  .service-card,
405 405  .resource-card {
324 + background: #fff;
406 406   border: 1px solid @line;
407 407   border-radius: @radius;
408 408   box-shadow: @shadow-sm;
... ... @@ -512,6 +512,80 @@
512 512   }
513 513  }
514 514  
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 +
515 515  /* ========== Services ========== */
516 516  
517 517  .services {
... ... @@ -524,6 +524,7 @@
524 524   align-items: flex-start;
525 525   gap: 16px;
526 526   padding: 22px;
520 + background: #fff;
527 527   border: 1px solid @line;
528 528   border-radius: @radius;
529 529   box-shadow: @shadow-sm;
... ... @@ -611,6 +611,7 @@
611 611   position: relative;
612 612   padding: 16px 16px 16px 58px;
613 613   margin-bottom: 12px;
608 + background: #fff;
614 614   border: 1px solid @line;
615 615   border-radius: @radius;
616 616   box-shadow: @shadow-sm;
... ... @@ -742,8 +742,8 @@
742 742  
743 743  /* ========== CTA ========== */
744 744  
745 -#mainContentArea .cta-section {
746 - padding: 44px 0 56px;
740 +.cta-section {
741 + padding: @section-padding;
747 747  
748 748   .contact-inline {
749 749   margin: 0;
... ... @@ -755,70 +755,27 @@
755 755   }
756 756  }
757 757  
758 -#mainContentArea .cta-panel {
759 - position: relative;
760 - overflow: hidden;
761 - max-width: 1040px;
753 +.cta-panel {
754 + max-width: 860px;
762 762   margin: 0 auto;
763 - padding: 48px 40px;
764 - border: 0;
765 - border-radius: 26px;
756 + padding: 32px;
757 + border-radius: @radius;
758 + border: 1px solid fade(@brand, 20%);
766 766   background:
767 - radial-gradient(circle at 88% 10%, fade(@brand, 24%) 0%, transparent 30%),
768 - linear-gradient(135deg, @text 0%, @text-soft 100%);
769 - color: #fff;
770 - box-shadow: @shadow;
760 + radial-gradient(34rem 12rem at 50% 0%, @brand-soft 0%, #fff 70%);
761 + box-shadow: @shadow-sm;
771 771   text-align: center;
772 -}
773 773  
774 -#mainContentArea .cta-panel::before {
775 - content: "";
776 - position: absolute;
777 - inset: 0;
778 - background:
779 - linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px),
780 - linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px);
781 - background-size: 48px 48px;
782 - opacity: .4;
783 - pointer-events: none;
784 -}
764 + h2 {
765 + margin-top: 0;
766 + }
785 785  
786 -#mainContentArea .cta-panel h2,
787 -#mainContentArea .cta-panel p,
788 -#mainContentArea .cta-panel .btn {
789 - position: relative;
790 - z-index: 1;
768 + p {
769 + color: @muted;
770 + line-height: 1.55;
771 + }
791 791  }
792 792  
793 -#mainContentArea .cta-panel h2 {
794 - max-width: 760px;
795 - margin: 0 auto 16px;
796 - color: #fff;
797 -}
798 -
799 -#mainContentArea .cta-panel p {
800 - max-width: 760px;
801 - margin: 0 auto 28px;
802 - color: #DBE4EF;
803 - font-size: 16px;
804 - line-height: 1.6;
805 -}
806 -
807 -#mainContentArea .cta-panel .btn-primary {
808 - border-color: #fff;
809 - background: #fff;
810 - color: @text;
811 - box-shadow: 0 18px 42px rgba(0, 0, 0, .18);
812 -}
813 -
814 -#mainContentArea .cta-panel .btn-primary:hover,
815 -#mainContentArea .cta-panel .btn-primary:focus {
816 - border-color: #fff;
817 - background: #fff;
818 - color: @brand-strong;
819 - text-decoration: none;
820 -}
821 -
822 822  .resource-inline-cta {
823 823   display: flex;
824 824   align-items: center;
... ... @@ -950,14 +950,9 @@
950 950   gap: 14px;
951 951   }
952 952  
953 - #mainContentArea .cta-panel {
954 - padding: 30px 22px;
955 - border-radius: 20px;
905 + .cta-panel {
906 + padding: 24px 20px;
956 956   }
957 -
958 - #mainContentArea .cta-panel .btn-primary {
959 - width: 100%;
960 - }
961 961  }
962 962  
963 963  /* ========== Resource / Article Pages ========== */
... ... @@ -969,6 +969,9 @@
969 969  .resource-header {
970 970   padding: @section-padding;
971 971   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%);
972 972  
973 973   h1 {
974 974   margin: 0 auto 14px;
... ... @@ -1116,6 +1116,7 @@
1116 1116   border: 1px solid @line;
1117 1117   border-radius: @radius;
1118 1118   padding: 18px;
1069 + background: #fff;
1119 1119   box-shadow: @shadow-sm;
1120 1120  
1121 1121   h4 {
... ... @@ -1205,39 +1205,30 @@
1205 1205  }
1206 1206  
1207 1207  .product-card-grid {
1208 - max-width: 980px;
1209 - margin: 26px auto 0;
1159 + max-width: 840px;
1160 + margin: 22px auto 0;
1210 1210   display: grid;
1211 1211   grid-template-columns: 1fr;
1212 - grid-gap: 22px;
1163 + grid-gap: 18px;
1213 1213  }
1214 1214  
1215 1215  .product-card {
1216 - position: relative;
1167 + background: #fff;
1217 1217   border: 1px solid @line;
1218 1218   border-radius: @radius;
1219 1219   box-shadow: @shadow-sm;
1220 - padding: 32px;
1171 + padding: 28px;
1221 1221   display: grid;
1222 - grid-template-columns: 70px 1fr;
1223 - grid-gap: 24px;
1173 + grid-template-columns: 68px 1fr;
1174 + grid-gap: 22px;
1224 1224   align-items: start;
1225 - overflow: hidden;
1226 1226  
1227 - &:before {
1228 - content: "";
1229 - position: absolute;
1230 - inset: 0 auto 0 0;
1231 - width: 5px;
1232 - background: linear-gradient(180deg, @brand 0%, @brand-strong 100%);
1233 - }
1234 -
1235 1235   .product-card-icon {
1236 1236   width: 58px;
1237 1237   height: 58px;
1238 1238   border-radius: 50%;
1239 1239   background: fade(@brand, 10%);
1240 - border: 1px solid fade(@brand, 22%);
1182 + border: 1px solid fade(@brand, 20%);
1241 1241   color: @brand;
1242 1242   display: flex;
1243 1243   align-items: center;
... ... @@ -1246,15 +1246,11 @@
1246 1246   flex-shrink: 0;
1247 1247   }
1248 1248  
1249 - .product-card-body {
1250 - min-width: 0;
1251 - }
1252 -
1253 1253   h3 {
1254 1254   margin: 0 0 10px;
1255 1255   color: @text;
1256 - font-size: 25px;
1257 - line-height: 1.22;
1194 + font-size: 23px;
1195 + line-height: 1.25;
1258 1258   font-weight: 800;
1259 1259   }
1260 1260  
... ... @@ -1263,36 +1263,25 @@
1263 1263   line-height: 1.6;
1264 1264   }
1265 1265  
1266 - .product-card-description {
1267 - max-width: 760px;
1268 - margin: 0 0 14px;
1269 - font-size: 16px;
1204 + .card-link {
1205 + margin: 0;
1206 +
1207 + a {
1208 + font-weight: 700;
1209 + }
1270 1270   }
1271 1271  }
1272 1272  
1273 1273  .product-card-kicker {
1274 - display: inline-flex;
1275 - align-items: center;
1276 - gap: 7px;
1277 - width: fit-content;
1278 1278   margin-bottom: 10px;
1279 1279   padding: 5px 10px;
1280 - border: 1px solid fade(@brand, 24%);
1281 - border-radius: 999px;
1282 - background: fade(@brand, 8%);
1283 - color: @brand-strong;
1284 1284   font-size: 12px;
1285 - font-weight: 800;
1286 1286   text-transform: uppercase;
1287 1287   letter-spacing: .04em;
1288 -
1289 - i {
1290 - color: @brand;
1291 - }
1292 1292  }
1293 1293  
1294 1294  .product-highlights {
1295 - margin: 14px 0 22px;
1222 + margin: 14px 0 20px;
1296 1296   padding-left: 18px;
1297 1297   color: @muted;
1298 1298  
... ... @@ -1302,52 +1302,6 @@
1302 1302   }
1303 1303  }
1304 1304  
1305 -.product-card-actions {
1306 - display: flex;
1307 - align-items: center;
1308 - gap: 16px;
1309 - flex-wrap: wrap;
1310 -
1311 - .btn {
1312 - font-weight: 700;
1313 - }
1314 -}
1315 -
1316 -.product-card-contact {
1317 - color: @brand;
1318 - font-weight: 700;
1319 - text-decoration: underline;
1320 -
1321 - &:hover,
1322 - &:focus {
1323 - color: @brand-strong;
1324 - }
1325 -}
1326 -
1327 -@media (max-width: 640px) {
1328 - .product-card {
1329 - grid-template-columns: 1fr;
1330 - padding: 26px 22px;
1331 - text-align: left;
1332 -
1333 - &:before {
1334 - width: 4px;
1335 - }
1336 -
1337 - .product-card-icon {
1338 - margin-bottom: 2px;
1339 - }
1340 -
1341 - h3 {
1342 - font-size: 22px;
1343 - }
1344 - }
1345 -
1346 - .product-card-actions {
1347 - gap: 12px;
1348 - }
1349 -}
1350 -
1351 1351  /* ========== Individual Product Pages ========== */
1352 1352  
1353 1353  .product-layout {
... ... @@ -1363,6 +1363,7 @@
1363 1363  .product-info-card,
1364 1364  .product-feature,
1365 1365  .product-gallery-panel {
1247 + background: #fff;
1366 1366   border: 1px solid @line;
1367 1367   border-radius: @radius;
1368 1368   box-shadow: @shadow-sm;
... ... @@ -1410,7 +1410,7 @@
1410 1410  
1411 1411   li {
1412 1412   margin: 8px 0;
1413 - line-height: 1.3;
1295 + line-height: 1.45;
1414 1414   }
1415 1415  }
1416 1416  
... ... @@ -1480,9 +1480,9 @@
1480 1480  /* Keep the default XWiki gallery style.
1481 1481   Only add spacing before it and center it. */
1482 1482  .gallery.xGallery {
1483 - margin: 25px auto;
1484 - width: 920px;
1485 - height: 518px;
1365 + margin-top: 26px;
1366 + margin-left: auto;
1367 + margin-right: auto !important;
1486 1486  }
1487 1487  
1488 1488  .product-section-muted {
... ... @@ -1605,6 +1605,7 @@
1605 1605  /* ========== Resources Index ========== */
1606 1606  
1607 1607  .resources-index-page {
1490 + background: #fff;
1608 1608  
1609 1609   .services-grid {
1610 1610   grid-template-columns: repeat(2, minmax(0, 1fr));
... ... @@ -1640,293 +1640,3 @@
1640 1640   color: @muted;
1641 1641   }
1642 1642  }
1643 -
1644 -/* ========== Global Theme Background ========== */
1645 -
1646 -html,
1647 -body {
1648 - min-height: 100%;
1649 -}
1650 -
1651 -body {
1652 - color: @text;
1653 - background:
1654 - radial-gradient(circle at 12% 8%, rgba(0, 147, 125, 0.08) 0, transparent 26%),
1655 - radial-gradient(circle at 90% 28%, rgba(7, 24, 45, 0.05) 0, transparent 30%),
1656 - linear-gradient(180deg, #fff 0, @brand-bg 42%, #fff 100%) !important;
1657 - background-attachment: fixed;
1658 -}
1659 -
1660 -#mainContentArea {
1661 - padding: 0;
1662 - overflow-x: hidden;
1663 -}
1664 -
1665 -/* ========== Main Page Hero / SaaS Layout ========== */
1666 -
1667 -#mainContentArea .hero.hero-saas {
1668 - min-height: auto;
1669 - padding: 60px 0 34px;
1670 - display: flex;
1671 - align-items: center;
1672 - overflow: hidden;
1673 - background: transparent;
1674 -}
1675 -
1676 -#mainContentArea .hero-layout {
1677 - max-width: 1120px;
1678 - margin: 0 auto;
1679 - display: grid;
1680 - grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
1681 - gap: 56px;
1682 - align-items: center;
1683 -}
1684 -
1685 -#mainContentArea .hero-copy {
1686 - min-width: 0;
1687 - text-align: left;
1688 -}
1689 -
1690 -#mainContentArea .hero.hero-saas h1 {
1691 - max-width: 640px;
1692 - margin: 0 0 26px;
1693 - font-size: 60px;
1694 - font-weight: 800;
1695 - line-height: 1;
1696 - letter-spacing: -3px;
1697 -}
1698 -
1699 -#mainContentArea .hero.hero-saas h1 span {
1700 - color: @brand;
1701 -}
1702 -
1703 -#mainContentArea .hero.hero-saas .lead {
1704 - max-width: 590px;
1705 - margin: 0 0 28px;
1706 - color: #334155;
1707 - text-align: left;
1708 - font-size: 18px;
1709 - line-height: 1.6;
1710 -}
1711 -
1712 -#mainContentArea .hero.hero-saas .benefits {
1713 - max-width: 620px;
1714 - margin: 0 0 30px;
1715 - padding: 0;
1716 - display: grid;
1717 - grid-template-columns: repeat(2, minmax(0, 1fr));
1718 - gap: 10px 24px;
1719 - list-style: none;
1720 - color: #475569;
1721 - font-size: 15px;
1722 - text-align: left;
1723 -}
1724 -
1725 -#mainContentArea .hero.hero-saas .benefits li {
1726 - display: grid;
1727 - grid-template-columns: 18px minmax(0, 1fr);
1728 - column-gap: 8px;
1729 - align-items: start;
1730 - margin: 0;
1731 - line-height: 1.45;
1732 -}
1733 -
1734 -#mainContentArea .hero.hero-saas .benefits li::before {
1735 - content: "✓";
1736 - display: block;
1737 - width: 18px;
1738 - color: @brand;
1739 - font-weight: 900;
1740 - line-height: 1.45;
1741 - text-align: left;
1742 - margin: 0;
1743 -}
1744 -
1745 -#mainContentArea .hero.hero-saas .hero-actions,
1746 -#mainContentArea .hero.hero-saas #hero-cta {
1747 - display: flex;
1748 - flex-wrap: wrap;
1749 - justify-content: flex-start;
1750 - gap: 12px;
1751 - margin-top: 0;
1752 -}
1753 -
1754 -#mainContentArea .hero-image-wrapper {
1755 - min-width: 0;
1756 - display: flex;
1757 - justify-content: center;
1758 - align-items: center;
1759 -}
1760 -
1761 -#mainContentArea .hero-image {
1762 - display: block;
1763 - width: 100%;
1764 - max-width: 620px;
1765 - height: auto;
1766 - border: 0;
1767 -}
1768 -
1769 -/* ========== Main Page Hero Responsive ========== */
1770 -
1771 -@media (max-width: 1100px) {
1772 - #mainContentArea .hero-layout {
1773 - max-width: 760px;
1774 - grid-template-columns: 1fr;
1775 - gap: 34px;
1776 - }
1777 -
1778 - #mainContentArea .hero-copy {
1779 - order: 1;
1780 - text-align: center;
1781 - }
1782 -
1783 - #mainContentArea .hero-image-wrapper {
1784 - order: 2;
1785 - }
1786 -
1787 - #mainContentArea .hero.hero-saas h1 {
1788 - margin-left: auto;
1789 - margin-right: auto;
1790 - text-align: center;
1791 - }
1792 -
1793 - #mainContentArea .hero.hero-saas .lead {
1794 - margin-left: auto;
1795 - margin-right: auto;
1796 - text-align: center;
1797 - }
1798 -
1799 - #mainContentArea .hero.hero-saas .benefits {
1800 - margin-left: auto;
1801 - margin-right: auto;
1802 - }
1803 -
1804 - #mainContentArea .hero.hero-saas .hero-actions,
1805 - #mainContentArea .hero.hero-saas #hero-cta {
1806 - justify-content: center;
1807 - }
1808 -
1809 - #mainContentArea .hero-image {
1810 - max-width: 620px;
1811 - }
1812 -}
1813 -
1814 -@media (max-width: 640px) {
1815 - #mainContentArea .hero.hero-saas {
1816 - padding: 42px 0 28px;
1817 - }
1818 -
1819 - #mainContentArea .hero-layout {
1820 - gap: 28px;
1821 - }
1822 -
1823 - #mainContentArea .hero.hero-saas h1 {
1824 - font-size: 42px;
1825 - letter-spacing: -1.5px;
1826 - }
1827 -
1828 - #mainContentArea .hero.hero-saas .lead {
1829 - font-size: 17px;
1830 - }
1831 -
1832 - #mainContentArea .hero.hero-saas .benefits {
1833 - grid-template-columns: 1fr;
1834 - }
1835 -
1836 - #mainContentArea .hero-image {
1837 - max-width: 100%;
1838 - }
1839 -}
1840 -
1841 -/* ========== Accessibility / Contrast Improvements ========== */
1842 -
1843 -/* Make the global background softer and less distracting. */
1844 -body {
1845 - background:
1846 - radial-gradient(circle at 12% 8%, rgba(0, 147, 125, 0.035) 0, transparent 26%),
1847 - radial-gradient(circle at 90% 28%, rgba(7, 24, 45, 0.025) 0, transparent 30%),
1848 - linear-gradient(180deg, #fff 0, @brand-bg 42%, #fff 100%) !important;
1849 - background-attachment: scroll;
1850 -}
1851 -
1852 -/* Keep the article area readable while preserving the page background around it. */
1853 -#mainContentArea .resource-layout {
1854 - padding: 28px;
1855 - border: 1px solid fade(@line, 85%);
1856 - border-radius: @radius;
1857 - background: rgba(255, 255, 255, .88);
1858 - box-shadow: @shadow-sm;
1859 -}
1860 -
1861 -/* Ensure all reusable cards have a real surface, not transparent over the gradient. */
1862 -#mainContentArea .widget,
1863 -#mainContentArea .pathway-card,
1864 -#mainContentArea .service-card,
1865 -#mainContentArea .resource-card,
1866 -#mainContentArea .services .service,
1867 -#mainContentArea .product-card,
1868 -#mainContentArea .product-feature,
1869 -#mainContentArea .product-summary-card,
1870 -#mainContentArea .product-info-card {
1871 - background: #fff;
1872 -}
1873 -
1874 -/* Make notes more readable and visually stronger. */
1875 -#mainContentArea .resource-note {
1876 - border: 1px solid fade(@brand, 18%);
1877 - border-left: 4px solid @brand;
1878 - background: #fff;
1879 - box-shadow: 0 10px 28px rgba(15, 23, 42, .045);
1880 -}
1881 -
1882 -/* Keep the sidebar clearly separated from the background. */
1883 -#mainContentArea .resource-sidebar {
1884 - background: #fff;
1885 -}
1886 -
1887 -/* Make CTA panels stand out more clearly. */
1888 -#mainContentArea .resource-cta,
1889 -#mainContentArea .resource-inline-cta {
1890 - background: #fff;
1891 -}
1892 -
1893 -/* Improve table readability on long resource pages. */
1894 -#mainContentArea .resource-content table {
1895 - background: #fff;
1896 -}
1897 -
1898 -#mainContentArea .resource-content table th {
1899 - color: @text;
1900 - background: #F8FAFC;
1901 -}
1902 -
1903 -#mainContentArea .resource-content table td {
1904 - color: @text-soft;
1905 -}
1906 -
1907 -/* Slightly improve paragraph/list contrast in long articles. */
1908 -#mainContentArea .resource-content p,
1909 -#mainContentArea .resource-content li {
1910 - color: @text-soft;
1911 -}
1912 -
1913 -#mainContentArea .resource-content .resource-note p,
1914 -#mainContentArea .resource-content .resource-checklist li,
1915 -#mainContentArea .resource-content .process-list li {
1916 - color: @muted;
1917 -}
1918 -
1919 -@media (max-width: 900px) {
1920 - #mainContentArea .resource-layout {
1921 - padding: 22px;
1922 - }
1923 -}
1924 -
1925 -@media (max-width: 640px) {
1926 - #mainContentArea .resource-layout {
1927 - padding: 18px;
1928 - border-radius: 14px;
1929 - }
1930 -}
1931 -
1932 -