Changes for page Public Web Site

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

From version 28.38
edited by Agnease
on 2026/07/03 14:17
Change comment: There is no comment for this version
To version 26.4
edited by Agnease
on 2026/07/01 17:07
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>
27 - </div>
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>
28 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 40   </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>
41 41   </div>
42 - </section>
41 + </div>
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="contrast-band" aria-labelledby="industry-trust-title">
152 + <section class="industry-trust-section" aria-labelledby="industry-trust-title">
153 153   <div class="container">
154 - <div class="contrast-panel">
154 + <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">
162 + <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">
173 + <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.
XWiki.StyleSheetExtension[0]
code
... ... @@ -1,20 +1,8 @@
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;
18 18  @brand-bg: #F7F9FC;
19 19  @text: #07182D;
20 20  @text-soft: #10243D;
... ... @@ -23,32 +23,50 @@
23 23  @radius: 18px;
24 24  @shadow-sm: 0 18px 45px rgba(15, 23, 42, .06);
25 25  @shadow: 0 30px 80px rgba(15, 23, 42, .12);
26 -@maxw: 1140px;
14 +@maxw: 1240px;
27 27  
28 -@section-padding: 30px 0;
29 -@section-padding-mobile: 28px 0;
16 +@section-padding: 42px 0;
17 +@section-padding-mobile: 34px 0;
30 30  
31 31  /* ========== Base ========== */
32 32  
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 +
33 33  #mainContentArea {
34 - padding: 0;
38 + padding: 0 !important;
39 + overflow-x: hidden;
40 + background: transparent !important;
41 + background-image: none !important;
35 35  }
36 36  
37 37  .container {
45 + width: 100%;
38 38   max-width: @maxw;
39 39   margin-left: auto;
40 40   margin-right: auto;
41 - padding-left: 18px;
42 - padding-right: 18px;
49 + padding-left: 24px;
50 + padding-right: 24px;
51 + box-sizing: border-box;
43 43  }
44 44  
45 -html {
46 - scroll-behavior: smooth;
47 -}
48 -
49 49  section {
50 50   padding: @section-padding;
51 - border-top: 1px solid @line;
56 + border-top: 1px solid fade(@line, 65%);
57 + background: transparent;
52 52  
53 53   &:first-of-type {
54 54   border-top: none;
... ... @@ -67,8 +67,10 @@
67 67  }
68 68  
69 69  h2 {
76 + max-width: 820px;
77 + margin: 0 auto 12px;
70 70   text-align: center;
71 - margin-top: 0;
79 + line-height: 1.24;
72 72  }
73 73  
74 74  .lead {
... ... @@ -79,11 +79,11 @@
79 79  
80 80  .section-intro {
81 81   max-width: 760px;
82 - margin: 0 auto 22px;
83 - text-align: center;
90 + margin: 0 auto 24px;
84 84   color: @muted;
92 + text-align: center;
85 85   font-size: 16px;
86 - line-height: 1.55;
94 + line-height: 1.6;
87 87  }
88 88  
89 89  a {
... ... @@ -95,15 +95,42 @@
95 95   }
96 96  }
97 97  
98 -/* ========== Header / Navigation ========== */
106 +/* ========== XWiki / Bootstrap Header Override ========== */
99 99  
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 +
100 100  .site-header {
101 101   position: sticky;
102 102   top: 0;
103 103   z-index: 1000;
104 - background: fade(#fff, 96%);
105 - border-bottom: 1px solid fade(@line, 85%);
106 - backdrop-filter: blur(8px);
139 + background: fade(#fff, 72%);
140 + border-bottom: 1px solid fade(@line, 70%);
141 + backdrop-filter: blur(14px);
107 107  }
108 108  
109 109  .header-inner {
... ... @@ -123,7 +123,7 @@
123 123   a {
124 124   color: @text;
125 125   text-decoration: none;
126 - font-weight: 600;
161 + font-weight: 700;
127 127  
128 128   &:hover,
129 129   &:focus {
... ... @@ -134,16 +134,16 @@
134 134  
135 135   .nav-cta {
136 136   color: #fff;
137 - background: @brand;
138 - border: 1px solid @brand;
139 - border-radius: 6px;
172 + background: @text;
173 + border: 1px solid @text;
174 + border-radius: 10px;
140 140   padding: 8px 14px;
141 141  
142 142   &:hover,
143 143   &:focus {
144 144   color: #fff;
145 - background: @brand-strong;
146 - border-color: @brand-strong;
180 + background: @text-soft;
181 + border-color: @text-soft;
147 147   }
148 148   }
149 149  }
... ... @@ -150,24 +150,44 @@
150 150  
151 151  /* ========== Buttons ========== */
152 152  
153 -/*.btn-primary {
154 - background: @brand;
155 - border-color: @brand;
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;
156 156   color: #fff;
157 157  
158 158   &:hover,
159 159   &:focus {
160 - background: @brand-strong;
161 - border-color: @brand-strong;
207 + background: @text-soft;
208 + border-color: @text-soft;
162 162   color: #fff;
210 + text-decoration: none;
163 163   }
164 164  }
165 -*/
213 +
166 166  .btn-secondary {
167 167   color: @text;
168 168   background: #fff;
169 - border: 1px solid fade(@text, 35%);
217 + border: 1px solid fade(@text, 24%);
170 170  
219 + &:hover,
220 + &:focus {
221 + color: @text;
222 + background: #F8FAFC;
223 + border-color: fade(@text, 42%);
224 + text-decoration: none;
225 + }
171 171  }
172 172  
173 173  /* ========== Hero ========== */
... ... @@ -174,15 +174,14 @@
174 174  
175 175  .hero {
176 176   overflow: hidden;
177 - background-repeat: no-repeat;
178 - background-attachment: scroll;
232 + background: transparent;
179 179  
180 180   &.hero-centered {
181 - text-align: center;
235 + min-height: 330px;
182 182   display: flex;
183 183   align-items: center;
184 184   justify-content: center;
185 - min-height: 330px;
239 + text-align: center;
186 186   }
187 187  
188 188   .hero-inner {
... ... @@ -202,9 +202,9 @@
202 202  
203 203   .lead {
204 204   max-width: 820px;
259 + margin-top: 12px;
205 205   font-size: 19px;
206 206   line-height: 1.55;
207 - margin-top: 12px;
208 208   }
209 209  
210 210   .benefits {
... ... @@ -228,14 +228,15 @@
228 228   display: inline-flex;
229 229   align-items: center;
230 230   gap: 8px;
231 - color: @brand;
285 + width: fit-content;
286 + color: @brand-strong;
232 232   background: fade(@brand, 8%);
233 - border: 1px solid fade(@brand, 18%);
288 + border: 1px solid fade(@brand, 22%);
234 234   border-radius: 999px;
235 235   padding: 6px 12px;
236 236   margin-bottom: 14px;
237 237   font-size: 13px;
238 - font-weight: 700;
293 + font-weight: 800;
239 239  }
240 240  
241 241  .hero-actions,
... ... @@ -247,129 +247,138 @@
247 247   margin-top: 22px;
248 248  }
249 249  
250 -/* ========== Contrast Band ========== */
305 +/* ========== SaaS Hero With Attached Image ========== */
251 251  
252 -.contrast-band {
253 - position: relative;
254 - z-index: 0;
255 - overflow: visible; /* allow pseudo-element to escape */
256 - padding: 54px 0;
257 - border-top: 0;
258 - color: #fff;
307 +.hero.hero-saas {
308 + min-height: auto;
309 + padding: 60px 0 34px;
310 + display: flex;
311 + align-items: center;
312 + background: transparent;
313 +}
259 259  
260 - /* Remove gradient from here */
261 - background: none;
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 262  }
263 263  
264 -/* Full‑bleed gradient background */
265 -.contrast-band::before {
266 - border: 2px solid red;
267 - content: "";
268 - position: absolute;
269 - top: 0;
270 - left: 50%;
271 - width: 100vw; /* full viewport width */
272 - height: 100%;
273 - transform: translateX(-50%);
274 - z-index: -1;
324 +.hero-copy {
325 + min-width: 0;
326 + text-align: left;
327 +}
275 275  
276 - background:
277 - radial-gradient(circle at 18% 18%, fade(@brand, 22%) 0%, transparent 28%),
278 - radial-gradient(circle at 86% 12%, fade(@brand, 16%) 0%, transparent 30%),
279 - linear-gradient(135deg, @text 0%, @text-soft 100%);
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;
280 280  }
281 281  
282 -/* Grid overlay stays exactly as you had it */
283 -.contrast-band::after {
284 - content: "";
285 - position: absolute;
286 - inset: 0;
287 - background:
288 - linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px),
289 - linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px);
290 - background-size: 52px 52px;
291 - opacity: .38;
292 - pointer-events: none;
293 - z-index: 0;
338 +.hero.hero-saas h1 span {
339 + color: @brand;
294 294  }
295 295  
296 -.contrast-band .container {
297 - position: relative;
298 - z-index: 1;
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;
299 299  }
300 300  
301 -/* Everything below stays unchanged */
302 -.contrast-panel {
303 - max-width: 1040px;
304 - margin: 0 auto;
305 - text-align: center;
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;
306 306  }
307 307  
308 -.contrast-band h2 {
309 - max-width: 860px;
310 - margin: 0 auto 12px;
311 - color: #fff;
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;
312 312  }
313 313  
314 -.contrast-band .section-intro {
315 - max-width: 840px;
316 - margin: 0 auto 26px;
317 - color: #D9E3EE;
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;
318 318  }
319 319  
320 -.contrast-tags {
321 - max-width: 940px;
322 - margin: 0 auto;
323 - display: flex;
324 - flex-wrap: wrap;
325 - justify-content: center;
326 - gap: 10px;
384 +.hero.hero-saas .hero-actions,
385 +.hero.hero-saas #hero-cta {
386 + justify-content: flex-start;
387 + margin-top: 0;
327 327  }
328 328  
329 -.contrast-tags span {
330 - display: inline-flex;
390 +.hero-image-wrapper {
391 + min-width: 0;
392 + display: flex;
393 + justify-content: center;
331 331   align-items: center;
332 - padding: 8px 13px;
333 - border: 1px solid fade(#fff, 18%);
334 - border-radius: 999px;
335 - background: fade(#fff, 8%);
336 - color: #F8FAFC;
337 - font-size: 13px;
338 - font-weight: 700;
339 - line-height: 1.2;
340 340  }
341 341  
342 -.contrast-tags span::before {
343 - content: "";
344 - width: 7px;
345 - height: 7px;
346 - margin-right: 8px;
347 - border-radius: 50%;
348 - background: @brand;
349 - box-shadow: 0 0 0 4px fade(@brand, 18%);
397 +.hero-image {
398 + display: block;
399 + width: 100%;
400 + max-width: 620px;
401 + height: auto;
402 + border: 0;
350 350  }
351 351  
352 -.contrast-support {
353 - max-width: 860px;
354 - margin: 30px auto 0;
355 - color: #D9E3EE;
356 - text-align: center;
357 - font-size: 15px;
358 - line-height: 1.7;
359 -}
405 +/* ========== Trust Strip ========== */
360 360  
361 -@media (max-width: 640px) {
362 - .contrast-band {
363 - padding: 40px 0;
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;
364 364   }
365 365  
366 - .contrast-tags span {
367 - font-size: 12px;
368 - padding: 8px 11px;
426 + li {
427 + display: flex;
428 + align-items: center;
429 + gap: 7px;
369 369   }
431 +
432 + i {
433 + color: @brand;
434 + }
370 370  }
371 371  
372 -
373 373  /* ========== Reusable Grids ========== */
374 374  
375 375  .card-grid,
... ... @@ -378,7 +378,7 @@
378 378  .resource-grid,
379 379  .widgets {
380 380   display: grid;
381 - grid-gap: 18px;
445 + grid-gap: 22px;
382 382   margin-left: auto;
383 383   margin-right: auto;
384 384  }
... ... @@ -388,19 +388,19 @@
388 388  .services-grid {
389 389   grid-template-columns: repeat(3, minmax(0, 1fr));
390 390   max-width: 1040px;
391 - margin-top: 22px;
455 + margin-top: 24px;
392 392  }
393 393  
394 394  .resource-grid {
395 395   grid-template-columns: repeat(2, minmax(0, 1fr));
396 396   max-width: 1040px;
397 - margin-top: 22px;
461 + margin-top: 24px;
398 398  }
399 399  
400 400  .widgets {
401 401   grid-template-columns: repeat(4, minmax(0, 1fr));
402 402   max-width: 1040px;
403 - margin-top: 20px;
467 + margin-top: 22px;
404 404  }
405 405  
406 406  .card-grid > *,
... ... @@ -416,7 +416,19 @@
416 416  .widget,
417 417  .pathway-card,
418 418  .service-card,
419 -.resource-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;
420 420   border: 1px solid @line;
421 421   border-radius: @radius;
422 422   box-shadow: @shadow-sm;
... ... @@ -474,12 +474,13 @@
474 474   .pathway-icon {
475 475   width: 52px;
476 476   height: 52px;
477 - border-radius: 50%;
553 + border-radius: 16px;
478 478   display: flex;
479 479   align-items: center;
480 480   justify-content: center;
481 481   color: @brand;
482 482   background: fade(@brand, 10%);
559 + border: 1px solid fade(@brand, 18%);
483 483   font-size: 19px;
484 484   flex-shrink: 0;
485 485   }
... ... @@ -526,6 +526,59 @@
526 526   }
527 527  }
528 528  
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 +
529 529  /* ========== Services ========== */
530 530  
531 531  .services {
... ... @@ -538,6 +538,7 @@
538 538   align-items: flex-start;
539 539   gap: 16px;
540 540   padding: 22px;
671 + background: #fff;
541 541   border: 1px solid @line;
542 542   border-radius: @radius;
543 543   box-shadow: @shadow-sm;
... ... @@ -545,7 +545,7 @@
545 545   .service-icon {
546 546   width: 46px;
547 547   height: 46px;
548 - border-radius: 50%;
679 + border-radius: 14px;
549 549   display: flex;
550 550   align-items: center;
551 551   justify-content: center;
... ... @@ -552,6 +552,7 @@
552 552   font-size: 18px;
553 553   color: @brand;
554 554   background: fade(@brand, 10%);
686 + border: 1px solid fade(@brand, 18%);
555 555   flex-shrink: 0;
556 556   margin-top: 2px;
557 557   }
... ... @@ -589,8 +589,7 @@
589 589  /* ========== Split / Process Section ========== */
590 590  
591 591  .split-section {
592 - background:
593 - radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 65%);
724 + background: transparent;
594 594  }
595 595  
596 596  .split-grid {
... ... @@ -625,9 +625,6 @@
625 625   position: relative;
626 626   padding: 16px 16px 16px 58px;
627 627   margin-bottom: 12px;
628 - border: 1px solid @line;
629 - border-radius: @radius;
630 - box-shadow: @shadow-sm;
631 631   color: @muted;
632 632   line-height: 1.5;
633 633  
... ... @@ -657,8 +657,9 @@
657 657  
658 658  /* ========== Resources ========== */
659 659  
660 -.resource-strip {
661 - background: @brand-bg;
788 +.resource-strip,
789 +.homepage-resource-strip {
790 + background: transparent;
662 662  }
663 663  
664 664  .resource-card {
... ... @@ -686,9 +686,6 @@
686 686  /* ========== Homepage Resource Strip ========== */
687 687  
688 688  .homepage-resource-strip {
689 - background:
690 - radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 70%);
691 -
692 692   .resource-grid {
693 693   max-width: 1040px;
694 694   margin: 22px auto 0;
... ... @@ -734,30 +734,10 @@
734 734   }
735 735  }
736 736  
737 -@media (max-width: 980px) {
738 - .homepage-resource-strip {
739 - .resource-grid {
740 - grid-template-columns: 1fr;
741 - }
742 - }
743 -}
744 -
745 -@media (max-width: 640px) {
746 - .homepage-resource-strip {
747 - .resource-card {
748 - padding: 22px;
749 - }
750 -
751 - .resource-card h4 {
752 - font-size: 19px;
753 - }
754 - }
755 -}
756 -
757 757  /* ========== CTA ========== */
758 758  
759 -#mainContentArea .cta-section {
760 - padding: 44px 0 56px;
865 +.cta-section {
866 + padding: @section-padding;
761 761  
762 762   .contact-inline {
763 763   margin: 0;
... ... @@ -769,70 +769,22 @@
769 769   }
770 770  }
771 771  
772 -#mainContentArea .cta-panel {
773 - position: relative;
774 - overflow: hidden;
775 - max-width: 1040px;
878 +.cta-panel {
879 + max-width: 860px;
776 776   margin: 0 auto;
777 - padding: 48px 40px;
778 - border: 0;
779 - border-radius: 26px;
780 - background:
781 - radial-gradient(circle at 88% 10%, fade(@brand, 24%) 0%, transparent 30%),
782 - linear-gradient(135deg, @text 0%, @text-soft 100%);
783 - color: #fff;
784 - box-shadow: @shadow;
881 + padding: 32px;
785 785   text-align: center;
786 -}
787 787  
788 -#mainContentArea .cta-panel::before {
789 - content: "";
790 - position: absolute;
791 - inset: 0;
792 - background:
793 - linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px),
794 - linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px);
795 - background-size: 48px 48px;
796 - opacity: .4;
797 - pointer-events: none;
798 -}
884 + h2 {
885 + margin-top: 0;
886 + }
799 799  
800 -#mainContentArea .cta-panel h2,
801 -#mainContentArea .cta-panel p,
802 -#mainContentArea .cta-panel .btn {
803 - position: relative;
804 - z-index: 1;
888 + p {
889 + color: @muted;
890 + line-height: 1.55;
891 + }
805 805  }
806 806  
807 -#mainContentArea .cta-panel h2 {
808 - max-width: 760px;
809 - margin: 0 auto 16px;
810 - color: #fff;
811 -}
812 -
813 -#mainContentArea .cta-panel p {
814 - max-width: 760px;
815 - margin: 0 auto 28px;
816 - color: #DBE4EF;
817 - font-size: 16px;
818 - line-height: 1.6;
819 -}
820 -
821 -#mainContentArea .cta-panel .btn-primary {
822 - border-color: #fff;
823 - background: #fff;
824 - color: @text;
825 - box-shadow: 0 18px 42px rgba(0, 0, 0, .18);
826 -}
827 -
828 -#mainContentArea .cta-panel .btn-primary:hover,
829 -#mainContentArea .cta-panel .btn-primary:focus {
830 - border-color: #fff;
831 - background: #fff;
832 - color: @brand-strong;
833 - text-decoration: none;
834 -}
835 -
836 836  .resource-inline-cta {
837 837   display: flex;
838 838   align-items: center;
... ... @@ -840,10 +840,6 @@
840 840   gap: 22px;
841 841   margin: 30px 0;
842 842   padding: 20px 22px;
843 - border: 1px solid fade(@brand, 22%);
844 - border-radius: @radius;
845 - background: @brand-bg;
846 - box-shadow: @shadow-sm;
847 847  
848 848   p {
849 849   margin: 0;
... ... @@ -860,129 +860,17 @@
860 860   }
861 861  }
862 862  
863 -@media (max-width: 767px) {
864 - .resource-inline-cta {
865 - display: block;
866 - text-align: center;
867 -
868 - p {
869 - margin-bottom: 14px;
870 - }
871 -
872 - .btn {
873 - display: inline-block;
874 - margin-left: auto;
875 - margin-right: auto;
876 - }
877 - }
878 -}
879 -
880 -/* ========== Responsive ========== */
881 -
882 -@media (max-width: 980px) {
883 - .widgets,
884 - .pathways,
885 - .services-grid,
886 - .resource-grid {
887 - grid-template-columns: repeat(2, minmax(0, 1fr));
888 - }
889 -
890 - .split-grid {
891 - grid-template-columns: 1fr;
892 - }
893 -
894 - .split-copy h2 {
895 - text-align: center;
896 - }
897 -}
898 -
899 -@media (max-width: 760px) {
900 - section[id] {
901 - scroll-margin-top: 132px;
902 - }
903 -
904 - .header-inner {
905 - min-height: auto;
906 - padding-top: 14px;
907 - padding-bottom: 14px;
908 - flex-direction: column;
909 - align-items: center;
910 - gap: 12px;
911 - }
912 -
913 - .site-nav {
914 - width: 100%;
915 - justify-content: center;
916 - flex-wrap: wrap;
917 - gap: 10px 16px;
918 - font-size: 14px;
919 -
920 - .nav-cta {
921 - padding: 7px 12px;
922 - }
923 - }
924 -
925 - .hero.hero-centered {
926 - min-height: 280px;
927 - }
928 -
929 - .hero {
930 - .lead {
931 - font-size: 17px;
932 - }
933 -
934 - .benefits {
935 - gap: 4px 10px;
936 -
937 - li + li::before {
938 - content: none;
939 - }
940 - }
941 - }
942 -}
943 -
944 -@media (max-width: 640px) {
945 - section {
946 - padding: @section-padding-mobile;
947 - }
948 -
949 - .widgets,
950 - .pathways,
951 - .services-grid,
952 - .resource-grid {
953 - grid-template-columns: 1fr;
954 - }
955 -
956 - .pathway-card,
957 - .services .service,
958 - .resource-card,
959 - .widget {
960 - padding: 20px;
961 - }
962 -
963 - .services .service {
964 - gap: 14px;
965 - }
966 -
967 - #mainContentArea .cta-panel {
968 - padding: 30px 22px;
969 - border-radius: 20px;
970 - }
971 -
972 - #mainContentArea .cta-panel .btn-primary {
973 - width: 100%;
974 - }
975 -}
976 -
977 977  /* ========== Resource / Article Pages ========== */
978 978  
979 979  .resource-page {
980 980   padding-top: 0;
921 + background: transparent;
981 981  }
982 982  
983 983  .resource-header {
984 984   padding: @section-padding;
985 985   border-top: none;
927 + background: transparent;
986 986  
987 987   h1 {
988 988   margin: 0 auto 14px;
... ... @@ -1050,7 +1050,6 @@
1050 1050  
1051 1051  .resource-note {
1052 1052   border-left: 4px solid @brand;
1053 - background: @brand-bg;
1054 1054   padding: 16px 18px;
1055 1055   margin: 22px 0;
1056 1056   border-radius: 0 @radius @radius 0;
... ... @@ -1127,10 +1127,7 @@
1127 1127   margin-bottom: 28px;
1128 1128   position: sticky;
1129 1129   top: 96px;
1130 - border: 1px solid @line;
1131 - border-radius: @radius;
1132 1132   padding: 18px;
1133 - box-shadow: @shadow-sm;
1134 1134  
1135 1135   h4 {
1136 1136   margin: 0 0 10px;
... ... @@ -1161,9 +1161,6 @@
1161 1161   max-width: 820px;
1162 1162   margin: 42px auto 0;
1163 1163   padding: 28px 30px;
1164 - border: 1px solid fade(@brand, 20%);
1165 - border-radius: @radius;
1166 - background: @brand-bg;
1167 1167  
1168 1168   h3 {
1169 1169   margin-top: 0;
... ... @@ -1188,26 +1188,6 @@
1188 1188   display: flow-root;
1189 1189  }
1190 1190  
1191 -@media (max-width: 767px) {
1192 - .resource-cta {
1193 - padding: 24px 20px;
1194 - }
1195 -}
1196 -
1197 -@media (max-width: 900px) {
1198 - .resource-layout {
1199 - padding-top: 22px;
1200 - }
1201 -
1202 - .resource-sidebar {
1203 - float: none;
1204 - width: 100%;
1205 - margin-left: 0;
1206 - margin-bottom: 24px;
1207 - position: static;
1208 - }
1209 -}
1210 -
1211 1211  /* ========== Products / Extensions Pages ========== */
1212 1212  
1213 1213  .product-index-section {
... ... @@ -1228,9 +1228,6 @@
1228 1228  
1229 1229  .product-card {
1230 1230   position: relative;
1231 - border: 1px solid @line;
1232 - border-radius: @radius;
1233 - box-shadow: @shadow-sm;
1234 1234   padding: 32px;
1235 1235   display: grid;
1236 1236   grid-template-columns: 70px 1fr;
... ... @@ -1249,7 +1249,7 @@
1249 1249   .product-card-icon {
1250 1250   width: 58px;
1251 1251   height: 58px;
1252 - border-radius: 50%;
1164 + border-radius: 16px;
1253 1253   background: fade(@brand, 10%);
1254 1254   border: 1px solid fade(@brand, 22%);
1255 1255   color: @brand;
... ... @@ -1338,30 +1338,6 @@
1338 1338   }
1339 1339  }
1340 1340  
1341 -@media (max-width: 640px) {
1342 - .product-card {
1343 - grid-template-columns: 1fr;
1344 - padding: 26px 22px;
1345 - text-align: left;
1346 -
1347 - &:before {
1348 - width: 4px;
1349 - }
1350 -
1351 - .product-card-icon {
1352 - margin-bottom: 2px;
1353 - }
1354 -
1355 - h3 {
1356 - font-size: 22px;
1357 - }
1358 - }
1359 -
1360 - .product-card-actions {
1361 - gap: 12px;
1362 - }
1363 -}
1364 -
1365 1365  /* ========== Individual Product Pages ========== */
1366 1366  
1367 1367  .product-layout {
... ... @@ -1373,15 +1373,6 @@
1373 1373   align-items: start;
1374 1374  }
1375 1375  
1376 -.product-summary-card,
1377 -.product-info-card,
1378 -.product-feature,
1379 -.product-gallery-panel {
1380 - border: 1px solid @line;
1381 - border-radius: @radius;
1382 - box-shadow: @shadow-sm;
1383 -}
1384 -
1385 1385  .product-summary-card {
1386 1386   padding: 28px;
1387 1387  
... ... @@ -1458,8 +1458,9 @@
1458 1458   .feature-icon {
1459 1459   width: 46px;
1460 1460   height: 46px;
1461 - border-radius: 50%;
1340 + border-radius: 14px;
1462 1462   background: fade(@brand, 10%);
1342 + border: 1px solid fade(@brand, 18%);
1463 1463   color: @brand;
1464 1464   display: flex;
1465 1465   align-items: center;
... ... @@ -1492,16 +1492,16 @@
1492 1492  }
1493 1493  
1494 1494  /* Keep the default XWiki gallery style.
1495 - Only add spacing before it and center it. */
1375 + Only set size, top spacing and centering. */
1496 1496  .gallery.xGallery {
1497 1497   margin: 25px auto;
1498 1498   width: 920px;
1379 + max-width: 100%;
1499 1499   height: 518px;
1500 1500  }
1501 1501  
1502 1502  .product-section-muted {
1503 - background:
1504 - radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 65%);
1384 + background: transparent;
1505 1505  }
1506 1506  
1507 1507  /* Compact process list when used inside a product card. */
... ... @@ -1560,378 +1560,296 @@
1560 1560   justify-content: center;
1561 1561  }
1562 1562  
1563 -@media (max-width: 980px) {
1564 - .product-layout,
1565 - .product-feature-grid {
1566 - grid-template-columns: 1fr;
1567 - }
1443 +/* ========== Resources Index ========== */
1568 1568  
1569 - .product-summary-card h2 {
1570 - text-align: center;
1445 +.resources-index-page {
1446 + background: transparent;
1447 +
1448 + .services-grid {
1449 + grid-template-columns: repeat(2, minmax(0, 1fr));
1571 1571   }
1572 1572  }
1573 1573  
1574 -@media (max-width: 640px) {
1575 - .product-card {
1453 +/* ========== Responsive ========== */
1454 +
1455 +@media (max-width: 1100px) {
1456 + .hero-layout {
1457 + max-width: 760px;
1576 1576   grid-template-columns: 1fr;
1577 - padding: 22px;
1578 - text-align: left;
1459 + gap: 34px;
1460 + }
1579 1579  
1580 - .product-card-icon {
1581 - margin-bottom: 2px;
1582 - }
1462 + .hero-copy {
1463 + order: 1;
1464 + text-align: center;
1583 1583   }
1584 1584  
1585 - .product-summary-card,
1586 - .product-info-card,
1587 - .product-feature,
1588 - .product-gallery-panel {
1589 - padding: 20px;
1467 + .hero-image-wrapper {
1468 + order: 2;
1590 1590   }
1591 1591  
1592 - .product-feature {
1593 - .card-heading,
1594 - .feature-heading {
1595 - gap: 12px;
1596 - }
1471 + .hero.hero-saas h1 {
1472 + margin-left: auto;
1473 + margin-right: auto;
1474 + text-align: center;
1475 + }
1597 1597  
1598 - .feature-icon {
1599 - width: 42px;
1600 - height: 42px;
1601 - font-size: 16px;
1602 - }
1477 + .hero.hero-saas .lead {
1478 + margin-left: auto;
1479 + margin-right: auto;
1480 + text-align: center;
1603 1603   }
1604 1604  
1605 - .gallery.xGallery {
1606 - margin-top: 22px !important;
1483 + .hero.hero-saas .benefits {
1484 + margin-left: auto;
1485 + margin-right: auto;
1607 1607   }
1608 1608  
1609 - .product-gallery-caption {
1610 - margin-top: 10px;
1611 - padding: 0 14px;
1488 + .hero.hero-saas .hero-actions,
1489 + .hero.hero-saas #hero-cta {
1490 + justify-content: center;
1612 1612   }
1613 1613  
1614 - .product-summary-card .process-list li {
1615 - padding-left: 46px;
1493 + .hero-image {
1494 + max-width: 620px;
1616 1616   }
1617 1617  }
1618 1618  
1619 -/* ========== Resources Index ========== */
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 + }
1620 1620  
1621 -.resources-index-page {
1506 + .split-grid,
1507 + .product-layout,
1508 + .product-feature-grid {
1509 + grid-template-columns: 1fr;
1510 + }
1622 1622  
1623 - .services-grid {
1624 - grid-template-columns: repeat(2, minmax(0, 1fr));
1512 + .split-copy h2,
1513 + .product-summary-card h2 {
1514 + text-align: center;
1625 1625   }
1626 -}
1627 1627  
1628 -@media (max-width: 980px) {
1629 - .resources-index-page {
1630 - .services-grid {
1517 + .homepage-resource-strip {
1518 + .resource-grid {
1631 1631   grid-template-columns: 1fr;
1632 1632   }
1633 1633   }
1634 -}
1635 1635  
1636 -@media (max-width: 767px) {
1637 1637   .resources-index-page {
1638 - padding: @section-padding-mobile;
1524 + .services-grid {
1525 + grid-template-columns: 1fr;
1526 + }
1639 1639   }
1640 1640  }
1641 1641  
1642 -.resource-faq-item {
1643 - border-bottom: 1px solid @line;
1644 - padding: 12px 0;
1645 -
1646 - summary {
1647 - cursor: pointer;
1648 - font-weight: 700;
1649 - color: @text;
1530 +@media (max-width: 900px) {
1531 + .resource-layout {
1532 + padding-top: 22px;
1650 1650   }
1651 1651  
1652 - p {
1653 - margin: 10px 0 4px;
1654 - color: @muted;
1535 + .resource-sidebar {
1536 + float: none;
1537 + width: 100%;
1538 + margin-left: 0;
1539 + margin-bottom: 24px;
1540 + position: static;
1655 1655   }
1656 1656  }
1657 1657  
1658 -/* ========== Global Theme Background ========== */
1544 +@media (max-width: 767px) {
1545 + section[id] {
1546 + scroll-margin-top: 132px;
1547 + }
1659 1659  
1660 -html,
1661 -body {
1662 - min-height: 100%;
1663 -}
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 + }
1664 1664  
1665 -body {
1666 - color: @text;
1667 - background:
1668 - radial-gradient(circle at 12% 8%, rgba(0, 147, 125, 0.08) 0, transparent 26%),
1669 - radial-gradient(circle at 90% 28%, rgba(7, 24, 45, 0.05) 0, transparent 30%),
1670 - linear-gradient(180deg, #fff 0, @brand-bg 42%, #fff 100%) !important;
1671 - background-attachment: fixed;
1672 -}
1558 + .site-nav {
1559 + width: 100%;
1560 + justify-content: center;
1561 + flex-wrap: wrap;
1562 + gap: 10px 16px;
1563 + font-size: 14px;
1673 1673  
1674 -#mainContentArea {
1675 - padding: 0;
1676 - overflow-x: hidden;
1677 -}
1565 + .nav-cta {
1566 + padding: 7px 12px;
1567 + }
1568 + }
1678 1678  
1679 -/* ========== Main Page Hero / SaaS Layout ========== */
1570 + .hero.hero-centered {
1571 + min-height: 280px;
1572 + }
1680 1680  
1681 -#mainContentArea .hero.hero-saas {
1682 - min-height: auto;
1683 - padding: 60px 0 34px;
1684 - display: flex;
1685 - align-items: center;
1686 - overflow: hidden;
1687 - background: transparent;
1688 -}
1574 + .resource-inline-cta {
1575 + display: block;
1576 + text-align: center;
1689 1689  
1690 -#mainContentArea .hero-layout {
1691 - max-width: 1120px;
1692 - margin: 0 auto;
1693 - display: grid;
1694 - grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
1695 - gap: 56px;
1696 - align-items: center;
1697 -}
1578 + p {
1579 + margin-bottom: 14px;
1580 + }
1698 1698  
1699 -#mainContentArea .hero-copy {
1700 - min-width: 0;
1701 - text-align: left;
1702 -}
1582 + .btn {
1583 + display: inline-block;
1584 + margin-left: auto;
1585 + margin-right: auto;
1586 + }
1587 + }
1703 1703  
1704 -#mainContentArea .hero.hero-saas h1 {
1705 - max-width: 640px;
1706 - margin: 0 0 26px;
1707 - font-size: 60px;
1708 - font-weight: 800;
1709 - line-height: 1;
1710 - letter-spacing: -3px;
1711 -}
1589 + .resource-cta {
1590 + padding: 24px 20px;
1591 + }
1712 1712  
1713 -#mainContentArea .hero.hero-saas h1 span {
1714 - color: @brand;
1593 + .resources-index-page {
1594 + padding: @section-padding-mobile;
1595 + }
1715 1715  }
1716 1716  
1717 -#mainContentArea .hero.hero-saas .lead {
1718 - max-width: 590px;
1719 - margin: 0 0 28px;
1720 - color: #334155;
1721 - text-align: left;
1722 - font-size: 18px;
1723 - line-height: 1.6;
1724 -}
1598 +@media (max-width: 640px) {
1599 + section {
1600 + padding: @section-padding-mobile;
1601 + }
1725 1725  
1726 -#mainContentArea .hero.hero-saas .benefits {
1727 - max-width: 620px;
1728 - margin: 0 0 30px;
1729 - padding: 0;
1730 - display: grid;
1731 - grid-template-columns: repeat(2, minmax(0, 1fr));
1732 - gap: 10px 24px;
1733 - list-style: none;
1734 - color: #475569;
1735 - font-size: 15px;
1736 - text-align: left;
1737 -}
1603 + .container {
1604 + padding-left: 18px;
1605 + padding-right: 18px;
1606 + }
1738 1738  
1739 -#mainContentArea .hero.hero-saas .benefits li {
1740 - display: grid;
1741 - grid-template-columns: 18px minmax(0, 1fr);
1742 - column-gap: 8px;
1743 - align-items: start;
1744 - margin: 0;
1745 - line-height: 1.45;
1746 -}
1747 -
1748 -#mainContentArea .hero.hero-saas .benefits li::before {
1749 - content: "✓";
1750 - display: block;
1751 - width: 18px;
1752 - color: @brand;
1753 - font-weight: 900;
1754 - line-height: 1.45;
1755 - text-align: left;
1756 - margin: 0;
1757 -}
1758 -
1759 -#mainContentArea .hero.hero-saas .hero-actions,
1760 -#mainContentArea .hero.hero-saas #hero-cta {
1761 - display: flex;
1762 - flex-wrap: wrap;
1763 - justify-content: flex-start;
1764 - gap: 12px;
1765 - margin-top: 0;
1766 -}
1767 -
1768 -#mainContentArea .hero-image-wrapper {
1769 - min-width: 0;
1770 - display: flex;
1771 - justify-content: center;
1772 - align-items: center;
1773 -}
1774 -
1775 -#mainContentArea .hero-image {
1776 - display: block;
1777 - width: 100%;
1778 - max-width: 620px;
1779 - height: auto;
1780 - border: 0;
1781 -}
1782 -
1783 -/* ========== Main Page Hero Responsive ========== */
1784 -
1785 -@media (max-width: 1100px) {
1786 - #mainContentArea .hero-layout {
1787 - max-width: 760px;
1608 + .widgets,
1609 + .pathways,
1610 + .services-grid,
1611 + .resource-grid,
1612 + .hero.hero-saas .benefits {
1788 1788   grid-template-columns: 1fr;
1789 - gap: 34px;
1790 1790   }
1791 1791  
1792 - #mainContentArea .hero-copy {
1793 - order: 1;
1794 - text-align: center;
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;
1795 1795   }
1796 1796  
1797 - #mainContentArea .hero-image-wrapper {
1798 - order: 2;
1627 + .services .service {
1628 + gap: 14px;
1799 1799   }
1800 1800  
1801 - #mainContentArea .hero.hero-saas h1 {
1802 - margin-left: auto;
1803 - margin-right: auto;
1804 - text-align: center;
1631 + .cta-panel {
1632 + padding: 24px 20px;
1805 1805   }
1806 1806  
1807 - #mainContentArea .hero.hero-saas .lead {
1808 - margin-left: auto;
1809 - margin-right: auto;
1810 - text-align: center;
1811 - }
1635 + .industry-trust-section {
1636 + .industry-trust-panel {
1637 + padding: 24px 18px;
1638 + }
1812 1812  
1813 - #mainContentArea .hero.hero-saas .benefits {
1814 - margin-left: auto;
1815 - margin-right: auto;
1816 - }
1640 + .industry-tags {
1641 + gap: 8px;
1642 + }
1817 1817  
1818 - #mainContentArea .hero.hero-saas .hero-actions,
1819 - #mainContentArea .hero.hero-saas #hero-cta {
1820 - justify-content: center;
1644 + .industry-tags span {
1645 + font-size: 12px;
1646 + padding: 6px 10px;
1647 + }
1821 1821   }
1822 1822  
1823 - #mainContentArea .hero-image {
1824 - max-width: 620px;
1650 + .homepage-resource-strip {
1651 + .resource-card {
1652 + padding: 22px;
1653 + }
1654 +
1655 + .resource-card h4 {
1656 + font-size: 19px;
1657 + }
1825 1825   }
1826 -}
1827 1827  
1828 -@media (max-width: 640px) {
1829 - #mainContentArea .hero.hero-saas {
1660 + .hero.hero-saas {
1830 1830   padding: 42px 0 28px;
1831 1831   }
1832 1832  
1833 - #mainContentArea .hero-layout {
1834 - gap: 28px;
1835 - }
1836 -
1837 - #mainContentArea .hero.hero-saas h1 {
1664 + .hero.hero-saas h1 {
1838 1838   font-size: 42px;
1839 1839   letter-spacing: -1.5px;
1840 1840   }
1841 1841  
1842 - #mainContentArea .hero.hero-saas .lead {
1669 + .hero.hero-saas .lead {
1843 1843   font-size: 17px;
1844 1844   }
1845 1845  
1846 - #mainContentArea .hero.hero-saas .benefits {
1847 - grid-template-columns: 1fr;
1673 + .hero-layout {
1674 + gap: 28px;
1848 1848   }
1849 1849  
1850 - #mainContentArea .hero-image {
1677 + .hero-image {
1851 1851   max-width: 100%;
1852 1852   }
1853 -}
1854 1854  
1855 -/* ========== Accessibility / Contrast Improvements ========== */
1681 + .hero .benefits {
1682 + gap: 4px 10px;
1683 + }
1856 1856  
1857 -/* Keep the article area readable while preserving the page background around it. */
1858 -/*#mainContentArea .resource-layout {
1859 - padding: 28px;
1860 - border: 1px solid fade(@line, 85%);
1861 - border-radius: @radius;
1862 - background: rgba(255, 255, 255, .88);
1863 - box-shadow: @shadow-sm;
1864 -}*/
1685 + .product-card {
1686 + grid-template-columns: 1fr;
1687 + padding: 26px 22px;
1688 + text-align: left;
1865 1865  
1866 -/* Ensure all reusable cards have a real surface, not transparent over the gradient. */
1867 -#mainContentArea .widget,
1868 -#mainContentArea .pathway-card,
1869 -#mainContentArea .service-card,
1870 -#mainContentArea .resource-card,
1871 -#mainContentArea .services .service,
1872 -#mainContentArea .product-card,
1873 -#mainContentArea .product-feature,
1874 -#mainContentArea .product-summary-card,
1875 -#mainContentArea .product-info-card {
1876 - background: #fff;
1877 -}
1690 + &:before {
1691 + width: 4px;
1692 + }
1878 1878  
1879 -/* Make notes more readable and visually stronger. */
1880 -#mainContentArea .resource-note {
1881 - border: 1px solid fade(@brand, 18%);
1882 - border-left: 4px solid @brand;
1883 - background: #fff;
1884 - box-shadow: 0 10px 28px rgba(15, 23, 42, .045);
1885 -}
1694 + .product-card-icon {
1695 + margin-bottom: 2px;
1696 + }
1886 1886  
1887 -/* Keep the sidebar clearly separated from the background. */
1888 -#mainContentArea .resource-sidebar {
1889 - background: #fff;
1890 -}
1698 + h3 {
1699 + font-size: 22px;
1700 + }
1701 + }
1891 1891  
1892 -/* Make CTA panels stand out more clearly. */
1893 -#mainContentArea .resource-cta,
1894 -#mainContentArea .resource-inline-cta {
1895 - background: #fff;
1896 -}
1703 + .product-card-actions {
1704 + gap: 12px;
1705 + }
1897 1897  
1898 -/* Improve table readability on long resource pages. */
1899 -#mainContentArea .resource-content table {
1900 - background: #fff;
1901 -}
1707 + .product-feature {
1708 + .card-heading,
1709 + .feature-heading {
1710 + gap: 12px;
1711 + }
1902 1902  
1903 -#mainContentArea .resource-content table th {
1904 - color: @text;
1905 - background: #F8FAFC;
1906 -}
1713 + .feature-icon {
1714 + width: 42px;
1715 + height: 42px;
1716 + font-size: 16px;
1717 + }
1718 + }
1907 1907  
1908 -#mainContentArea .resource-content table td {
1909 - color: @text-soft;
1910 -}
1720 + .gallery.xGallery {
1721 + width: 100%;
1722 + height: 56vw;
1723 + max-height: 360px;
1724 + margin-top: 22px !important;
1725 + }
1911 1911  
1912 -/* Slightly improve paragraph/list contrast in long articles. */
1913 -#mainContentArea .resource-content p,
1914 -#mainContentArea .resource-content li {
1915 - color: @text-soft;
1916 -}
1917 -
1918 -#mainContentArea .resource-content .resource-note p,
1919 -#mainContentArea .resource-content .resource-checklist li,
1920 -#mainContentArea .resource-content .process-list li {
1921 - color: @muted;
1922 -}
1923 -
1924 -@media (max-width: 900px) {
1925 - #mainContentArea .resource-layout {
1926 - padding: 22px;
1727 + .product-gallery-caption {
1728 + margin-top: 10px;
1729 + padding: 0 14px;
1927 1927   }
1928 -}
1929 1929  
1930 -@media (max-width: 640px) {
1931 - #mainContentArea .resource-layout {
1932 - padding: 18px;
1933 - border-radius: 14px;
1732 + .product-summary-card .process-list li {
1733 + padding-left: 46px;
1934 1934   }
1935 1935  }
1936 -
1937 -