Changes for page Public Web Site
Last modified by Agnease on 2026/07/03 16:14
Summary
-
Page properties (3 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 1 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Default language
-
... ... @@ -1,0 +1,1 @@ 1 +en - Hidden
-
... ... @@ -1,1 +1,1 @@ 1 - true1 +false - Content
-
... ... @@ -2,45 +2,7 @@ 2 2 #macro (displayPublicContent) 3 3 #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome')) 4 4 {{html clean="false"}} 5 - <section class="hero hero-saas" id="top"> 6 - <div class="container"> 7 - <div class="hero-layout"> 8 - <div class="hero-copy"> 9 - <h1>Professional XWiki consulting <span>and engineering</span></h1> 10 10 11 - <p class="lead"> 12 - Agnease helps organizations upgrade, maintain, secure and extend production XWiki platforms with practical engineering support, custom development, integrations and long-term care. 13 - </p> 14 - 15 - <ul class="benefits"> 16 - <li>XWiki LTS upgrades</li> 17 - <li>Maintenance and support</li> 18 - <li>Custom XWiki development</li> 19 - <li>Migrations and integrations</li> 20 - </ul> 21 - 22 - <div class="hero-actions" id="hero-cta"> 23 - <a class="btn btn-primary" href="https://calendly.com/alex-agnease/30min?back=1&month=2026-06"> 24 - Book a free discussion 25 - </a> 26 - <a class="btn btn-secondary" href="$xwiki.getURL('services.WebHome')">View XWiki services</a> 27 - </div> 28 - </div> 29 - 30 - <div class="hero-image-wrapper"> 31 - <img 32 - class="hero-image" 33 - src="$xwiki.getDocument('PublicWebSite.WebHome').getAttachmentURL('agnease-xwiki-hero.png')" 34 - alt="Illustration of a professional XWiki platform dashboard with upgrade, security and maintenance elements" 35 - width="1200" 36 - height="900" 37 - loading="eager" 38 - /> 39 - </div> 40 - </div> 41 - </div> 42 - </section> 43 -#* 44 44 <section class="hero hero-centered" aria-labelledby="hero-title"> 45 45 <div class="container hero-inner"> 46 46 <h1 id="hero-title">Professional XWiki consulting and engineering</h1> ... ... @@ -64,7 +64,7 @@ 64 64 </div> 65 65 </div> 66 66 </section> 67 - *#29 + 68 68 <section class="trust-strip" aria-label="Agnease experience"> 69 69 <div class="container"> 70 70 <ul> ... ... @@ -149,9 +149,9 @@ 149 149 </div> 150 150 </section> 151 151 152 - <section class=" contrast-band" aria-labelledby="industry-trust-title">114 + <section class="industry-trust-section" aria-labelledby="industry-trust-title"> 153 153 <div class="container"> 154 - <div class=" contrast-panel">116 + <div class="industry-trust-panel"> 155 155 <h2 id="industry-trust-title">Trusted XWiki expertise for business-critical platforms</h2> 156 156 157 157 <p class="section-intro"> ... ... @@ -159,7 +159,7 @@ 159 159 government institutions, transportation, software development, compliance programs and regulated environments. 160 160 </p> 161 161 162 - <div class=" contrast-tags" aria-label="Industries and environments supported">124 + <div class="industry-tags" aria-label="Industries and environments supported"> 163 163 <span>Healthcare</span> 164 164 <span>Financial services</span> 165 165 <span>Scientific research</span> ... ... @@ -170,7 +170,7 @@ 170 170 <span>Regulated environments</span> 171 171 </div> 172 172 173 - <p class=" contrast-support">135 + <p class="industry-support"> 174 174 Organizations rely on these platforms to manage documentation, workflows, compliance processes, 175 175 research knowledge and critical business information. From upgrades and authentication integrations 176 176 to workflow systems and long-term maintenance, Agnease helps keep XWiki secure, stable and ready for the future.
- agnease-xwiki-hero.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Admin - Size
-
... ... @@ -1,1 +1,0 @@ 1 -981.8 KB - Content
- XWiki.StyleSheetExtension[0]
-
- code
-
... ... @@ -1,5 +1,5 @@ 1 1 /* ========== Agnease Public Website ========== */ 2 - /*2 + 3 3 @brand: #00937D; 4 4 @brand-strong: #007B6A; 5 5 @brand-soft: #E7FFF8; ... ... @@ -11,19 +11,6 @@ 11 11 @shadow-sm: 0 6px 20px rgba(0, 0, 0, .06); 12 12 @shadow: 0 12px 36px rgba(0, 0, 0, .08); 13 13 @maxw: 1140px; 14 -*/ 15 -@brand: #00937D; 16 -@brand-strong: #007B6A; 17 -@brand-soft: #E7FFF8; 18 -@brand-bg: #F7F9FC; 19 -@text: #07182D; 20 -@text-soft: #10243D; 21 -@muted: #64748B; 22 -@line: #E6EBF2; 23 -@radius: 18px; 24 -@shadow-sm: 0 18px 45px rgba(15, 23, 42, .06); 25 -@shadow: 0 30px 80px rgba(15, 23, 42, .12); 26 -@maxw: 1140px; 27 27 28 28 @section-padding: 30px 0; 29 29 @section-padding-mobile: 28px 0; ... ... @@ -150,7 +150,7 @@ 150 150 151 151 /* ========== Buttons ========== */ 152 152 153 - /*.btn-primary {140 +.btn-primary { 154 154 background: @brand; 155 155 border-color: @brand; 156 156 color: #fff; ... ... @@ -162,12 +162,18 @@ 162 162 color: #fff; 163 163 } 164 164 } 165 - */152 + 166 166 .btn-secondary { 167 - color: @ text;154 + color: @brand; 168 168 background: #fff; 169 - border: 1px solid fade(@ text, 35%);156 + border: 1px solid fade(@brand, 35%); 170 170 158 + &:hover, 159 + &:focus { 160 + color: @brand-strong; 161 + border-color: @brand; 162 + background: @brand-bg; 163 + } 171 171 } 172 172 173 173 /* ========== Hero ========== */ ... ... @@ -179,6 +179,9 @@ 179 179 180 180 &.hero-centered { 181 181 text-align: center; 175 + background: 176 + radial-gradient(50rem 18rem at 50% -10%, @brand-soft 0%, transparent 60%), 177 + radial-gradient(50rem 18rem at 50% 0%, #E8F6F3 0%, transparent 60%); 182 182 display: flex; 183 183 align-items: center; 184 184 justify-content: center; ... ... @@ -247,127 +247,37 @@ 247 247 margin-top: 22px; 248 248 } 249 249 250 -/* ========== ContrastBand========== */246 +/* ========== Trust Strip ========== */ 251 251 252 -.contrast-band { 253 - position: relative; 254 - overflow: visible; /* allow pseudo-element to escape */ 255 - padding: 54px 0; 256 - border-top: 0; 257 - color: #fff; 248 +.trust-strip { 249 + padding: 18px 0; 250 + border-top: 1px solid @line; 251 + background: #fff; 258 258 259 - /* Remove gradient from here */ 260 - background: none; 261 -} 253 + ul { 254 + max-width: 960px; 255 + margin: 0 auto; 256 + padding: 0; 257 + list-style: none; 258 + display: flex; 259 + justify-content: center; 260 + gap: 22px; 261 + flex-wrap: wrap; 262 + color: @muted; 263 + font-size: 13px; 264 + } 262 262 263 -/* Full‑bleed gradient background */ 264 -.contrast-band::before { 265 - content: ""; 266 - position: absolute; 267 - top: 0; 268 - left: 50%; 269 - width: 100vw; /* full viewport width */ 270 - height: 100%; 271 - transform: translateX(-50%); 272 - z-index: -1; 273 - 274 - background: 275 - radial-gradient(circle at 18% 18%, fade(@brand, 22%) 0%, transparent 28%), 276 - radial-gradient(circle at 86% 12%, fade(@brand, 16%) 0%, transparent 30%), 277 - linear-gradient(135deg, @text 0%, @text-soft 100%); 278 -} 279 - 280 -/* Grid overlay stays exactly as you had it */ 281 -.contrast-band::after { 282 - content: ""; 283 - position: absolute; 284 - inset: 0; 285 - background: 286 - linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px), 287 - linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px); 288 - background-size: 52px 52px; 289 - opacity: .38; 290 - pointer-events: none; 291 - z-index: 0; 292 -} 293 - 294 -.contrast-band .container { 295 - position: relative; 296 - z-index: 1; 297 -} 298 - 299 -/* Everything below stays unchanged */ 300 -.contrast-panel { 301 - max-width: 1040px; 302 - margin: 0 auto; 303 - text-align: center; 304 -} 305 - 306 -.contrast-band h2 { 307 - max-width: 860px; 308 - margin: 0 auto 12px; 309 - color: #fff; 310 -} 311 - 312 -.contrast-band .section-intro { 313 - max-width: 840px; 314 - margin: 0 auto 26px; 315 - color: #D9E3EE; 316 -} 317 - 318 -.contrast-tags { 319 - max-width: 940px; 320 - margin: 0 auto; 321 - display: flex; 322 - flex-wrap: wrap; 323 - justify-content: center; 324 - gap: 10px; 325 -} 326 - 327 -.contrast-tags span { 328 - display: inline-flex; 329 - align-items: center; 330 - padding: 8px 13px; 331 - border: 1px solid fade(#fff, 18%); 332 - border-radius: 999px; 333 - background: fade(#fff, 8%); 334 - color: #F8FAFC; 335 - font-size: 13px; 336 - font-weight: 700; 337 - line-height: 1.2; 338 -} 339 - 340 -.contrast-tags span::before { 341 - content: ""; 342 - width: 7px; 343 - height: 7px; 344 - margin-right: 8px; 345 - border-radius: 50%; 346 - background: @brand; 347 - box-shadow: 0 0 0 4px fade(@brand, 18%); 348 -} 349 - 350 -.contrast-support { 351 - max-width: 860px; 352 - margin: 30px auto 0; 353 - color: #D9E3EE; 354 - text-align: center; 355 - font-size: 15px; 356 - line-height: 1.7; 357 -} 358 - 359 -@media (max-width: 640px) { 360 - .contrast-band { 361 - padding: 40px 0; 266 + li { 267 + display: flex; 268 + align-items: center; 269 + gap: 7px; 362 362 } 363 363 364 - .contrast-tags span { 365 - font-size: 12px; 366 - padding: 8px 11px; 272 + i { 273 + color: @brand; 367 367 } 368 368 } 369 369 370 - 371 371 /* ========== Reusable Grids ========== */ 372 372 373 373 .card-grid, ... ... @@ -415,6 +415,7 @@ 415 415 .pathway-card, 416 416 .service-card, 417 417 .resource-card { 324 + background: #fff; 418 418 border: 1px solid @line; 419 419 border-radius: @radius; 420 420 box-shadow: @shadow-sm; ... ... @@ -524,6 +524,80 @@ 524 524 } 525 525 } 526 526 434 +.industry-trust-section { 435 + background: 436 + radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 70%); 437 + 438 + .industry-trust-panel { 439 + max-width: 1040px; 440 + margin: 0 auto; 441 + padding: 30px 28px; 442 + border: 1px solid fade(@brand, 16%); 443 + border-radius: @radius; 444 + background: 445 + radial-gradient(34rem 12rem at 50% 0%, fade(@brand-soft, 75%) 0%, #fff 72%); 446 + box-shadow: @shadow-sm; 447 + text-align: center; 448 + } 449 + 450 + h2 { 451 + margin-bottom: 12px; 452 + } 453 + 454 + .section-intro { 455 + margin-bottom: 20px; 456 + max-width: 820px; 457 + } 458 + 459 + .industry-tags { 460 + max-width: 880px; 461 + margin: 0 auto; 462 + display: flex; 463 + flex-wrap: wrap; 464 + justify-content: center; 465 + gap: 10px; 466 + } 467 + 468 + .industry-tags span { 469 + display: inline-flex; 470 + align-items: center; 471 + padding: 7px 12px; 472 + border: 1px solid fade(@brand, 20%); 473 + border-radius: 999px; 474 + background: #fff; 475 + color: @text; 476 + font-size: 13px; 477 + font-weight: 600; 478 + line-height: 1.2; 479 + box-shadow: 0 3px 10px rgba(0, 0, 0, .04); 480 + } 481 + 482 + .industry-support { 483 + max-width: 820px; 484 + margin: 22px auto 0; 485 + color: @muted; 486 + font-size: 16px; 487 + line-height: 1.6; 488 + } 489 +} 490 + 491 +@media (max-width: 640px) { 492 + .industry-trust-section { 493 + .industry-trust-panel { 494 + padding: 24px 18px; 495 + } 496 + 497 + .industry-tags { 498 + gap: 8px; 499 + } 500 + 501 + .industry-tags span { 502 + font-size: 12px; 503 + padding: 6px 10px; 504 + } 505 + } 506 +} 507 + 527 527 /* ========== Services ========== */ 528 528 529 529 .services { ... ... @@ -536,6 +536,7 @@ 536 536 align-items: flex-start; 537 537 gap: 16px; 538 538 padding: 22px; 520 + background: #fff; 539 539 border: 1px solid @line; 540 540 border-radius: @radius; 541 541 box-shadow: @shadow-sm; ... ... @@ -623,6 +623,7 @@ 623 623 position: relative; 624 624 padding: 16px 16px 16px 58px; 625 625 margin-bottom: 12px; 608 + background: #fff; 626 626 border: 1px solid @line; 627 627 border-radius: @radius; 628 628 box-shadow: @shadow-sm; ... ... @@ -754,8 +754,8 @@ 754 754 755 755 /* ========== CTA ========== */ 756 756 757 - #mainContentArea.cta-section {758 - padding: 44px 0 56px;740 +.cta-section { 741 + padding: @section-padding; 759 759 760 760 .contact-inline { 761 761 margin: 0; ... ... @@ -767,70 +767,27 @@ 767 767 } 768 768 } 769 769 770 -#mainContentArea .cta-panel { 771 - position: relative; 772 - overflow: hidden; 773 - max-width: 1040px; 753 +.cta-panel { 754 + max-width: 860px; 774 774 margin: 0 auto; 775 - padding: 48px40px;776 - border: 0;777 - border -radius:26px;756 + padding: 32px; 757 + border-radius: @radius; 758 + border: 1px solid fade(@brand, 20%); 778 778 background: 779 - radial-gradient(circle at 88% 10%, fade(@brand, 24%) 0%, transparent 30%), 780 - linear-gradient(135deg, @text 0%, @text-soft 100%); 781 - color: #fff; 782 - box-shadow: @shadow; 760 + radial-gradient(34rem 12rem at 50% 0%, @brand-soft 0%, #fff 70%); 761 + box-shadow: @shadow-sm; 783 783 text-align: center; 784 -} 785 785 786 -#mainContentArea .cta-panel::before { 787 - content: ""; 788 - position: absolute; 789 - inset: 0; 790 - background: 791 - linear-gradient(90deg, fade(#fff, 4%) 1px, transparent 1px), 792 - linear-gradient(180deg, fade(#fff, 4%) 1px, transparent 1px); 793 - background-size: 48px 48px; 794 - opacity: .4; 795 - pointer-events: none; 796 -} 764 + h2 { 765 + margin-top: 0; 766 + } 797 797 798 -#mainContentArea .cta-panel h2, 799 -#mainContentArea .cta-panel p, 800 -#mainContentArea .cta-panel .btn { 801 - position: relative; 802 - z-index: 1; 768 + p { 769 + color: @muted; 770 + line-height: 1.55; 771 + } 803 803 } 804 804 805 -#mainContentArea .cta-panel h2 { 806 - max-width: 760px; 807 - margin: 0 auto 16px; 808 - color: #fff; 809 -} 810 - 811 -#mainContentArea .cta-panel p { 812 - max-width: 760px; 813 - margin: 0 auto 28px; 814 - color: #DBE4EF; 815 - font-size: 16px; 816 - line-height: 1.6; 817 -} 818 - 819 -#mainContentArea .cta-panel .btn-primary { 820 - border-color: #fff; 821 - background: #fff; 822 - color: @text; 823 - box-shadow: 0 18px 42px rgba(0, 0, 0, .18); 824 -} 825 - 826 -#mainContentArea .cta-panel .btn-primary:hover, 827 -#mainContentArea .cta-panel .btn-primary:focus { 828 - border-color: #fff; 829 - background: #fff; 830 - color: @brand-strong; 831 - text-decoration: none; 832 -} 833 - 834 834 .resource-inline-cta { 835 835 display: flex; 836 836 align-items: center; ... ... @@ -962,14 +962,9 @@ 962 962 gap: 14px; 963 963 } 964 964 965 - #mainContentArea .cta-panel { 966 - padding: 30px 22px; 967 - border-radius: 20px; 905 + .cta-panel { 906 + padding: 24px 20px; 968 968 } 969 - 970 - #mainContentArea .cta-panel .btn-primary { 971 - width: 100%; 972 - } 973 973 } 974 974 975 975 /* ========== Resource / Article Pages ========== */ ... ... @@ -981,6 +981,9 @@ 981 981 .resource-header { 982 982 padding: @section-padding; 983 983 border-top: none; 919 + background: 920 + radial-gradient(50rem 18rem at 50% -10%, @brand-soft 0%, transparent 60%), 921 + radial-gradient(50rem 18rem at 50% 0%, #E8F6F3 0%, transparent 60%); 984 984 985 985 h1 { 986 986 margin: 0 auto 14px; ... ... @@ -1058,45 +1058,6 @@ 1058 1058 } 1059 1059 } 1060 1060 1061 -.resource-note.related-resources { 1062 - p { 1063 - margin-bottom: 10px; 1064 - } 1065 - 1066 - ul { 1067 - margin: 0; 1068 - padding-left: 20px; 1069 - } 1070 - 1071 - li { 1072 - margin: 6px 0; 1073 - color: @muted; 1074 - } 1075 -} 1076 - 1077 -.resource-faq-item { 1078 - display: flow-root; 1079 - border-bottom: 1px solid @line; 1080 - padding: 12px 0; 1081 - 1082 - summary { 1083 - cursor: pointer; 1084 - font-weight: 700; 1085 - color: @text; 1086 - line-height: 1.4; 1087 - } 1088 - 1089 - summary:hover, 1090 - summary:focus { 1091 - color: @brand-strong; 1092 - } 1093 - 1094 - p { 1095 - margin: 10px 0 4px; 1096 - color: @muted; 1097 - } 1098 -} 1099 - 1100 1100 .resource-checklist { 1101 1101 margin: 18px 0 24px; 1102 1102 padding: 0; ... ... @@ -1128,6 +1128,7 @@ 1128 1128 border: 1px solid @line; 1129 1129 border-radius: @radius; 1130 1130 padding: 18px; 1030 + background: #fff; 1131 1131 box-shadow: @shadow-sm; 1132 1132 1133 1133 h4 { ... ... @@ -1217,39 +1217,30 @@ 1217 1217 } 1218 1218 1219 1219 .product-card-grid { 1220 - max-width: 980px;1221 - margin: 2 6px auto 0;1120 + max-width: 840px; 1121 + margin: 22px auto 0; 1222 1222 display: grid; 1223 1223 grid-template-columns: 1fr; 1224 - grid-gap: 22px;1124 + grid-gap: 18px; 1225 1225 } 1226 1226 1227 1227 .product-card { 1228 - position:relative;1128 + background: #fff; 1229 1229 border: 1px solid @line; 1230 1230 border-radius: @radius; 1231 1231 box-shadow: @shadow-sm; 1232 - padding: 32px;1132 + padding: 28px; 1233 1233 display: grid; 1234 - grid-template-columns: 70px 1fr;1235 - grid-gap: 2 4px;1134 + grid-template-columns: 68px 1fr; 1135 + grid-gap: 22px; 1236 1236 align-items: start; 1237 - overflow: hidden; 1238 1238 1239 - &:before { 1240 - content: ""; 1241 - position: absolute; 1242 - inset: 0 auto 0 0; 1243 - width: 5px; 1244 - background: linear-gradient(180deg, @brand 0%, @brand-strong 100%); 1245 - } 1246 - 1247 1247 .product-card-icon { 1248 1248 width: 58px; 1249 1249 height: 58px; 1250 1250 border-radius: 50%; 1251 1251 background: fade(@brand, 10%); 1252 - border: 1px solid fade(@brand, 2 2%);1143 + border: 1px solid fade(@brand, 20%); 1253 1253 color: @brand; 1254 1254 display: flex; 1255 1255 align-items: center; ... ... @@ -1258,15 +1258,11 @@ 1258 1258 flex-shrink: 0; 1259 1259 } 1260 1260 1261 - .product-card-body { 1262 - min-width: 0; 1263 - } 1264 - 1265 1265 h3 { 1266 1266 margin: 0 0 10px; 1267 1267 color: @text; 1268 - font-size: 2 5px;1269 - line-height: 1.2 2;1155 + font-size: 23px; 1156 + line-height: 1.25; 1270 1270 font-weight: 800; 1271 1271 } 1272 1272 ... ... @@ -1275,36 +1275,25 @@ 1275 1275 line-height: 1.6; 1276 1276 } 1277 1277 1278 - .product-card-description { 1279 - max-width: 760px; 1280 - margin: 0 0 14px; 1281 - font-size: 16px; 1165 + .card-link { 1166 + margin: 0; 1167 + 1168 + a { 1169 + font-weight: 700; 1170 + } 1282 1282 } 1283 1283 } 1284 1284 1285 1285 .product-card-kicker { 1286 - display: inline-flex; 1287 - align-items: center; 1288 - gap: 7px; 1289 - width: fit-content; 1290 1290 margin-bottom: 10px; 1291 1291 padding: 5px 10px; 1292 - border: 1px solid fade(@brand, 24%); 1293 - border-radius: 999px; 1294 - background: fade(@brand, 8%); 1295 - color: @brand-strong; 1296 1296 font-size: 12px; 1297 - font-weight: 800; 1298 1298 text-transform: uppercase; 1299 1299 letter-spacing: .04em; 1300 - 1301 - i { 1302 - color: @brand; 1303 - } 1304 1304 } 1305 1305 1306 1306 .product-highlights { 1307 - margin: 14px 0 2 2px;1183 + margin: 14px 0 20px; 1308 1308 padding-left: 18px; 1309 1309 color: @muted; 1310 1310 ... ... @@ -1314,58 +1314,12 @@ 1314 1314 } 1315 1315 } 1316 1316 1317 -.product-card-actions { 1318 - display: flex; 1319 - align-items: center; 1320 - gap: 16px; 1321 - flex-wrap: wrap; 1322 - 1323 - .btn { 1324 - font-weight: 700; 1325 - } 1326 -} 1327 - 1328 -.product-card-contact { 1329 - color: @brand; 1330 - font-weight: 700; 1331 - text-decoration: underline; 1332 - 1333 - &:hover, 1334 - &:focus { 1335 - color: @brand-strong; 1336 - } 1337 -} 1338 - 1339 -@media (max-width: 640px) { 1340 - .product-card { 1341 - grid-template-columns: 1fr; 1342 - padding: 26px 22px; 1343 - text-align: left; 1344 - 1345 - &:before { 1346 - width: 4px; 1347 - } 1348 - 1349 - .product-card-icon { 1350 - margin-bottom: 2px; 1351 - } 1352 - 1353 - h3 { 1354 - font-size: 22px; 1355 - } 1356 - } 1357 - 1358 - .product-card-actions { 1359 - gap: 12px; 1360 - } 1361 -} 1362 - 1363 1363 /* ========== Individual Product Pages ========== */ 1364 1364 1365 1365 .product-layout { 1366 1366 display: grid; 1367 - grid-template-columns: minmax(0,1.12fr)minmax(280px,.88fr);1368 - grid-gap: 3 2px;1197 + grid-template-columns: 1.1fr .9fr; 1198 + grid-gap: 36px; 1369 1369 max-width: 1040px; 1370 1370 margin: 0 auto; 1371 1371 align-items: start; ... ... @@ -1375,6 +1375,7 @@ 1375 1375 .product-info-card, 1376 1376 .product-feature, 1377 1377 .product-gallery-panel { 1208 + background: #fff; 1378 1378 border: 1px solid @line; 1379 1379 border-radius: @radius; 1380 1380 box-shadow: @shadow-sm; ... ... @@ -1381,18 +1381,16 @@ 1381 1381 } 1382 1382 1383 1383 .product-summary-card { 1384 - padding: 2 8px;1215 + padding: 26px; 1385 1385 1386 1386 h2 { 1387 1387 text-align: left; 1388 1388 margin-top: 0; 1389 - margin-bottom: 14px; 1390 - line-height: 1.25; 1391 1391 } 1392 1392 1393 1393 p { 1394 1394 color: @muted; 1395 - line-height: 1.6 2;1224 + line-height: 1.6; 1396 1396 } 1397 1397 1398 1398 p:last-child { ... ... @@ -1401,19 +1401,13 @@ 1401 1401 } 1402 1402 1403 1403 .product-info-card { 1404 - padding: 2 4px;1233 + padding: 22px; 1405 1405 1406 1406 h3 { 1407 1407 margin-top: 0; 1408 1408 margin-bottom: 12px; 1409 - line-height: 1.3; 1410 1410 } 1411 1411 1412 - p { 1413 - color: @muted; 1414 - line-height: 1.55; 1415 - } 1416 - 1417 1417 ul { 1418 1418 margin: 0; 1419 1419 padding-left: 20px; ... ... @@ -1422,31 +1422,28 @@ 1422 1422 1423 1423 li { 1424 1424 margin: 8px 0; 1425 - line-height: 1. 3;1248 + line-height: 1.45; 1426 1426 } 1427 1427 } 1428 1428 1429 1429 .product-card-note { 1430 - margin: 0 0 1 4px;1253 + margin: 0 0 12px; 1431 1431 color: @muted; 1432 - line-height: 1.5 5;1255 + line-height: 1.5; 1433 1433 } 1434 1434 1435 1435 .product-feature-grid { 1436 1436 display: grid; 1437 1437 grid-template-columns: repeat(3, minmax(0, 1fr)); 1438 - grid-gap: 20px;1261 + grid-gap: 18px; 1439 1439 max-width: 1040px; 1440 - margin: 2 4px auto 0;1263 + margin: 22px auto 0; 1441 1441 } 1442 1442 1443 1443 .product-feature { 1444 - padding: 24px; 1445 - min-width: 0; 1446 - min-height: 100%; 1267 + padding: 22px; 1447 1447 1448 - .card-heading, 1449 - .feature-heading { 1269 + .card-heading { 1450 1450 display: flex; 1451 1451 align-items: center; 1452 1452 gap: 14px; ... ... @@ -1476,13 +1476,13 @@ 1476 1476 p { 1477 1477 margin: 0; 1478 1478 color: @muted; 1479 - line-height: 1.5 2;1299 + line-height: 1.5; 1480 1480 } 1481 1481 } 1482 1482 1483 1483 .product-gallery-caption { 1484 - max-width: 8 20px;1485 - margin: 12px auto0;1304 + max-width: 860px; 1305 + margin: 28px auto 12px; 1486 1486 color: @muted; 1487 1487 font-size: 14px; 1488 1488 line-height: 1.5; ... ... @@ -1489,25 +1489,26 @@ 1489 1489 text-align: center; 1490 1490 } 1491 1491 1492 -/* Keep the default XWiki gallery style.1493 - Only add spacing beforeit andcenterit. */1312 +/* Keep the default XWiki gallery behavior. 1313 + Only center it and make its corners match the product cards. */ 1494 1494 .gallery.xGallery { 1495 - margin: 25px auto; 1496 - width: 920px; 1497 - height: 518px; 1315 + margin-left: auto !important; 1316 + margin-right: auto !important; 1317 + border-radius: @radius; 1318 + overflow: hidden; 1498 1498 } 1499 1499 1500 -.product-section-muted { 1501 - background: 1502 - radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 65%); 1321 +.gallery.xGallery .galleria-container, 1322 +.gallery.xGallery .galleria-stage { 1323 + border-radius: @radius; 1324 + overflow: hidden; 1503 1503 } 1504 1504 1505 -/* Compact process list when used inside a product card. */ 1506 1506 .product-summary-card .process-list { 1507 1507 margin-top: 16px; 1508 1508 1509 1509 li { 1510 - padding: 1 3px 14px 13px 50px;1331 + padding: 12px 14px 12px 50px; 1511 1511 margin-bottom: 10px; 1512 1512 box-shadow: none; 1513 1513 } ... ... @@ -1514,7 +1514,7 @@ 1514 1514 1515 1515 li:before { 1516 1516 left: 14px; 1517 - top: 1 4px;1338 + top: 13px; 1518 1518 width: 24px; 1519 1519 height: 24px; 1520 1520 font-size: 12px; ... ... @@ -1525,7 +1525,11 @@ 1525 1525 } 1526 1526 } 1527 1527 1528 -/* Kept for older product pages that still use a screenshot placeholder/panel. */ 1349 +.product-section-muted { 1350 + background: 1351 + radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 65%); 1352 +} 1353 + 1529 1529 .product-gallery-panel { 1530 1530 max-width: 1040px; 1531 1531 margin: 20px auto 0; ... ... @@ -1587,25 +1587,8 @@ 1587 1587 padding: 20px; 1588 1588 } 1589 1589 1590 - .product-feature { 1591 - .card-heading, 1592 - .feature-heading { 1593 - gap: 12px; 1594 - } 1595 - 1596 - .feature-icon { 1597 - width: 42px; 1598 - height: 42px; 1599 - font-size: 16px; 1600 - } 1601 - } 1602 - 1603 - .gallery.xGallery { 1604 - margin-top: 22px !important; 1605 - } 1606 - 1607 1607 .product-gallery-caption { 1608 - margin-top: 10px;1416 + margin-top: 22px; 1609 1609 padding: 0 14px; 1610 1610 } 1611 1611 ... ... @@ -1617,6 +1617,7 @@ 1617 1617 /* ========== Resources Index ========== */ 1618 1618 1619 1619 .resources-index-page { 1428 + background: #fff; 1620 1620 1621 1621 .services-grid { 1622 1622 grid-template-columns: repeat(2, minmax(0, 1fr)); ... ... @@ -1652,284 +1652,3 @@ 1652 1652 color: @muted; 1653 1653 } 1654 1654 } 1655 - 1656 -/* ========== Global Theme Background ========== */ 1657 - 1658 -html, 1659 -body { 1660 - min-height: 100%; 1661 -} 1662 - 1663 -body { 1664 - color: @text; 1665 - background: 1666 - radial-gradient(circle at 12% 8%, rgba(0, 147, 125, 0.08) 0, transparent 26%), 1667 - radial-gradient(circle at 90% 28%, rgba(7, 24, 45, 0.05) 0, transparent 30%), 1668 - linear-gradient(180deg, #fff 0, @brand-bg 42%, #fff 100%) !important; 1669 - background-attachment: fixed; 1670 -} 1671 - 1672 -#mainContentArea { 1673 - padding: 0; 1674 - overflow-x: hidden; 1675 -} 1676 - 1677 -/* ========== Main Page Hero / SaaS Layout ========== */ 1678 - 1679 -#mainContentArea .hero.hero-saas { 1680 - min-height: auto; 1681 - padding: 60px 0 34px; 1682 - display: flex; 1683 - align-items: center; 1684 - overflow: hidden; 1685 - background: transparent; 1686 -} 1687 - 1688 -#mainContentArea .hero-layout { 1689 - max-width: 1120px; 1690 - margin: 0 auto; 1691 - display: grid; 1692 - grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); 1693 - gap: 56px; 1694 - align-items: center; 1695 -} 1696 - 1697 -#mainContentArea .hero-copy { 1698 - min-width: 0; 1699 - text-align: left; 1700 -} 1701 - 1702 -#mainContentArea .hero.hero-saas h1 { 1703 - max-width: 640px; 1704 - margin: 0 0 26px; 1705 - font-size: 60px; 1706 - font-weight: 800; 1707 - line-height: 1; 1708 - letter-spacing: -3px; 1709 -} 1710 - 1711 -#mainContentArea .hero.hero-saas h1 span { 1712 - color: @brand; 1713 -} 1714 - 1715 -#mainContentArea .hero.hero-saas .lead { 1716 - max-width: 590px; 1717 - margin: 0 0 28px; 1718 - color: #334155; 1719 - text-align: left; 1720 - font-size: 18px; 1721 - line-height: 1.6; 1722 -} 1723 - 1724 -#mainContentArea .hero.hero-saas .benefits { 1725 - max-width: 620px; 1726 - margin: 0 0 30px; 1727 - padding: 0; 1728 - display: grid; 1729 - grid-template-columns: repeat(2, minmax(0, 1fr)); 1730 - gap: 10px 24px; 1731 - list-style: none; 1732 - color: #475569; 1733 - font-size: 15px; 1734 - text-align: left; 1735 -} 1736 - 1737 -#mainContentArea .hero.hero-saas .benefits li { 1738 - display: grid; 1739 - grid-template-columns: 18px minmax(0, 1fr); 1740 - column-gap: 8px; 1741 - align-items: start; 1742 - margin: 0; 1743 - line-height: 1.45; 1744 -} 1745 - 1746 -#mainContentArea .hero.hero-saas .benefits li::before { 1747 - content: "✓"; 1748 - display: block; 1749 - width: 18px; 1750 - color: @brand; 1751 - font-weight: 900; 1752 - line-height: 1.45; 1753 - text-align: left; 1754 - margin: 0; 1755 -} 1756 - 1757 -#mainContentArea .hero.hero-saas .hero-actions, 1758 -#mainContentArea .hero.hero-saas #hero-cta { 1759 - display: flex; 1760 - flex-wrap: wrap; 1761 - justify-content: flex-start; 1762 - gap: 12px; 1763 - margin-top: 0; 1764 -} 1765 - 1766 -#mainContentArea .hero-image-wrapper { 1767 - min-width: 0; 1768 - display: flex; 1769 - justify-content: center; 1770 - align-items: center; 1771 -} 1772 - 1773 -#mainContentArea .hero-image { 1774 - display: block; 1775 - width: 100%; 1776 - max-width: 620px; 1777 - height: auto; 1778 - border: 0; 1779 -} 1780 - 1781 -/* ========== Main Page Hero Responsive ========== */ 1782 - 1783 -@media (max-width: 1100px) { 1784 - #mainContentArea .hero-layout { 1785 - max-width: 760px; 1786 - grid-template-columns: 1fr; 1787 - gap: 34px; 1788 - } 1789 - 1790 - #mainContentArea .hero-copy { 1791 - order: 1; 1792 - text-align: center; 1793 - } 1794 - 1795 - #mainContentArea .hero-image-wrapper { 1796 - order: 2; 1797 - } 1798 - 1799 - #mainContentArea .hero.hero-saas h1 { 1800 - margin-left: auto; 1801 - margin-right: auto; 1802 - text-align: center; 1803 - } 1804 - 1805 - #mainContentArea .hero.hero-saas .lead { 1806 - margin-left: auto; 1807 - margin-right: auto; 1808 - text-align: center; 1809 - } 1810 - 1811 - #mainContentArea .hero.hero-saas .benefits { 1812 - margin-left: auto; 1813 - margin-right: auto; 1814 - } 1815 - 1816 - #mainContentArea .hero.hero-saas .hero-actions, 1817 - #mainContentArea .hero.hero-saas #hero-cta { 1818 - justify-content: center; 1819 - } 1820 - 1821 - #mainContentArea .hero-image { 1822 - max-width: 620px; 1823 - } 1824 -} 1825 - 1826 -@media (max-width: 640px) { 1827 - #mainContentArea .hero.hero-saas { 1828 - padding: 42px 0 28px; 1829 - } 1830 - 1831 - #mainContentArea .hero-layout { 1832 - gap: 28px; 1833 - } 1834 - 1835 - #mainContentArea .hero.hero-saas h1 { 1836 - font-size: 42px; 1837 - letter-spacing: -1.5px; 1838 - } 1839 - 1840 - #mainContentArea .hero.hero-saas .lead { 1841 - font-size: 17px; 1842 - } 1843 - 1844 - #mainContentArea .hero.hero-saas .benefits { 1845 - grid-template-columns: 1fr; 1846 - } 1847 - 1848 - #mainContentArea .hero-image { 1849 - max-width: 100%; 1850 - } 1851 -} 1852 - 1853 -/* ========== Accessibility / Contrast Improvements ========== */ 1854 - 1855 -/* Keep the article area readable while preserving the page background around it. */ 1856 -/*#mainContentArea .resource-layout { 1857 - padding: 28px; 1858 - border: 1px solid fade(@line, 85%); 1859 - border-radius: @radius; 1860 - background: rgba(255, 255, 255, .88); 1861 - box-shadow: @shadow-sm; 1862 -}*/ 1863 - 1864 -/* Ensure all reusable cards have a real surface, not transparent over the gradient. */ 1865 -#mainContentArea .widget, 1866 -#mainContentArea .pathway-card, 1867 -#mainContentArea .service-card, 1868 -#mainContentArea .resource-card, 1869 -#mainContentArea .services .service, 1870 -#mainContentArea .product-card, 1871 -#mainContentArea .product-feature, 1872 -#mainContentArea .product-summary-card, 1873 -#mainContentArea .product-info-card { 1874 - background: #fff; 1875 -} 1876 - 1877 -/* Make notes more readable and visually stronger. */ 1878 -#mainContentArea .resource-note { 1879 - border: 1px solid fade(@brand, 18%); 1880 - border-left: 4px solid @brand; 1881 - background: #fff; 1882 - box-shadow: 0 10px 28px rgba(15, 23, 42, .045); 1883 -} 1884 - 1885 -/* Keep the sidebar clearly separated from the background. */ 1886 -#mainContentArea .resource-sidebar { 1887 - background: #fff; 1888 -} 1889 - 1890 -/* Make CTA panels stand out more clearly. */ 1891 -#mainContentArea .resource-cta, 1892 -#mainContentArea .resource-inline-cta { 1893 - background: #fff; 1894 -} 1895 - 1896 -/* Improve table readability on long resource pages. */ 1897 -#mainContentArea .resource-content table { 1898 - background: #fff; 1899 -} 1900 - 1901 -#mainContentArea .resource-content table th { 1902 - color: @text; 1903 - background: #F8FAFC; 1904 -} 1905 - 1906 -#mainContentArea .resource-content table td { 1907 - color: @text-soft; 1908 -} 1909 - 1910 -/* Slightly improve paragraph/list contrast in long articles. */ 1911 -#mainContentArea .resource-content p, 1912 -#mainContentArea .resource-content li { 1913 - color: @text-soft; 1914 -} 1915 - 1916 -#mainContentArea .resource-content .resource-note p, 1917 -#mainContentArea .resource-content .resource-checklist li, 1918 -#mainContentArea .resource-content .process-list li { 1919 - color: @muted; 1920 -} 1921 - 1922 -@media (max-width: 900px) { 1923 - #mainContentArea .resource-layout { 1924 - padding: 22px; 1925 - } 1926 -} 1927 - 1928 -@media (max-width: 640px) { 1929 - #mainContentArea .resource-layout { 1930 - padding: 18px; 1931 - border-radius: 14px; 1932 - } 1933 -} 1934 - 1935 -