Changes for page Public Web Site

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

From version 21.2
edited by Agnease
on 2026/06/23 08:37
Change comment: There is no comment for this version
To version 28.18
edited by Agnease
on 2026/07/03 13:03
Change comment: There is no comment for this version

Summary

Details

Page properties
Default language
... ... @@ -1,1 +1,0 @@
1 -en
Hidden
... ... @@ -1,1 +1,1 @@
1 -false
1 +true
Content
... ... @@ -2,7 +2,45 @@
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 5  
11 + <p class="lead">
12 + Agnease helps organizations upgrade, maintain, secure and extend production XWiki platforms with practical engineering support, custom development, integrations and long-term care.
13 + </p>
14 +
15 + <ul class="benefits">
16 + <li>XWiki LTS upgrades</li>
17 + <li>Maintenance and support</li>
18 + <li>Custom XWiki development</li>
19 + <li>Migrations and integrations</li>
20 + </ul>
21 +
22 + <div class="hero-actions" id="hero-cta">
23 + <a class="btn btn-primary" href="https://calendly.com/alex-agnease/30min?back=1&month=2026-06">
24 + Book a free discussion
25 + </a>
26 + <a class="btn btn-secondary" href="$xwiki.getURL('services.WebHome')">View XWiki services</a>
27 + </div>
28 + </div>
29 +
30 + <div class="hero-image-wrapper">
31 + <img
32 + class="hero-image"
33 + src="$xwiki.getDocument('PublicWebSite.WebHome').getAttachmentURL('agnease-xwiki-hero.png')"
34 + alt="Illustration of a professional XWiki platform dashboard with upgrade, security and maintenance elements"
35 + width="1200"
36 + height="900"
37 + loading="eager"
38 + />
39 + </div>
40 + </div>
41 + </div>
42 + </section>
43 +#*
6 6   <section class="hero hero-centered" aria-labelledby="hero-title">
7 7   <div class="container hero-inner">
8 8   <h1 id="hero-title">Professional XWiki consulting and engineering</h1>
... ... @@ -26,7 +26,7 @@
26 26   </div>
27 27   </div>
28 28   </section>
29 -
67 +*#
30 30   <section class="trust-strip" aria-label="Agnease experience">
31 31   <div class="container">
32 32   <ul>
... ... @@ -111,9 +111,9 @@
111 111   </div>
112 112   </section>
113 113  
114 - <section class="industry-trust-section" aria-labelledby="industry-trust-title">
152 + <section class="contrast-band" aria-labelledby="industry-trust-title">
115 115   <div class="container">
116 - <div class="industry-trust-panel">
154 + <div class="contrast-panel">
117 117   <h2 id="industry-trust-title">Trusted XWiki expertise for business-critical platforms</h2>
118 118  
119 119   <p class="section-intro">
... ... @@ -121,7 +121,7 @@
121 121   government institutions, transportation, software development, compliance programs and regulated environments.
122 122   </p>
123 123  
124 - <div class="industry-tags" aria-label="Industries and environments supported">
162 + <div class="contrast-tags" aria-label="Industries and environments supported">
125 125   <span>Healthcare</span>
126 126   <span>Financial services</span>
127 127   <span>Scientific research</span>
... ... @@ -132,7 +132,7 @@
132 132   <span>Regulated environments</span>
133 133   </div>
134 134  
135 - <p class="industry-support">
173 + <p class="contrast-support">
136 136   Organizations rely on these platforms to manage documentation, workflows, compliance processes,
137 137   research knowledge and critical business information. From upgrades and authentication integrations
138 138   to workflow systems and long-term maintenance, Agnease helps keep XWiki secure, stable and ready for the future.
agnease-xwiki-hero.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Admin
Size
... ... @@ -1,0 +1,1 @@
1 +981.8 KB
Content
XWiki.StyleSheetExtension[0]
code
... ... @@ -1,5 +1,5 @@
1 1  /* ========== Agnease Public Website ========== */
2 -
2 +/*
3 3  @brand: #00937D;
4 4  @brand-strong: #007B6A;
5 5  @brand-soft: #E7FFF8;
... ... @@ -11,6 +11,19 @@
11 11  @shadow-sm: 0 6px 20px rgba(0, 0, 0, .06);
12 12  @shadow: 0 12px 36px rgba(0, 0, 0, .08);
13 13  @maxw: 1140px;
14 +*/
15 +@brand: #00937D;
16 +@brand-strong: #007B6A;
17 +@brand-soft: #E7FFF8;
18 +@brand-bg: #F7F9FC;
19 +@text: #07182D;
20 +@text-soft: #10243D;
21 +@muted: #64748B;
22 +@line: #E6EBF2;
23 +@radius: 18px;
24 +@shadow-sm: 0 18px 45px rgba(15, 23, 42, .06);
25 +@shadow: 0 30px 80px rgba(15, 23, 42, .12);
26 +@maxw: 1140px;
14 14  
15 15  @section-padding: 30px 0;
16 16  @section-padding-mobile: 28px 0;
... ... @@ -137,7 +137,7 @@
137 137  
138 138  /* ========== Buttons ========== */
139 139  
140 -.btn-primary {
153 +/*.btn-primary {
141 141   background: @brand;
142 142   border-color: @brand;
143 143   color: #fff;
... ... @@ -149,18 +149,12 @@
149 149   color: #fff;
150 150   }
151 151  }
152 -
165 +*/
153 153  .btn-secondary {
154 - color: @brand;
167 + color: @text;
155 155   background: #fff;
156 - border: 1px solid fade(@brand, 35%);
169 + border: 1px solid fade(@text, 35%);
157 157  
158 - &:hover,
159 - &:focus {
160 - color: @brand-strong;
161 - border-color: @brand;
162 - background: @brand-bg;
163 - }
164 164  }
165 165  
166 166  /* ========== Hero ========== */
... ... @@ -172,9 +172,6 @@
172 172  
173 173   &.hero-centered {
174 174   text-align: center;
175 - background:
176 - radial-gradient(50rem 18rem at 50% -10%, @brand-soft 0%, transparent 60%),
177 - radial-gradient(50rem 18rem at 50% 0%, #E8F6F3 0%, transparent 60%);
178 178   display: flex;
179 179   align-items: center;
180 180   justify-content: center;
... ... @@ -248,7 +248,6 @@
248 248  .trust-strip {
249 249   padding: 18px 0;
250 250   border-top: 1px solid @line;
251 - background: #fff;
252 252  
253 253   ul {
254 254   max-width: 960px;
... ... @@ -321,7 +321,6 @@
321 321  .pathway-card,
322 322  .service-card,
323 323  .resource-card {
324 - background: #fff;
325 325   border: 1px solid @line;
326 326   border-radius: @radius;
327 327   box-shadow: @shadow-sm;
... ... @@ -517,7 +517,6 @@
517 517   align-items: flex-start;
518 518   gap: 16px;
519 519   padding: 22px;
520 - background: #fff;
521 521   border: 1px solid @line;
522 522   border-radius: @radius;
523 523   box-shadow: @shadow-sm;
... ... @@ -605,7 +605,6 @@
605 605   position: relative;
606 606   padding: 16px 16px 16px 58px;
607 607   margin-bottom: 12px;
608 - background: #fff;
609 609   border: 1px solid @line;
610 610   border-radius: @radius;
611 611   box-shadow: @shadow-sm;
... ... @@ -737,8 +737,8 @@
737 737  
738 738  /* ========== CTA ========== */
739 739  
740 -.cta-section {
741 - padding: @section-padding;
740 +#mainContentArea .cta-section {
741 + padding: 44px 0 56px;
742 742  
743 743   .contact-inline {
744 744   margin: 0;
... ... @@ -750,27 +750,70 @@
750 750   }
751 751  }
752 752  
753 -.cta-panel {
754 - max-width: 860px;
753 +#mainContentArea .cta-panel {
754 + position: relative;
755 + overflow: hidden;
756 + max-width: 1040px;
755 755   margin: 0 auto;
756 - padding: 32px;
757 - border-radius: @radius;
758 - border: 1px solid fade(@brand, 20%);
758 + padding: 48px 40px;
759 + border: 0;
760 + border-radius: 26px;
759 759   background:
760 - radial-gradient(34rem 12rem at 50% 0%, @brand-soft 0%, #fff 70%);
761 - box-shadow: @shadow-sm;
762 + radial-gradient(circle at 88% 10%, fade(@brand, 24%) 0%, transparent 30%),
763 + linear-gradient(135deg, @text 0%, @text-soft 100%);
764 + color: #fff;
765 + box-shadow: @shadow;
762 762   text-align: center;
767 +}
763 763  
764 - h2 {
765 - margin-top: 0;
766 - }
769 +#mainContentArea .cta-panel::before {
770 + content: "";
771 + position: absolute;
772 + inset: 0;
773 + background:
774 + linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px),
775 + linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px);
776 + background-size: 48px 48px;
777 + opacity: .4;
778 + pointer-events: none;
779 +}
767 767  
768 - p {
769 - color: @muted;
770 - line-height: 1.55;
771 - }
781 +#mainContentArea .cta-panel h2,
782 +#mainContentArea .cta-panel p,
783 +#mainContentArea .cta-panel .btn {
784 + position: relative;
785 + z-index: 1;
772 772  }
773 773  
788 +#mainContentArea .cta-panel h2 {
789 + max-width: 760px;
790 + margin: 0 auto 16px;
791 + color: #fff;
792 +}
793 +
794 +#mainContentArea .cta-panel p {
795 + max-width: 760px;
796 + margin: 0 auto 28px;
797 + color: #DBE4EF;
798 + font-size: 16px;
799 + line-height: 1.6;
800 +}
801 +
802 +#mainContentArea .cta-panel .btn-primary {
803 + border-color: #fff;
804 + background: #fff;
805 + color: @text;
806 + box-shadow: 0 18px 42px rgba(0, 0, 0, .18);
807 +}
808 +
809 +#mainContentArea .cta-panel .btn-primary:hover,
810 +#mainContentArea .cta-panel .btn-primary:focus {
811 + border-color: #fff;
812 + background: #fff;
813 + color: @brand-strong;
814 + text-decoration: none;
815 +}
816 +
774 774  .resource-inline-cta {
775 775   display: flex;
776 776   align-items: center;
... ... @@ -902,9 +902,14 @@
902 902   gap: 14px;
903 903   }
904 904  
905 - .cta-panel {
906 - padding: 24px 20px;
948 + #mainContentArea .cta-panel {
949 + padding: 30px 22px;
950 + border-radius: 20px;
907 907   }
952 +
953 + #mainContentArea .cta-panel .btn-primary {
954 + width: 100%;
955 + }
908 908  }
909 909  
910 910  /* ========== Resource / Article Pages ========== */
... ... @@ -916,9 +916,6 @@
916 916  .resource-header {
917 917   padding: @section-padding;
918 918   border-top: none;
919 - background:
920 - radial-gradient(50rem 18rem at 50% -10%, @brand-soft 0%, transparent 60%),
921 - radial-gradient(50rem 18rem at 50% 0%, #E8F6F3 0%, transparent 60%);
922 922  
923 923   h1 {
924 924   margin: 0 auto 14px;
... ... @@ -996,6 +996,45 @@
996 996   }
997 997  }
998 998  
1044 +.resource-note.related-resources {
1045 + p {
1046 + margin-bottom: 10px;
1047 + }
1048 +
1049 + ul {
1050 + margin: 0;
1051 + padding-left: 20px;
1052 + }
1053 +
1054 + li {
1055 + margin: 6px 0;
1056 + color: @muted;
1057 + }
1058 +}
1059 +
1060 +.resource-faq-item {
1061 + display: flow-root;
1062 + border-bottom: 1px solid @line;
1063 + padding: 12px 0;
1064 +
1065 + summary {
1066 + cursor: pointer;
1067 + font-weight: 700;
1068 + color: @text;
1069 + line-height: 1.4;
1070 + }
1071 +
1072 + summary:hover,
1073 + summary:focus {
1074 + color: @brand-strong;
1075 + }
1076 +
1077 + p {
1078 + margin: 10px 0 4px;
1079 + color: @muted;
1080 + }
1081 +}
1082 +
999 999  .resource-checklist {
1000 1000   margin: 18px 0 24px;
1001 1001   padding: 0;
... ... @@ -1027,7 +1027,6 @@
1027 1027   border: 1px solid @line;
1028 1028   border-radius: @radius;
1029 1029   padding: 18px;
1030 - background: #fff;
1031 1031   box-shadow: @shadow-sm;
1032 1032  
1033 1033   h4 {
... ... @@ -1117,30 +1117,39 @@
1117 1117  }
1118 1118  
1119 1119  .product-card-grid {
1120 - max-width: 840px;
1121 - margin: 22px auto 0;
1203 + max-width: 980px;
1204 + margin: 26px auto 0;
1122 1122   display: grid;
1123 1123   grid-template-columns: 1fr;
1124 - grid-gap: 18px;
1207 + grid-gap: 22px;
1125 1125  }
1126 1126  
1127 1127  .product-card {
1128 - background: #fff;
1211 + position: relative;
1129 1129   border: 1px solid @line;
1130 1130   border-radius: @radius;
1131 1131   box-shadow: @shadow-sm;
1132 - padding: 28px;
1215 + padding: 32px;
1133 1133   display: grid;
1134 - grid-template-columns: 68px 1fr;
1135 - grid-gap: 22px;
1217 + grid-template-columns: 70px 1fr;
1218 + grid-gap: 24px;
1136 1136   align-items: start;
1220 + overflow: hidden;
1137 1137  
1222 + &:before {
1223 + content: "";
1224 + position: absolute;
1225 + inset: 0 auto 0 0;
1226 + width: 5px;
1227 + background: linear-gradient(180deg, @brand 0%, @brand-strong 100%);
1228 + }
1229 +
1138 1138   .product-card-icon {
1139 1139   width: 58px;
1140 1140   height: 58px;
1141 1141   border-radius: 50%;
1142 1142   background: fade(@brand, 10%);
1143 - border: 1px solid fade(@brand, 20%);
1235 + border: 1px solid fade(@brand, 22%);
1144 1144   color: @brand;
1145 1145   display: flex;
1146 1146   align-items: center;
... ... @@ -1149,11 +1149,15 @@
1149 1149   flex-shrink: 0;
1150 1150   }
1151 1151  
1244 + .product-card-body {
1245 + min-width: 0;
1246 + }
1247 +
1152 1152   h3 {
1153 1153   margin: 0 0 10px;
1154 1154   color: @text;
1155 - font-size: 23px;
1156 - line-height: 1.25;
1251 + font-size: 25px;
1252 + line-height: 1.22;
1157 1157   font-weight: 800;
1158 1158   }
1159 1159  
... ... @@ -1162,25 +1162,36 @@
1162 1162   line-height: 1.6;
1163 1163   }
1164 1164  
1165 - .card-link {
1166 - margin: 0;
1167 -
1168 - a {
1169 - font-weight: 700;
1170 - }
1261 + .product-card-description {
1262 + max-width: 760px;
1263 + margin: 0 0 14px;
1264 + font-size: 16px;
1171 1171   }
1172 1172  }
1173 1173  
1174 1174  .product-card-kicker {
1269 + display: inline-flex;
1270 + align-items: center;
1271 + gap: 7px;
1272 + width: fit-content;
1175 1175   margin-bottom: 10px;
1176 1176   padding: 5px 10px;
1275 + border: 1px solid fade(@brand, 24%);
1276 + border-radius: 999px;
1277 + background: fade(@brand, 8%);
1278 + color: @brand-strong;
1177 1177   font-size: 12px;
1280 + font-weight: 800;
1178 1178   text-transform: uppercase;
1179 1179   letter-spacing: .04em;
1283 +
1284 + i {
1285 + color: @brand;
1286 + }
1180 1180  }
1181 1181  
1182 1182  .product-highlights {
1183 - margin: 14px 0 20px;
1290 + margin: 14px 0 22px;
1184 1184   padding-left: 18px;
1185 1185   color: @muted;
1186 1186  
... ... @@ -1190,12 +1190,58 @@
1190 1190   }
1191 1191  }
1192 1192  
1300 +.product-card-actions {
1301 + display: flex;
1302 + align-items: center;
1303 + gap: 16px;
1304 + flex-wrap: wrap;
1305 +
1306 + .btn {
1307 + font-weight: 700;
1308 + }
1309 +}
1310 +
1311 +.product-card-contact {
1312 + color: @brand;
1313 + font-weight: 700;
1314 + text-decoration: underline;
1315 +
1316 + &:hover,
1317 + &:focus {
1318 + color: @brand-strong;
1319 + }
1320 +}
1321 +
1322 +@media (max-width: 640px) {
1323 + .product-card {
1324 + grid-template-columns: 1fr;
1325 + padding: 26px 22px;
1326 + text-align: left;
1327 +
1328 + &:before {
1329 + width: 4px;
1330 + }
1331 +
1332 + .product-card-icon {
1333 + margin-bottom: 2px;
1334 + }
1335 +
1336 + h3 {
1337 + font-size: 22px;
1338 + }
1339 + }
1340 +
1341 + .product-card-actions {
1342 + gap: 12px;
1343 + }
1344 +}
1345 +
1193 1193  /* ========== Individual Product Pages ========== */
1194 1194  
1195 1195  .product-layout {
1196 1196   display: grid;
1197 - grid-template-columns: 1.1fr .9fr;
1198 - grid-gap: 36px;
1350 + grid-template-columns: minmax(0, 1.12fr) minmax(280px, .88fr);
1351 + grid-gap: 32px;
1199 1199   max-width: 1040px;
1200 1200   margin: 0 auto;
1201 1201   align-items: start;
... ... @@ -1205,7 +1205,6 @@
1205 1205  .product-info-card,
1206 1206  .product-feature,
1207 1207  .product-gallery-panel {
1208 - background: #fff;
1209 1209   border: 1px solid @line;
1210 1210   border-radius: @radius;
1211 1211   box-shadow: @shadow-sm;
... ... @@ -1212,16 +1212,18 @@
1212 1212  }
1213 1213  
1214 1214  .product-summary-card {
1215 - padding: 26px;
1367 + padding: 28px;
1216 1216  
1217 1217   h2 {
1218 1218   text-align: left;
1219 1219   margin-top: 0;
1372 + margin-bottom: 14px;
1373 + line-height: 1.25;
1220 1220   }
1221 1221  
1222 1222   p {
1223 1223   color: @muted;
1224 - line-height: 1.6;
1378 + line-height: 1.62;
1225 1225   }
1226 1226  
1227 1227   p:last-child {
... ... @@ -1230,13 +1230,19 @@
1230 1230  }
1231 1231  
1232 1232  .product-info-card {
1233 - padding: 22px;
1387 + padding: 24px;
1234 1234  
1235 1235   h3 {
1236 1236   margin-top: 0;
1237 1237   margin-bottom: 12px;
1392 + line-height: 1.3;
1238 1238   }
1239 1239  
1395 + p {
1396 + color: @muted;
1397 + line-height: 1.55;
1398 + }
1399 +
1240 1240   ul {
1241 1241   margin: 0;
1242 1242   padding-left: 20px;
... ... @@ -1245,28 +1245,31 @@
1245 1245  
1246 1246   li {
1247 1247   margin: 8px 0;
1248 - line-height: 1.45;
1408 + line-height: 1.3;
1249 1249   }
1250 1250  }
1251 1251  
1252 1252  .product-card-note {
1253 - margin: 0 0 12px;
1413 + margin: 0 0 14px;
1254 1254   color: @muted;
1255 - line-height: 1.5;
1415 + line-height: 1.55;
1256 1256  }
1257 1257  
1258 1258  .product-feature-grid {
1259 1259   display: grid;
1260 1260   grid-template-columns: repeat(3, minmax(0, 1fr));
1261 - grid-gap: 18px;
1421 + grid-gap: 20px;
1262 1262   max-width: 1040px;
1263 - margin: 22px auto 0;
1423 + margin: 24px auto 0;
1264 1264  }
1265 1265  
1266 1266  .product-feature {
1267 - padding: 22px;
1427 + padding: 24px;
1428 + min-width: 0;
1429 + min-height: 100%;
1268 1268  
1269 - .card-heading {
1431 + .card-heading,
1432 + .feature-heading {
1270 1270   display: flex;
1271 1271   align-items: center;
1272 1272   gap: 14px;
... ... @@ -1296,13 +1296,13 @@
1296 1296   p {
1297 1297   margin: 0;
1298 1298   color: @muted;
1299 - line-height: 1.5;
1462 + line-height: 1.52;
1300 1300   }
1301 1301  }
1302 1302  
1303 1303  .product-gallery-caption {
1304 - max-width: 860px;
1305 - margin: 28px auto 12px;
1467 + max-width: 820px;
1468 + margin: 12px auto 0;
1306 1306   color: @muted;
1307 1307   font-size: 14px;
1308 1308   line-height: 1.5;
... ... @@ -1309,26 +1309,25 @@
1309 1309   text-align: center;
1310 1310  }
1311 1311  
1312 -/* Keep the default XWiki gallery behavior.
1313 - Only center it and make its corners match the product cards. */
1475 +/* Keep the default XWiki gallery style.
1476 + Only add spacing before it and center it. */
1314 1314  .gallery.xGallery {
1315 - margin-left: auto !important;
1316 - margin-right: auto !important;
1317 - border-radius: @radius;
1318 - overflow: hidden;
1478 + margin: 25px auto;
1479 + width: 920px;
1480 + height: 518px;
1319 1319  }
1320 1320  
1321 -.gallery.xGallery .galleria-container,
1322 -.gallery.xGallery .galleria-stage {
1323 - border-radius: @radius;
1324 - overflow: hidden;
1483 +.product-section-muted {
1484 + background:
1485 + radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 65%);
1325 1325  }
1326 1326  
1488 +/* Compact process list when used inside a product card. */
1327 1327  .product-summary-card .process-list {
1328 1328   margin-top: 16px;
1329 1329  
1330 1330   li {
1331 - padding: 12px 14px 12px 50px;
1493 + padding: 13px 14px 13px 50px;
1332 1332   margin-bottom: 10px;
1333 1333   box-shadow: none;
1334 1334   }
... ... @@ -1335,7 +1335,7 @@
1335 1335  
1336 1336   li:before {
1337 1337   left: 14px;
1338 - top: 13px;
1500 + top: 14px;
1339 1339   width: 24px;
1340 1340   height: 24px;
1341 1341   font-size: 12px;
... ... @@ -1346,11 +1346,7 @@
1346 1346   }
1347 1347  }
1348 1348  
1349 -.product-section-muted {
1350 - background:
1351 - radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 65%);
1352 -}
1353 -
1511 +/* Kept for older product pages that still use a screenshot placeholder/panel. */
1354 1354  .product-gallery-panel {
1355 1355   max-width: 1040px;
1356 1356   margin: 20px auto 0;
... ... @@ -1412,8 +1412,25 @@
1412 1412   padding: 20px;
1413 1413   }
1414 1414  
1573 + .product-feature {
1574 + .card-heading,
1575 + .feature-heading {
1576 + gap: 12px;
1577 + }
1578 +
1579 + .feature-icon {
1580 + width: 42px;
1581 + height: 42px;
1582 + font-size: 16px;
1583 + }
1584 + }
1585 +
1586 + .gallery.xGallery {
1587 + margin-top: 22px !important;
1588 + }
1589 +
1415 1415   .product-gallery-caption {
1416 - margin-top: 22px;
1591 + margin-top: 10px;
1417 1417   padding: 0 14px;
1418 1418   }
1419 1419  
... ... @@ -1421,10 +1421,10 @@
1421 1421   padding-left: 46px;
1422 1422   }
1423 1423  }
1599 +
1424 1424  /* ========== Resources Index ========== */
1425 1425  
1426 1426  .resources-index-page {
1427 - background: #fff;
1428 1428  
1429 1429   .services-grid {
1430 1430   grid-template-columns: repeat(2, minmax(0, 1fr));
... ... @@ -1460,3 +1460,321 @@
1460 1460   color: @muted;
1461 1461   }
1462 1462  }
1638 +
1639 +/* ========== Global Theme Background ========== */
1640 +
1641 +html,
1642 +body {
1643 + min-height: 100%;
1644 +}
1645 +
1646 +body {
1647 + color: @text;
1648 + background:
1649 + radial-gradient(circle at 12% 8%, rgba(0, 147, 125, 0.08) 0, transparent 26%),
1650 + radial-gradient(circle at 90% 28%, rgba(7, 24, 45, 0.05) 0, transparent 30%),
1651 + linear-gradient(180deg, #fff 0, @brand-bg 42%, #fff 100%) !important;
1652 + background-attachment: fixed;
1653 +}
1654 +
1655 +/* Let the body background show through the XWiki wrappers.
1656 +#mainContentArea,
1657 +.resource-page,
1658 +.resources-index-page {
1659 + background: transparent !important;
1660 + background-image: none !important;
1661 +}
1662 +*/
1663 +/* Remove local decorative backgrounds that compete with the global gradient.
1664 +.hero,
1665 +.hero.hero-centered,
1666 +.trust-strip,
1667 +.industry-trust-section,
1668 +.split-section,
1669 +.resource-strip,
1670 +.homepage-resource-strip,
1671 +.resource-header,
1672 +.product-section-muted,
1673 +.resources-index-page {
1674 + background: transparent !important;
1675 + background-image: none !important;
1676 +}
1677 + */
1678 +/* Keep large panels readable, but remove their inner gradients.
1679 +.industry-trust-section .industry-trust-panel,
1680 +.cta-panel,
1681 +.resource-inline-cta,
1682 +.resource-note,
1683 +.resource-cta {
1684 + background: #fff !important;
1685 + background-image: none !important;
1686 +} */
1687 +
1688 +/* ========== Main Page Hero / SaaS Layout ========== */
1689 +
1690 +#mainContentArea .hero.hero-saas {
1691 + min-height: auto;
1692 + padding: 60px 0 34px;
1693 + display: flex;
1694 + align-items: center;
1695 + overflow: hidden;
1696 + background: transparent;
1697 +}
1698 +
1699 +#mainContentArea .hero-layout {
1700 + max-width: 1120px;
1701 + margin: 0 auto;
1702 + display: grid;
1703 + grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
1704 + gap: 56px;
1705 + align-items: center;
1706 +}
1707 +
1708 +#mainContentArea .hero-copy {
1709 + min-width: 0;
1710 + text-align: left;
1711 +}
1712 +
1713 +#mainContentArea .hero.hero-saas h1 {
1714 + max-width: 640px;
1715 + margin: 0 0 26px;
1716 + font-size: 60px;
1717 + font-weight: 800;
1718 + line-height: 1;
1719 + letter-spacing: -3px;
1720 +}
1721 +
1722 +#mainContentArea .hero.hero-saas h1 span {
1723 + color: @brand;
1724 +}
1725 +
1726 +#mainContentArea .hero.hero-saas .lead {
1727 + max-width: 590px;
1728 + margin: 0 0 28px;
1729 + color: #334155;
1730 + text-align: left;
1731 + font-size: 18px;
1732 + line-height: 1.6;
1733 +}
1734 +
1735 +#mainContentArea .hero.hero-saas .benefits {
1736 + max-width: 620px;
1737 + margin: 0 0 30px;
1738 + padding: 0;
1739 + display: grid;
1740 + grid-template-columns: repeat(2, minmax(0, 1fr));
1741 + gap: 10px 24px;
1742 + list-style: none;
1743 + color: #475569;
1744 + font-size: 15px;
1745 + text-align: left;
1746 +}
1747 +
1748 +#mainContentArea .hero.hero-saas .benefits li {
1749 + display: grid;
1750 + grid-template-columns: 18px minmax(0, 1fr);
1751 + column-gap: 8px;
1752 + align-items: start;
1753 + margin: 0;
1754 + line-height: 1.45;
1755 +}
1756 +
1757 +#mainContentArea .hero.hero-saas .benefits li::before {
1758 + content: "✓";
1759 + display: block;
1760 + width: 18px;
1761 + color: @brand;
1762 + font-weight: 900;
1763 + line-height: 1.45;
1764 + text-align: left;
1765 + margin: 0;
1766 +}
1767 +
1768 +#mainContentArea .hero.hero-saas .hero-actions,
1769 +#mainContentArea .hero.hero-saas #hero-cta {
1770 + display: flex;
1771 + flex-wrap: wrap;
1772 + justify-content: flex-start;
1773 + gap: 12px;
1774 + margin-top: 0;
1775 +}
1776 +
1777 +#mainContentArea .hero-image-wrapper {
1778 + min-width: 0;
1779 + display: flex;
1780 + justify-content: center;
1781 + align-items: center;
1782 +}
1783 +
1784 +#mainContentArea .hero-image {
1785 + display: block;
1786 + width: 100%;
1787 + max-width: 620px;
1788 + height: auto;
1789 + border: 0;
1790 +}
1791 +
1792 +/* ========== Main Page Hero Responsive ========== */
1793 +
1794 +@media (max-width: 1100px) {
1795 + #mainContentArea .hero-layout {
1796 + max-width: 760px;
1797 + grid-template-columns: 1fr;
1798 + gap: 34px;
1799 + }
1800 +
1801 + #mainContentArea .hero-copy {
1802 + order: 1;
1803 + text-align: center;
1804 + }
1805 +
1806 + #mainContentArea .hero-image-wrapper {
1807 + order: 2;
1808 + }
1809 +
1810 + #mainContentArea .hero.hero-saas h1 {
1811 + margin-left: auto;
1812 + margin-right: auto;
1813 + text-align: center;
1814 + }
1815 +
1816 + #mainContentArea .hero.hero-saas .lead {
1817 + margin-left: auto;
1818 + margin-right: auto;
1819 + text-align: center;
1820 + }
1821 +
1822 + #mainContentArea .hero.hero-saas .benefits {
1823 + margin-left: auto;
1824 + margin-right: auto;
1825 + }
1826 +
1827 + #mainContentArea .hero.hero-saas .hero-actions,
1828 + #mainContentArea .hero.hero-saas #hero-cta {
1829 + justify-content: center;
1830 + }
1831 +
1832 + #mainContentArea .hero-image {
1833 + max-width: 620px;
1834 + }
1835 +}
1836 +
1837 +@media (max-width: 640px) {
1838 + #mainContentArea .hero.hero-saas {
1839 + padding: 42px 0 28px;
1840 + }
1841 +
1842 + #mainContentArea .hero-layout {
1843 + gap: 28px;
1844 + }
1845 +
1846 + #mainContentArea .hero.hero-saas h1 {
1847 + font-size: 42px;
1848 + letter-spacing: -1.5px;
1849 + }
1850 +
1851 + #mainContentArea .hero.hero-saas .lead {
1852 + font-size: 17px;
1853 + }
1854 +
1855 + #mainContentArea .hero.hero-saas .benefits {
1856 + grid-template-columns: 1fr;
1857 + }
1858 +
1859 + #mainContentArea .hero-image {
1860 + max-width: 100%;
1861 + }
1862 +}
1863 +
1864 +/* ========== Accessibility / Contrast Improvements ========== */
1865 +
1866 +/* Make the global background softer and less distracting. */
1867 +body {
1868 + background:
1869 + radial-gradient(circle at 12% 8%, rgba(0, 147, 125, 0.035) 0, transparent 26%),
1870 + radial-gradient(circle at 90% 28%, rgba(7, 24, 45, 0.025) 0, transparent 30%),
1871 + linear-gradient(180deg, #fff 0, @brand-bg 42%, #fff 100%) !important;
1872 + background-attachment: scroll;
1873 +}
1874 +
1875 +/* Keep the article area readable while preserving the page background around it. */
1876 +#mainContentArea .resource-layout {
1877 + padding: 28px;
1878 + border: 1px solid fade(@line, 85%);
1879 + border-radius: @radius;
1880 + background: rgba(255, 255, 255, .88);
1881 + box-shadow: @shadow-sm;
1882 +}
1883 +
1884 +/* Ensure all reusable cards have a real surface, not transparent over the gradient. */
1885 +#mainContentArea .widget,
1886 +#mainContentArea .pathway-card,
1887 +#mainContentArea .service-card,
1888 +#mainContentArea .resource-card,
1889 +#mainContentArea .services .service,
1890 +#mainContentArea .product-card,
1891 +#mainContentArea .product-feature,
1892 +#mainContentArea .product-summary-card,
1893 +#mainContentArea .product-info-card {
1894 + background: #fff;
1895 +}
1896 +
1897 +/* Make notes more readable and visually stronger. */
1898 +#mainContentArea .resource-note {
1899 + border: 1px solid fade(@brand, 18%);
1900 + border-left: 4px solid @brand;
1901 + background: #fff;
1902 + box-shadow: 0 10px 28px rgba(15, 23, 42, .045);
1903 +}
1904 +
1905 +/* Keep the sidebar clearly separated from the background. */
1906 +#mainContentArea .resource-sidebar {
1907 + background: #fff;
1908 +}
1909 +
1910 +/* Make CTA panels stand out more clearly. */
1911 +#mainContentArea .resource-cta,
1912 +#mainContentArea .resource-inline-cta {
1913 + background: #fff;
1914 +}
1915 +
1916 +/* Improve table readability on long resource pages. */
1917 +#mainContentArea .resource-content table {
1918 + background: #fff;
1919 +}
1920 +
1921 +#mainContentArea .resource-content table th {
1922 + color: @text;
1923 + background: #F8FAFC;
1924 +}
1925 +
1926 +#mainContentArea .resource-content table td {
1927 + color: @text-soft;
1928 +}
1929 +
1930 +/* Slightly improve paragraph/list contrast in long articles. */
1931 +#mainContentArea .resource-content p,
1932 +#mainContentArea .resource-content li {
1933 + color: @text-soft;
1934 +}
1935 +
1936 +#mainContentArea .resource-content .resource-note p,
1937 +#mainContentArea .resource-content .resource-checklist li,
1938 +#mainContentArea .resource-content .process-list li {
1939 + color: @muted;
1940 +}
1941 +
1942 +@media (max-width: 900px) {
1943 + #mainContentArea .resource-layout {
1944 + padding: 22px;
1945 + }
1946 +}
1947 +
1948 +@media (max-width: 640px) {
1949 + #mainContentArea .resource-layout {
1950 + padding: 18px;
1951 + border-radius: 14px;
1952 + }
1953 +}
1954 +
1955 +