Changes for page Public Web Site

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

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