Changes for page Public Web Site

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

From version 26.4
edited by Agnease
on 2026/07/01 17:07
Change comment: There is no comment for this version
To version 28.23
edited by Agnease
on 2026/07/03 13:15
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -2,44 +2,44 @@
2 2  #macro (displayPublicContent)
3 3   #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
4 4   {{html clean="false"}}
5 - <section class="hero hero-saas" id="top">
6 - <div class="container">
7 - <div class="hero-layout">
8 - <div class="hero-copy">
9 - <h1>Professional XWiki consulting <span>and engineering</span></h1>
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>
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 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>
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 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>
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>
27 27   </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>
28 28   </div>
29 -$doc.getAttachmentURL('agnease-xwiki-hero.png')
30 - <div class="hero-image-wrapper">
31 - <img
32 - class="hero-image"
33 - src="$doc.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 40   </div>
41 - </div>
42 - </section>
42 + </section>
43 43  #*
44 44   <section class="hero hero-centered" aria-labelledby="hero-title">
45 45   <div class="container hero-inner">
... ... @@ -149,9 +149,9 @@
149 149   </div>
150 150   </section>
151 151  
152 - <section class="industry-trust-section" aria-labelledby="industry-trust-title">
152 + <section class="contrast-band" aria-labelledby="industry-trust-title">
153 153   <div class="container">
154 - <div class="industry-trust-panel">
154 + <div class="contrast-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="industry-tags" aria-label="Industries and environments supported">
162 + <div class="contrast-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="industry-support">
173 + <p class="contrast-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.
XWiki.StyleSheetExtension[0]
code
... ... @@ -1,8 +1,20 @@
1 1  /* ========== Agnease Public Website ========== */
2 -
2 +/*
3 3  @brand: #00937D;
4 4  @brand-strong: #007B6A;
5 5  @brand-soft: #E7FFF8;
6 +@brand-bg: #F4FCFA;
7 +@text: #2D3A34;
8 +@muted: #5B6B64;
9 +@line: #E4ECE9;
10 +@radius: 16px;
11 +@shadow-sm: 0 6px 20px rgba(0, 0, 0, .06);
12 +@shadow: 0 12px 36px rgba(0, 0, 0, .08);
13 +@maxw: 1140px;
14 +*/
15 +@brand: #00937D;
16 +@brand-strong: #007B6A;
17 +@brand-soft: #E7FFF8;
6 6  @brand-bg: #F7F9FC;
7 7  @text: #07182D;
8 8  @text-soft: #10243D;
... ... @@ -11,50 +11,32 @@
11 11  @radius: 18px;
12 12  @shadow-sm: 0 18px 45px rgba(15, 23, 42, .06);
13 13  @shadow: 0 30px 80px rgba(15, 23, 42, .12);
14 -@maxw: 1240px;
26 +@maxw: 1140px;
15 15  
16 -@section-padding: 42px 0;
17 -@section-padding-mobile: 34px 0;
28 +@section-padding: 30px 0;
29 +@section-padding-mobile: 28px 0;
18 18  
19 19  /* ========== Base ========== */
20 20  
21 -html {
22 - min-height: 100%;
23 - scroll-behavior: smooth;
24 -}
25 -
26 -body {
27 - min-height: 100%;
28 - color: @text;
29 - overflow-x: hidden;
30 - background:
31 - radial-gradient(circle at 12% 8%, rgba(0, 147, 125, 0.08) 0, transparent 26%),
32 - radial-gradient(circle at 90% 28%, rgba(7, 24, 45, 0.05) 0, transparent 30%),
33 - linear-gradient(180deg, #fff 0, @brand-bg 42%, #fff 100%) !important;
34 - background-attachment: fixed;
35 -}
36 -
37 37  #mainContentArea {
38 - padding: 0 !important;
39 - overflow-x: hidden;
40 - background: transparent !important;
41 - background-image: none !important;
34 + padding: 0;
42 42  }
43 43  
44 44  .container {
45 - width: 100%;
46 46   max-width: @maxw;
47 47   margin-left: auto;
48 48   margin-right: auto;
49 - padding-left: 24px;
50 - padding-right: 24px;
51 - box-sizing: border-box;
41 + padding-left: 18px;
42 + padding-right: 18px;
52 52  }
53 53  
45 +html {
46 + scroll-behavior: smooth;
47 +}
48 +
54 54  section {
55 55   padding: @section-padding;
56 - border-top: 1px solid fade(@line, 65%);
57 - background: transparent;
51 + border-top: 1px solid @line;
58 58  
59 59   &:first-of-type {
60 60   border-top: none;
... ... @@ -73,10 +73,8 @@
73 73  }
74 74  
75 75  h2 {
76 - max-width: 820px;
77 - margin: 0 auto 12px;
78 78   text-align: center;
79 - line-height: 1.24;
71 + margin-top: 0;
80 80  }
81 81  
82 82  .lead {
... ... @@ -87,11 +87,11 @@
87 87  
88 88  .section-intro {
89 89   max-width: 760px;
90 - margin: 0 auto 24px;
91 - color: @muted;
82 + margin: 0 auto 22px;
92 92   text-align: center;
84 + color: @muted;
93 93   font-size: 16px;
94 - line-height: 1.6;
86 + line-height: 1.55;
95 95  }
96 96  
97 97  a {
... ... @@ -103,42 +103,15 @@
103 103   }
104 104  }
105 105  
106 -/* ========== XWiki / Bootstrap Header Override ========== */
98 +/* ========== Header / Navigation ========== */
107 107  
108 -.navbar-default {
109 - background: fade(#fff, 72%) !important;
110 - background-image: none !important;
111 - border-color: fade(@line, 70%) !important;
112 - box-shadow: none !important;
113 - backdrop-filter: blur(14px);
114 -}
115 -
116 -.navbar-default .navbar-collapse,
117 -.navbar-default .navbar-form {
118 - border-color: fade(@line, 70%) !important;
119 -}
120 -
121 -.navbar-default .navbar-nav > li > a,
122 -.navbar-default .navbar-brand {
123 - color: @text !important;
124 -}
125 -
126 -.navbar-default .navbar-nav > li > a:hover,
127 -.navbar-default .navbar-nav > li > a:focus,
128 -.navbar-default .navbar-brand:hover,
129 -.navbar-default .navbar-brand:focus {
130 - color: @brand !important;
131 -}
132 -
133 -/* ========== Optional Custom Header / Navigation ========== */
134 -
135 135  .site-header {
136 136   position: sticky;
137 137   top: 0;
138 138   z-index: 1000;
139 - background: fade(#fff, 72%);
140 - border-bottom: 1px solid fade(@line, 70%);
141 - backdrop-filter: blur(14px);
104 + background: fade(#fff, 96%);
105 + border-bottom: 1px solid fade(@line, 85%);
106 + backdrop-filter: blur(8px);
142 142  }
143 143  
144 144  .header-inner {
... ... @@ -158,7 +158,7 @@
158 158   a {
159 159   color: @text;
160 160   text-decoration: none;
161 - font-weight: 700;
126 + font-weight: 600;
162 162  
163 163   &:hover,
164 164   &:focus {
... ... @@ -169,16 +169,16 @@
169 169  
170 170   .nav-cta {
171 171   color: #fff;
172 - background: @text;
173 - border: 1px solid @text;
174 - border-radius: 10px;
137 + background: @brand;
138 + border: 1px solid @brand;
139 + border-radius: 6px;
175 175   padding: 8px 14px;
176 176  
177 177   &:hover,
178 178   &:focus {
179 179   color: #fff;
180 - background: @text-soft;
181 - border-color: @text-soft;
145 + background: @brand-strong;
146 + border-color: @brand-strong;
182 182   }
183 183   }
184 184  }
... ... @@ -185,44 +185,24 @@
185 185  
186 186  /* ========== Buttons ========== */
187 187  
188 -.btn-primary,
189 -.btn-secondary {
190 - display: inline-flex;
191 - align-items: center;
192 - justify-content: center;
193 - min-height: 40px;
194 - padding: 9px 16px;
195 - border-radius: 10px;
196 - font-weight: 800;
197 - text-decoration: none;
198 -}
199 -
200 -.btn-primary {
201 - background: @text;
202 - border-color: @text;
153 +/*.btn-primary {
154 + background: @brand;
155 + border-color: @brand;
203 203   color: #fff;
204 204  
205 205   &:hover,
206 206   &:focus {
207 - background: @text-soft;
208 - border-color: @text-soft;
160 + background: @brand-strong;
161 + border-color: @brand-strong;
209 209   color: #fff;
210 - text-decoration: none;
211 211   }
212 212  }
213 -
165 +*/
214 214  .btn-secondary {
215 215   color: @text;
216 216   background: #fff;
217 - border: 1px solid fade(@text, 24%);
169 + border: 1px solid fade(@text, 35%);
218 218  
219 - &:hover,
220 - &:focus {
221 - color: @text;
222 - background: #F8FAFC;
223 - border-color: fade(@text, 42%);
224 - text-decoration: none;
225 - }
226 226  }
227 227  
228 228  /* ========== Hero ========== */
... ... @@ -229,14 +229,15 @@
229 229  
230 230  .hero {
231 231   overflow: hidden;
232 - background: transparent;
177 + background-repeat: no-repeat;
178 + background-attachment: scroll;
233 233  
234 234   &.hero-centered {
235 - min-height: 330px;
181 + text-align: center;
236 236   display: flex;
237 237   align-items: center;
238 238   justify-content: center;
239 - text-align: center;
185 + min-height: 330px;
240 240   }
241 241  
242 242   .hero-inner {
... ... @@ -256,9 +256,9 @@
256 256  
257 257   .lead {
258 258   max-width: 820px;
259 - margin-top: 12px;
260 260   font-size: 19px;
261 261   line-height: 1.55;
207 + margin-top: 12px;
262 262   }
263 263  
264 264   .benefits {
... ... @@ -282,15 +282,14 @@
282 282   display: inline-flex;
283 283   align-items: center;
284 284   gap: 8px;
285 - width: fit-content;
286 - color: @brand-strong;
231 + color: @brand;
287 287   background: fade(@brand, 8%);
288 - border: 1px solid fade(@brand, 22%);
233 + border: 1px solid fade(@brand, 18%);
289 289   border-radius: 999px;
290 290   padding: 6px 12px;
291 291   margin-bottom: 14px;
292 292   font-size: 13px;
293 - font-weight: 800;
238 + font-weight: 700;
294 294  }
295 295  
296 296  .hero-actions,
... ... @@ -302,136 +302,123 @@
302 302   margin-top: 22px;
303 303  }
304 304  
305 -/* ========== SaaS Hero With Attached Image ========== */
250 +/* ========== Contrast Band ========== */
306 306  
307 -.hero.hero-saas {
308 - min-height: auto;
309 - padding: 60px 0 34px;
310 - display: flex;
311 - align-items: center;
252 +.contrast-band {
253 + position: relative;
254 + overflow: visible;
255 + isolation: isolate;
256 + padding: 54px 0;
257 + border-top: 0;
258 + color: #fff;
312 312   background: transparent;
313 313  }
314 314  
315 -.hero-layout {
316 - max-width: 1120px;
317 - margin: 0 auto;
318 - display: grid;
319 - grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
320 - gap: 56px;
321 - align-items: center;
262 +.contrast-band::before {
263 + content: "";
264 + position: absolute;
265 + top: 0;
266 + bottom: 0;
267 + left: 50%;
268 + width: 100vw;
269 + transform: translateX(-50%);
270 + z-index: -2;
271 + background:
272 + radial-gradient(circle at 18% 18%, fade(@brand, 22%) 0%, transparent 28%),
273 + radial-gradient(circle at 86% 12%, fade(@brand, 16%) 0%, transparent 30%),
274 + linear-gradient(135deg, @text 0%, @text-soft 100%);
322 322  }
323 323  
324 -.hero-copy {
325 - min-width: 0;
326 - text-align: left;
277 +.contrast-band::after {
278 + content: "";
279 + position: absolute;
280 + top: 0;
281 + bottom: 0;
282 + left: 50%;
283 + width: 100vw;
284 + transform: translateX(-50%);
285 + z-index: -1;
286 + background:
287 + linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px),
288 + linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px);
289 + background-size: 52px 52px;
290 + opacity: .38;
291 + pointer-events: none;
327 327  }
328 328  
329 -.hero.hero-saas h1 {
330 - max-width: 640px;
331 - margin: 0 0 26px;
332 - font-size: 60px;
333 - font-weight: 800;
334 - line-height: 1;
335 - letter-spacing: -3px;
294 +.contrast-band .container {
295 + position: relative;
296 + z-index: 1;
336 336  }
337 337  
338 -.hero.hero-saas h1 span {
339 - color: @brand;
299 +.contrast-panel {
300 + max-width: 1040px;
301 + margin: 0 auto;
302 + text-align: center;
340 340  }
341 341  
342 -.hero.hero-saas .lead {
343 - max-width: 590px;
344 - margin: 0 0 28px;
345 - color: #334155;
346 - text-align: left;
347 - font-size: 18px;
348 - line-height: 1.6;
305 +.contrast-band h2 {
306 + max-width: 860px;
307 + margin: 0 auto 12px;
308 + color: #fff;
349 349  }
350 350  
351 -.hero.hero-saas .benefits {
352 - max-width: 620px;
353 - margin: 0 0 30px;
354 - padding: 0;
355 - display: grid;
356 - grid-template-columns: repeat(2, minmax(0, 1fr));
357 - gap: 10px 24px;
358 - list-style: none;
359 - color: #475569;
360 - font-size: 15px;
361 - text-align: left;
311 +.contrast-band .section-intro {
312 + max-width: 840px;
313 + margin: 0 auto 26px;
314 + color: #D9E3EE;
362 362  }
363 363  
364 -.hero.hero-saas .benefits li {
365 - display: grid;
366 - grid-template-columns: 18px minmax(0, 1fr);
367 - column-gap: 8px;
368 - align-items: start;
369 - margin: 0;
370 - line-height: 1.45;
317 +.contrast-tags {
318 + max-width: 940px;
319 + margin: 0 auto;
320 + display: flex;
321 + flex-wrap: wrap;
322 + justify-content: center;
323 + gap: 10px;
371 371  }
372 372  
373 -.hero.hero-saas .benefits li::before {
374 - content: "✓";
375 - display: block;
376 - width: 18px;
377 - color: @brand;
378 - font-weight: 900;
379 - line-height: 1.45;
380 - text-align: left;
381 - margin: 0;
326 +.contrast-tags span {
327 + display: inline-flex;
328 + align-items: center;
329 + padding: 8px 13px;
330 + border: 1px solid fade(#fff, 18%);
331 + border-radius: 999px;
332 + background: fade(#fff, 8%);
333 + color: #F8FAFC;
334 + font-size: 13px;
335 + font-weight: 700;
336 + line-height: 1.2;
382 382  }
383 383  
384 -.hero.hero-saas .hero-actions,
385 -.hero.hero-saas #hero-cta {
386 - justify-content: flex-start;
387 - margin-top: 0;
339 +.contrast-tags span::before {
340 + content: "";
341 + width: 7px;
342 + height: 7px;
343 + margin-right: 8px;
344 + border-radius: 50%;
345 + background: @brand;
346 + box-shadow: 0 0 0 4px fade(@brand, 18%);
388 388  }
389 389  
390 -.hero-image-wrapper {
391 - min-width: 0;
392 - display: flex;
393 - justify-content: center;
394 - align-items: center;
349 +.contrast-support {
350 + max-width: 860px;
351 + margin: 30px auto 0;
352 + color: #D9E3EE;
353 + text-align: center;
354 + font-size: 15px;
355 + line-height: 1.7;
395 395  }
396 396  
397 -.hero-image {
398 - display: block;
399 - width: 100%;
400 - max-width: 620px;
401 - height: auto;
402 - border: 0;
403 -}
404 -
405 -/* ========== Trust Strip ========== */
406 -
407 -.trust-strip {
408 - padding: 18px 0;
409 - border-top: 1px solid fade(@line, 70%);
410 - border-bottom: 1px solid fade(@line, 70%);
411 - background: transparent;
412 -
413 - ul {
414 - max-width: 960px;
415 - margin: 0 auto;
416 - padding: 0 24px;
417 - list-style: none;
418 - display: flex;
419 - justify-content: center;
420 - gap: 22px;
421 - flex-wrap: wrap;
422 - color: @muted;
423 - font-size: 13px;
358 +@media (max-width: 640px) {
359 + .contrast-band {
360 + padding: 40px 0;
424 424   }
425 425  
426 - li {
427 - display: flex;
428 - align-items: center;
429 - gap: 7px;
363 + .contrast-tags span {
364 + font-size: 12px;
365 + padding: 8px 11px;
430 430   }
431 -
432 - i {
433 - color: @brand;
434 - }
435 435  }
436 436  
437 437  /* ========== Reusable Grids ========== */
... ... @@ -442,7 +442,7 @@
442 442  .resource-grid,
443 443  .widgets {
444 444   display: grid;
445 - grid-gap: 22px;
377 + grid-gap: 18px;
446 446   margin-left: auto;
447 447   margin-right: auto;
448 448  }
... ... @@ -452,19 +452,19 @@
452 452  .services-grid {
453 453   grid-template-columns: repeat(3, minmax(0, 1fr));
454 454   max-width: 1040px;
455 - margin-top: 24px;
387 + margin-top: 22px;
456 456  }
457 457  
458 458  .resource-grid {
459 459   grid-template-columns: repeat(2, minmax(0, 1fr));
460 460   max-width: 1040px;
461 - margin-top: 24px;
393 + margin-top: 22px;
462 462  }
463 463  
464 464  .widgets {
465 465   grid-template-columns: repeat(4, minmax(0, 1fr));
466 466   max-width: 1040px;
467 - margin-top: 22px;
399 + margin-top: 20px;
468 468  }
469 469  
470 470  .card-grid > *,
... ... @@ -480,19 +480,7 @@
480 480  .widget,
481 481  .pathway-card,
482 482  .service-card,
483 -.resource-card,
484 -.product-card,
485 -.product-summary-card,
486 -.product-info-card,
487 -.product-feature,
488 -.product-gallery-panel,
489 -.process-list li,
490 -.resource-sidebar,
491 -.cta-panel,
492 -.resource-inline-cta,
493 -.resource-note,
494 -.resource-cta {
495 - background: #fff;
415 +.resource-card {
496 496   border: 1px solid @line;
497 497   border-radius: @radius;
498 498   box-shadow: @shadow-sm;
... ... @@ -550,13 +550,12 @@
550 550   .pathway-icon {
551 551   width: 52px;
552 552   height: 52px;
553 - border-radius: 16px;
473 + border-radius: 50%;
554 554   display: flex;
555 555   align-items: center;
556 556   justify-content: center;
557 557   color: @brand;
558 558   background: fade(@brand, 10%);
559 - border: 1px solid fade(@brand, 18%);
560 560   font-size: 19px;
561 561   flex-shrink: 0;
562 562   }
... ... @@ -603,59 +603,6 @@
603 603   }
604 604  }
605 605  
606 -/* ========== Industry Trust Section ========== */
607 -
608 -.industry-trust-section {
609 - background: transparent;
610 -
611 - .industry-trust-panel {
612 - max-width: 1040px;
613 - margin: 0 auto;
614 - padding: 30px 28px;
615 - text-align: center;
616 - }
617 -
618 - h2 {
619 - margin-bottom: 12px;
620 - }
621 -
622 - .section-intro {
623 - margin-bottom: 20px;
624 - max-width: 820px;
625 - }
626 -
627 - .industry-tags {
628 - max-width: 880px;
629 - margin: 0 auto;
630 - display: flex;
631 - flex-wrap: wrap;
632 - justify-content: center;
633 - gap: 10px;
634 - }
635 -
636 - .industry-tags span {
637 - display: inline-flex;
638 - align-items: center;
639 - padding: 7px 12px;
640 - border: 1px solid fade(@brand, 20%);
641 - border-radius: 999px;
642 - background: #fff;
643 - color: @text;
644 - font-size: 13px;
645 - font-weight: 700;
646 - line-height: 1.2;
647 - box-shadow: 0 8px 20px rgba(15, 23, 42, .04);
648 - }
649 -
650 - .industry-support {
651 - max-width: 820px;
652 - margin: 22px auto 0;
653 - color: @muted;
654 - font-size: 16px;
655 - line-height: 1.6;
656 - }
657 -}
658 -
659 659  /* ========== Services ========== */
660 660  
661 661  .services {
... ... @@ -668,7 +668,6 @@
668 668   align-items: flex-start;
669 669   gap: 16px;
670 670   padding: 22px;
671 - background: #fff;
672 672   border: 1px solid @line;
673 673   border-radius: @radius;
674 674   box-shadow: @shadow-sm;
... ... @@ -676,7 +676,7 @@
676 676   .service-icon {
677 677   width: 46px;
678 678   height: 46px;
679 - border-radius: 14px;
544 + border-radius: 50%;
680 680   display: flex;
681 681   align-items: center;
682 682   justify-content: center;
... ... @@ -683,7 +683,6 @@
683 683   font-size: 18px;
684 684   color: @brand;
685 685   background: fade(@brand, 10%);
686 - border: 1px solid fade(@brand, 18%);
687 687   flex-shrink: 0;
688 688   margin-top: 2px;
689 689   }
... ... @@ -721,7 +721,8 @@
721 721  /* ========== Split / Process Section ========== */
722 722  
723 723  .split-section {
724 - background: transparent;
588 + background:
589 + radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 65%);
725 725  }
726 726  
727 727  .split-grid {
... ... @@ -756,6 +756,9 @@
756 756   position: relative;
757 757   padding: 16px 16px 16px 58px;
758 758   margin-bottom: 12px;
624 + border: 1px solid @line;
625 + border-radius: @radius;
626 + box-shadow: @shadow-sm;
759 759   color: @muted;
760 760   line-height: 1.5;
761 761  
... ... @@ -785,9 +785,8 @@
785 785  
786 786  /* ========== Resources ========== */
787 787  
788 -.resource-strip,
789 -.homepage-resource-strip {
790 - background: transparent;
656 +.resource-strip {
657 + background: @brand-bg;
791 791  }
792 792  
793 793  .resource-card {
... ... @@ -815,6 +815,9 @@
815 815  /* ========== Homepage Resource Strip ========== */
816 816  
817 817  .homepage-resource-strip {
685 + background:
686 + radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 70%);
687 +
818 818   .resource-grid {
819 819   max-width: 1040px;
820 820   margin: 22px auto 0;
... ... @@ -860,10 +860,30 @@
860 860   }
861 861  }
862 862  
733 +@media (max-width: 980px) {
734 + .homepage-resource-strip {
735 + .resource-grid {
736 + grid-template-columns: 1fr;
737 + }
738 + }
739 +}
740 +
741 +@media (max-width: 640px) {
742 + .homepage-resource-strip {
743 + .resource-card {
744 + padding: 22px;
745 + }
746 +
747 + .resource-card h4 {
748 + font-size: 19px;
749 + }
750 + }
751 +}
752 +
863 863  /* ========== CTA ========== */
864 864  
865 -.cta-section {
866 - padding: @section-padding;
755 +#mainContentArea .cta-section {
756 + padding: 44px 0 56px;
867 867  
868 868   .contact-inline {
869 869   margin: 0;
... ... @@ -875,22 +875,70 @@
875 875   }
876 876  }
877 877  
878 -.cta-panel {
879 - max-width: 860px;
768 +#mainContentArea .cta-panel {
769 + position: relative;
770 + overflow: hidden;
771 + max-width: 1040px;
880 880   margin: 0 auto;
881 - padding: 32px;
773 + padding: 48px 40px;
774 + border: 0;
775 + border-radius: 26px;
776 + background:
777 + radial-gradient(circle at 88% 10%, fade(@brand, 24%) 0%, transparent 30%),
778 + linear-gradient(135deg, @text 0%, @text-soft 100%);
779 + color: #fff;
780 + box-shadow: @shadow;
882 882   text-align: center;
782 +}
883 883  
884 - h2 {
885 - margin-top: 0;
886 - }
784 +#mainContentArea .cta-panel::before {
785 + content: "";
786 + position: absolute;
787 + inset: 0;
788 + background:
789 + linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px),
790 + linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px);
791 + background-size: 48px 48px;
792 + opacity: .4;
793 + pointer-events: none;
794 +}
887 887  
888 - p {
889 - color: @muted;
890 - line-height: 1.55;
891 - }
796 +#mainContentArea .cta-panel h2,
797 +#mainContentArea .cta-panel p,
798 +#mainContentArea .cta-panel .btn {
799 + position: relative;
800 + z-index: 1;
892 892  }
893 893  
803 +#mainContentArea .cta-panel h2 {
804 + max-width: 760px;
805 + margin: 0 auto 16px;
806 + color: #fff;
807 +}
808 +
809 +#mainContentArea .cta-panel p {
810 + max-width: 760px;
811 + margin: 0 auto 28px;
812 + color: #DBE4EF;
813 + font-size: 16px;
814 + line-height: 1.6;
815 +}
816 +
817 +#mainContentArea .cta-panel .btn-primary {
818 + border-color: #fff;
819 + background: #fff;
820 + color: @text;
821 + box-shadow: 0 18px 42px rgba(0, 0, 0, .18);
822 +}
823 +
824 +#mainContentArea .cta-panel .btn-primary:hover,
825 +#mainContentArea .cta-panel .btn-primary:focus {
826 + border-color: #fff;
827 + background: #fff;
828 + color: @brand-strong;
829 + text-decoration: none;
830 +}
831 +
894 894  .resource-inline-cta {
895 895   display: flex;
896 896   align-items: center;
... ... @@ -898,6 +898,10 @@
898 898   gap: 22px;
899 899   margin: 30px 0;
900 900   padding: 20px 22px;
839 + border: 1px solid fade(@brand, 22%);
840 + border-radius: @radius;
841 + background: @brand-bg;
842 + box-shadow: @shadow-sm;
901 901  
902 902   p {
903 903   margin: 0;
... ... @@ -914,17 +914,129 @@
914 914   }
915 915  }
916 916  
859 +@media (max-width: 767px) {
860 + .resource-inline-cta {
861 + display: block;
862 + text-align: center;
863 +
864 + p {
865 + margin-bottom: 14px;
866 + }
867 +
868 + .btn {
869 + display: inline-block;
870 + margin-left: auto;
871 + margin-right: auto;
872 + }
873 + }
874 +}
875 +
876 +/* ========== Responsive ========== */
877 +
878 +@media (max-width: 980px) {
879 + .widgets,
880 + .pathways,
881 + .services-grid,
882 + .resource-grid {
883 + grid-template-columns: repeat(2, minmax(0, 1fr));
884 + }
885 +
886 + .split-grid {
887 + grid-template-columns: 1fr;
888 + }
889 +
890 + .split-copy h2 {
891 + text-align: center;
892 + }
893 +}
894 +
895 +@media (max-width: 760px) {
896 + section[id] {
897 + scroll-margin-top: 132px;
898 + }
899 +
900 + .header-inner {
901 + min-height: auto;
902 + padding-top: 14px;
903 + padding-bottom: 14px;
904 + flex-direction: column;
905 + align-items: center;
906 + gap: 12px;
907 + }
908 +
909 + .site-nav {
910 + width: 100%;
911 + justify-content: center;
912 + flex-wrap: wrap;
913 + gap: 10px 16px;
914 + font-size: 14px;
915 +
916 + .nav-cta {
917 + padding: 7px 12px;
918 + }
919 + }
920 +
921 + .hero.hero-centered {
922 + min-height: 280px;
923 + }
924 +
925 + .hero {
926 + .lead {
927 + font-size: 17px;
928 + }
929 +
930 + .benefits {
931 + gap: 4px 10px;
932 +
933 + li + li::before {
934 + content: none;
935 + }
936 + }
937 + }
938 +}
939 +
940 +@media (max-width: 640px) {
941 + section {
942 + padding: @section-padding-mobile;
943 + }
944 +
945 + .widgets,
946 + .pathways,
947 + .services-grid,
948 + .resource-grid {
949 + grid-template-columns: 1fr;
950 + }
951 +
952 + .pathway-card,
953 + .services .service,
954 + .resource-card,
955 + .widget {
956 + padding: 20px;
957 + }
958 +
959 + .services .service {
960 + gap: 14px;
961 + }
962 +
963 + #mainContentArea .cta-panel {
964 + padding: 30px 22px;
965 + border-radius: 20px;
966 + }
967 +
968 + #mainContentArea .cta-panel .btn-primary {
969 + width: 100%;
970 + }
971 +}
972 +
917 917  /* ========== Resource / Article Pages ========== */
918 918  
919 919  .resource-page {
920 920   padding-top: 0;
921 - background: transparent;
922 922  }
923 923  
924 924  .resource-header {
925 925   padding: @section-padding;
926 926   border-top: none;
927 - background: transparent;
928 928  
929 929   h1 {
930 930   margin: 0 auto 14px;
... ... @@ -992,6 +992,7 @@
992 992  
993 993  .resource-note {
994 994   border-left: 4px solid @brand;
1049 + background: @brand-bg;
995 995   padding: 16px 18px;
996 996   margin: 22px 0;
997 997   border-radius: 0 @radius @radius 0;
... ... @@ -1068,7 +1068,10 @@
1068 1068   margin-bottom: 28px;
1069 1069   position: sticky;
1070 1070   top: 96px;
1126 + border: 1px solid @line;
1127 + border-radius: @radius;
1071 1071   padding: 18px;
1129 + box-shadow: @shadow-sm;
1072 1072  
1073 1073   h4 {
1074 1074   margin: 0 0 10px;
... ... @@ -1099,6 +1099,9 @@
1099 1099   max-width: 820px;
1100 1100   margin: 42px auto 0;
1101 1101   padding: 28px 30px;
1160 + border: 1px solid fade(@brand, 20%);
1161 + border-radius: @radius;
1162 + background: @brand-bg;
1102 1102  
1103 1103   h3 {
1104 1104   margin-top: 0;
... ... @@ -1123,6 +1123,26 @@
1123 1123   display: flow-root;
1124 1124  }
1125 1125  
1187 +@media (max-width: 767px) {
1188 + .resource-cta {
1189 + padding: 24px 20px;
1190 + }
1191 +}
1192 +
1193 +@media (max-width: 900px) {
1194 + .resource-layout {
1195 + padding-top: 22px;
1196 + }
1197 +
1198 + .resource-sidebar {
1199 + float: none;
1200 + width: 100%;
1201 + margin-left: 0;
1202 + margin-bottom: 24px;
1203 + position: static;
1204 + }
1205 +}
1206 +
1126 1126  /* ========== Products / Extensions Pages ========== */
1127 1127  
1128 1128  .product-index-section {
... ... @@ -1143,6 +1143,9 @@
1143 1143  
1144 1144  .product-card {
1145 1145   position: relative;
1227 + border: 1px solid @line;
1228 + border-radius: @radius;
1229 + box-shadow: @shadow-sm;
1146 1146   padding: 32px;
1147 1147   display: grid;
1148 1148   grid-template-columns: 70px 1fr;
... ... @@ -1161,7 +1161,7 @@
1161 1161   .product-card-icon {
1162 1162   width: 58px;
1163 1163   height: 58px;
1164 - border-radius: 16px;
1248 + border-radius: 50%;
1165 1165   background: fade(@brand, 10%);
1166 1166   border: 1px solid fade(@brand, 22%);
1167 1167   color: @brand;
... ... @@ -1250,6 +1250,30 @@
1250 1250   }
1251 1251  }
1252 1252  
1337 +@media (max-width: 640px) {
1338 + .product-card {
1339 + grid-template-columns: 1fr;
1340 + padding: 26px 22px;
1341 + text-align: left;
1342 +
1343 + &:before {
1344 + width: 4px;
1345 + }
1346 +
1347 + .product-card-icon {
1348 + margin-bottom: 2px;
1349 + }
1350 +
1351 + h3 {
1352 + font-size: 22px;
1353 + }
1354 + }
1355 +
1356 + .product-card-actions {
1357 + gap: 12px;
1358 + }
1359 +}
1360 +
1253 1253  /* ========== Individual Product Pages ========== */
1254 1254  
1255 1255  .product-layout {
... ... @@ -1261,6 +1261,15 @@
1261 1261   align-items: start;
1262 1262  }
1263 1263  
1372 +.product-summary-card,
1373 +.product-info-card,
1374 +.product-feature,
1375 +.product-gallery-panel {
1376 + border: 1px solid @line;
1377 + border-radius: @radius;
1378 + box-shadow: @shadow-sm;
1379 +}
1380 +
1264 1264  .product-summary-card {
1265 1265   padding: 28px;
1266 1266  
... ... @@ -1337,9 +1337,8 @@
1337 1337   .feature-icon {
1338 1338   width: 46px;
1339 1339   height: 46px;
1340 - border-radius: 14px;
1457 + border-radius: 50%;
1341 1341   background: fade(@brand, 10%);
1342 - border: 1px solid fade(@brand, 18%);
1343 1343   color: @brand;
1344 1344   display: flex;
1345 1345   align-items: center;
... ... @@ -1372,16 +1372,16 @@
1372 1372  }
1373 1373  
1374 1374  /* Keep the default XWiki gallery style.
1375 - Only set size, top spacing and centering. */
1491 + Only add spacing before it and center it. */
1376 1376  .gallery.xGallery {
1377 1377   margin: 25px auto;
1378 1378   width: 920px;
1379 - max-width: 100%;
1380 1380   height: 518px;
1381 1381  }
1382 1382  
1383 1383  .product-section-muted {
1384 - background: transparent;
1499 + background:
1500 + radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 65%);
1385 1385  }
1386 1386  
1387 1387  /* Compact process list when used inside a product card. */
... ... @@ -1440,296 +1440,415 @@
1440 1440   justify-content: center;
1441 1441  }
1442 1442  
1443 -/* ========== Resources Index ========== */
1559 +@media (max-width: 980px) {
1560 + .product-layout,
1561 + .product-feature-grid {
1562 + grid-template-columns: 1fr;
1563 + }
1444 1444  
1445 -.resources-index-page {
1446 - background: transparent;
1447 -
1448 - .services-grid {
1449 - grid-template-columns: repeat(2, minmax(0, 1fr));
1565 + .product-summary-card h2 {
1566 + text-align: center;
1450 1450   }
1451 1451  }
1452 1452  
1453 -/* ========== Responsive ========== */
1454 -
1455 -@media (max-width: 1100px) {
1456 - .hero-layout {
1457 - max-width: 760px;
1570 +@media (max-width: 640px) {
1571 + .product-card {
1458 1458   grid-template-columns: 1fr;
1459 - gap: 34px;
1460 - }
1573 + padding: 22px;
1574 + text-align: left;
1461 1461  
1462 - .hero-copy {
1463 - order: 1;
1464 - text-align: center;
1576 + .product-card-icon {
1577 + margin-bottom: 2px;
1578 + }
1465 1465   }
1466 1466  
1467 - .hero-image-wrapper {
1468 - order: 2;
1581 + .product-summary-card,
1582 + .product-info-card,
1583 + .product-feature,
1584 + .product-gallery-panel {
1585 + padding: 20px;
1469 1469   }
1470 1470  
1471 - .hero.hero-saas h1 {
1472 - margin-left: auto;
1473 - margin-right: auto;
1474 - text-align: center;
1475 - }
1588 + .product-feature {
1589 + .card-heading,
1590 + .feature-heading {
1591 + gap: 12px;
1592 + }
1476 1476  
1477 - .hero.hero-saas .lead {
1478 - margin-left: auto;
1479 - margin-right: auto;
1480 - text-align: center;
1594 + .feature-icon {
1595 + width: 42px;
1596 + height: 42px;
1597 + font-size: 16px;
1598 + }
1481 1481   }
1482 1482  
1483 - .hero.hero-saas .benefits {
1484 - margin-left: auto;
1485 - margin-right: auto;
1601 + .gallery.xGallery {
1602 + margin-top: 22px !important;
1486 1486   }
1487 1487  
1488 - .hero.hero-saas .hero-actions,
1489 - .hero.hero-saas #hero-cta {
1490 - justify-content: center;
1605 + .product-gallery-caption {
1606 + margin-top: 10px;
1607 + padding: 0 14px;
1491 1491   }
1492 1492  
1493 - .hero-image {
1494 - max-width: 620px;
1610 + .product-summary-card .process-list li {
1611 + padding-left: 46px;
1495 1495   }
1496 1496  }
1497 1497  
1498 -@media (max-width: 980px) {
1499 - .widgets,
1500 - .pathways,
1501 - .services-grid,
1502 - .resource-grid {
1503 - grid-template-columns: repeat(2, minmax(0, 1fr));
1504 - }
1615 +/* ========== Resources Index ========== */
1505 1505  
1506 - .split-grid,
1507 - .product-layout,
1508 - .product-feature-grid {
1509 - grid-template-columns: 1fr;
1510 - }
1617 +.resources-index-page {
1511 1511  
1512 - .split-copy h2,
1513 - .product-summary-card h2 {
1514 - text-align: center;
1619 + .services-grid {
1620 + grid-template-columns: repeat(2, minmax(0, 1fr));
1515 1515   }
1622 +}
1516 1516  
1517 - .homepage-resource-strip {
1518 - .resource-grid {
1624 +@media (max-width: 980px) {
1625 + .resources-index-page {
1626 + .services-grid {
1519 1519   grid-template-columns: 1fr;
1520 1520   }
1521 1521   }
1630 +}
1522 1522  
1632 +@media (max-width: 767px) {
1523 1523   .resources-index-page {
1524 - .services-grid {
1525 - grid-template-columns: 1fr;
1526 - }
1634 + padding: @section-padding-mobile;
1527 1527   }
1528 1528  }
1529 1529  
1530 -@media (max-width: 900px) {
1531 - .resource-layout {
1532 - padding-top: 22px;
1638 +.resource-faq-item {
1639 + border-bottom: 1px solid @line;
1640 + padding: 12px 0;
1641 +
1642 + summary {
1643 + cursor: pointer;
1644 + font-weight: 700;
1645 + color: @text;
1533 1533   }
1534 1534  
1535 - .resource-sidebar {
1536 - float: none;
1537 - width: 100%;
1538 - margin-left: 0;
1539 - margin-bottom: 24px;
1540 - position: static;
1648 + p {
1649 + margin: 10px 0 4px;
1650 + color: @muted;
1541 1541   }
1542 1542  }
1543 1543  
1544 -@media (max-width: 767px) {
1545 - section[id] {
1546 - scroll-margin-top: 132px;
1547 - }
1654 +/* ========== Global Theme Background ========== */
1548 1548  
1549 - .header-inner {
1550 - min-height: auto;
1551 - padding-top: 14px;
1552 - padding-bottom: 14px;
1553 - flex-direction: column;
1554 - align-items: center;
1555 - gap: 12px;
1556 - }
1656 +html,
1657 +body {
1658 + min-height: 100%;
1659 +}
1557 1557  
1558 - .site-nav {
1559 - width: 100%;
1560 - justify-content: center;
1561 - flex-wrap: wrap;
1562 - gap: 10px 16px;
1563 - font-size: 14px;
1661 +body {
1662 + color: @text;
1663 + background:
1664 + radial-gradient(circle at 12% 8%, rgba(0, 147, 125, 0.08) 0, transparent 26%),
1665 + radial-gradient(circle at 90% 28%, rgba(7, 24, 45, 0.05) 0, transparent 30%),
1666 + linear-gradient(180deg, #fff 0, @brand-bg 42%, #fff 100%) !important;
1667 + background-attachment: fixed;
1668 +}
1564 1564  
1565 - .nav-cta {
1566 - padding: 7px 12px;
1567 - }
1568 - }
1670 +/* Let the body background show through the XWiki wrappers.
1671 +#mainContentArea,
1672 +.resource-page,
1673 +.resources-index-page {
1674 + background: transparent !important;
1675 + background-image: none !important;
1676 +}
1677 +*/
1678 +/* Remove local decorative backgrounds that compete with the global gradient.
1679 +.hero,
1680 +.hero.hero-centered,
1681 +.trust-strip,
1682 +.industry-trust-section,
1683 +.split-section,
1684 +.resource-strip,
1685 +.homepage-resource-strip,
1686 +.resource-header,
1687 +.product-section-muted,
1688 +.resources-index-page {
1689 + background: transparent !important;
1690 + background-image: none !important;
1691 +}
1692 + */
1693 +/* Keep large panels readable, but remove their inner gradients.
1694 +.industry-trust-section .industry-trust-panel,
1695 +.cta-panel,
1696 +.resource-inline-cta,
1697 +.resource-note,
1698 +.resource-cta {
1699 + background: #fff !important;
1700 + background-image: none !important;
1701 +} */
1569 1569  
1570 - .hero.hero-centered {
1571 - min-height: 280px;
1572 - }
1703 +/* ========== Main Page Hero / SaaS Layout ========== */
1573 1573  
1574 - .resource-inline-cta {
1575 - display: block;
1576 - text-align: center;
1705 +#mainContentArea .hero.hero-saas {
1706 + min-height: auto;
1707 + padding: 60px 0 34px;
1708 + display: flex;
1709 + align-items: center;
1710 + overflow: hidden;
1711 + background: transparent;
1712 +}
1577 1577  
1578 - p {
1579 - margin-bottom: 14px;
1580 - }
1714 +#mainContentArea .hero-layout {
1715 + max-width: 1120px;
1716 + margin: 0 auto;
1717 + display: grid;
1718 + grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
1719 + gap: 56px;
1720 + align-items: center;
1721 +}
1581 1581  
1582 - .btn {
1583 - display: inline-block;
1584 - margin-left: auto;
1585 - margin-right: auto;
1586 - }
1587 - }
1723 +#mainContentArea .hero-copy {
1724 + min-width: 0;
1725 + text-align: left;
1726 +}
1588 1588  
1589 - .resource-cta {
1590 - padding: 24px 20px;
1591 - }
1728 +#mainContentArea .hero.hero-saas h1 {
1729 + max-width: 640px;
1730 + margin: 0 0 26px;
1731 + font-size: 60px;
1732 + font-weight: 800;
1733 + line-height: 1;
1734 + letter-spacing: -3px;
1735 +}
1592 1592  
1593 - .resources-index-page {
1594 - padding: @section-padding-mobile;
1595 - }
1737 +#mainContentArea .hero.hero-saas h1 span {
1738 + color: @brand;
1596 1596  }
1597 1597  
1598 -@media (max-width: 640px) {
1599 - section {
1600 - padding: @section-padding-mobile;
1601 - }
1741 +#mainContentArea .hero.hero-saas .lead {
1742 + max-width: 590px;
1743 + margin: 0 0 28px;
1744 + color: #334155;
1745 + text-align: left;
1746 + font-size: 18px;
1747 + line-height: 1.6;
1748 +}
1602 1602  
1603 - .container {
1604 - padding-left: 18px;
1605 - padding-right: 18px;
1606 - }
1750 +#mainContentArea .hero.hero-saas .benefits {
1751 + max-width: 620px;
1752 + margin: 0 0 30px;
1753 + padding: 0;
1754 + display: grid;
1755 + grid-template-columns: repeat(2, minmax(0, 1fr));
1756 + gap: 10px 24px;
1757 + list-style: none;
1758 + color: #475569;
1759 + font-size: 15px;
1760 + text-align: left;
1761 +}
1607 1607  
1608 - .widgets,
1609 - .pathways,
1610 - .services-grid,
1611 - .resource-grid,
1612 - .hero.hero-saas .benefits {
1763 +#mainContentArea .hero.hero-saas .benefits li {
1764 + display: grid;
1765 + grid-template-columns: 18px minmax(0, 1fr);
1766 + column-gap: 8px;
1767 + align-items: start;
1768 + margin: 0;
1769 + line-height: 1.45;
1770 +}
1771 +
1772 +#mainContentArea .hero.hero-saas .benefits li::before {
1773 + content: "✓";
1774 + display: block;
1775 + width: 18px;
1776 + color: @brand;
1777 + font-weight: 900;
1778 + line-height: 1.45;
1779 + text-align: left;
1780 + margin: 0;
1781 +}
1782 +
1783 +#mainContentArea .hero.hero-saas .hero-actions,
1784 +#mainContentArea .hero.hero-saas #hero-cta {
1785 + display: flex;
1786 + flex-wrap: wrap;
1787 + justify-content: flex-start;
1788 + gap: 12px;
1789 + margin-top: 0;
1790 +}
1791 +
1792 +#mainContentArea .hero-image-wrapper {
1793 + min-width: 0;
1794 + display: flex;
1795 + justify-content: center;
1796 + align-items: center;
1797 +}
1798 +
1799 +#mainContentArea .hero-image {
1800 + display: block;
1801 + width: 100%;
1802 + max-width: 620px;
1803 + height: auto;
1804 + border: 0;
1805 +}
1806 +
1807 +/* ========== Main Page Hero Responsive ========== */
1808 +
1809 +@media (max-width: 1100px) {
1810 + #mainContentArea .hero-layout {
1811 + max-width: 760px;
1613 1613   grid-template-columns: 1fr;
1813 + gap: 34px;
1614 1614   }
1615 1615  
1616 - .pathway-card,
1617 - .services .service,
1618 - .resource-card,
1619 - .widget,
1620 - .product-summary-card,
1621 - .product-info-card,
1622 - .product-feature,
1623 - .product-gallery-panel {
1624 - padding: 20px;
1816 + #mainContentArea .hero-copy {
1817 + order: 1;
1818 + text-align: center;
1625 1625   }
1626 1626  
1627 - .services .service {
1628 - gap: 14px;
1821 + #mainContentArea .hero-image-wrapper {
1822 + order: 2;
1629 1629   }
1630 1630  
1631 - .cta-panel {
1632 - padding: 24px 20px;
1825 + #mainContentArea .hero.hero-saas h1 {
1826 + margin-left: auto;
1827 + margin-right: auto;
1828 + text-align: center;
1633 1633   }
1634 1634  
1635 - .industry-trust-section {
1636 - .industry-trust-panel {
1637 - padding: 24px 18px;
1638 - }
1831 + #mainContentArea .hero.hero-saas .lead {
1832 + margin-left: auto;
1833 + margin-right: auto;
1834 + text-align: center;
1835 + }
1639 1639  
1640 - .industry-tags {
1641 - gap: 8px;
1642 - }
1837 + #mainContentArea .hero.hero-saas .benefits {
1838 + margin-left: auto;
1839 + margin-right: auto;
1840 + }
1643 1643  
1644 - .industry-tags span {
1645 - font-size: 12px;
1646 - padding: 6px 10px;
1647 - }
1842 + #mainContentArea .hero.hero-saas .hero-actions,
1843 + #mainContentArea .hero.hero-saas #hero-cta {
1844 + justify-content: center;
1648 1648   }
1649 1649  
1650 - .homepage-resource-strip {
1651 - .resource-card {
1652 - padding: 22px;
1653 - }
1654 -
1655 - .resource-card h4 {
1656 - font-size: 19px;
1657 - }
1847 + #mainContentArea .hero-image {
1848 + max-width: 620px;
1658 1658   }
1850 +}
1659 1659  
1660 - .hero.hero-saas {
1852 +@media (max-width: 640px) {
1853 + #mainContentArea .hero.hero-saas {
1661 1661   padding: 42px 0 28px;
1662 1662   }
1663 1663  
1664 - .hero.hero-saas h1 {
1857 + #mainContentArea .hero-layout {
1858 + gap: 28px;
1859 + }
1860 +
1861 + #mainContentArea .hero.hero-saas h1 {
1665 1665   font-size: 42px;
1666 1666   letter-spacing: -1.5px;
1667 1667   }
1668 1668  
1669 - .hero.hero-saas .lead {
1866 + #mainContentArea .hero.hero-saas .lead {
1670 1670   font-size: 17px;
1671 1671   }
1672 1672  
1673 - .hero-layout {
1674 - gap: 28px;
1870 + #mainContentArea .hero.hero-saas .benefits {
1871 + grid-template-columns: 1fr;
1675 1675   }
1676 1676  
1677 - .hero-image {
1874 + #mainContentArea .hero-image {
1678 1678   max-width: 100%;
1679 1679   }
1877 +}
1680 1680  
1681 - .hero .benefits {
1682 - gap: 4px 10px;
1683 - }
1879 +/* ========== Accessibility / Contrast Improvements ========== */
1684 1684  
1685 - .product-card {
1686 - grid-template-columns: 1fr;
1687 - padding: 26px 22px;
1688 - text-align: left;
1881 +/* Make the global background softer and less distracting. */
1882 +body {
1883 + background:
1884 + radial-gradient(circle at 12% 8%, rgba(0, 147, 125, 0.035) 0, transparent 26%),
1885 + radial-gradient(circle at 90% 28%, rgba(7, 24, 45, 0.025) 0, transparent 30%),
1886 + linear-gradient(180deg, #fff 0, @brand-bg 42%, #fff 100%) !important;
1887 + background-attachment: scroll;
1888 +}
1689 1689  
1690 - &:before {
1691 - width: 4px;
1692 - }
1890 +/* Keep the article area readable while preserving the page background around it. */
1891 +#mainContentArea .resource-layout {
1892 + padding: 28px;
1893 + border: 1px solid fade(@line, 85%);
1894 + border-radius: @radius;
1895 + background: rgba(255, 255, 255, .88);
1896 + box-shadow: @shadow-sm;
1897 +}
1693 1693  
1694 - .product-card-icon {
1695 - margin-bottom: 2px;
1696 - }
1899 +/* Ensure all reusable cards have a real surface, not transparent over the gradient. */
1900 +#mainContentArea .widget,
1901 +#mainContentArea .pathway-card,
1902 +#mainContentArea .service-card,
1903 +#mainContentArea .resource-card,
1904 +#mainContentArea .services .service,
1905 +#mainContentArea .product-card,
1906 +#mainContentArea .product-feature,
1907 +#mainContentArea .product-summary-card,
1908 +#mainContentArea .product-info-card {
1909 + background: #fff;
1910 +}
1697 1697  
1698 - h3 {
1699 - font-size: 22px;
1700 - }
1701 - }
1912 +/* Make notes more readable and visually stronger. */
1913 +#mainContentArea .resource-note {
1914 + border: 1px solid fade(@brand, 18%);
1915 + border-left: 4px solid @brand;
1916 + background: #fff;
1917 + box-shadow: 0 10px 28px rgba(15, 23, 42, .045);
1918 +}
1702 1702  
1703 - .product-card-actions {
1704 - gap: 12px;
1705 - }
1920 +/* Keep the sidebar clearly separated from the background. */
1921 +#mainContentArea .resource-sidebar {
1922 + background: #fff;
1923 +}
1706 1706  
1707 - .product-feature {
1708 - .card-heading,
1709 - .feature-heading {
1710 - gap: 12px;
1711 - }
1925 +/* Make CTA panels stand out more clearly. */
1926 +#mainContentArea .resource-cta,
1927 +#mainContentArea .resource-inline-cta {
1928 + background: #fff;
1929 +}
1712 1712  
1713 - .feature-icon {
1714 - width: 42px;
1715 - height: 42px;
1716 - font-size: 16px;
1717 - }
1718 - }
1931 +/* Improve table readability on long resource pages. */
1932 +#mainContentArea .resource-content table {
1933 + background: #fff;
1934 +}
1719 1719  
1720 - .gallery.xGallery {
1721 - width: 100%;
1722 - height: 56vw;
1723 - max-height: 360px;
1724 - margin-top: 22px !important;
1725 - }
1936 +#mainContentArea .resource-content table th {
1937 + color: @text;
1938 + background: #F8FAFC;
1939 +}
1726 1726  
1727 - .product-gallery-caption {
1728 - margin-top: 10px;
1729 - padding: 0 14px;
1941 +#mainContentArea .resource-content table td {
1942 + color: @text-soft;
1943 +}
1944 +
1945 +/* Slightly improve paragraph/list contrast in long articles. */
1946 +#mainContentArea .resource-content p,
1947 +#mainContentArea .resource-content li {
1948 + color: @text-soft;
1949 +}
1950 +
1951 +#mainContentArea .resource-content .resource-note p,
1952 +#mainContentArea .resource-content .resource-checklist li,
1953 +#mainContentArea .resource-content .process-list li {
1954 + color: @muted;
1955 +}
1956 +
1957 +@media (max-width: 900px) {
1958 + #mainContentArea .resource-layout {
1959 + padding: 22px;
1730 1730   }
1961 +}
1731 1731  
1732 - .product-summary-card .process-list li {
1733 - padding-left: 46px;
1963 +@media (max-width: 640px) {
1964 + #mainContentArea .resource-layout {
1965 + padding: 18px;
1966 + border-radius: 14px;
1734 1734   }
1735 1735  }
1969 +
1970 +