Changes for page Public Web Site

Last modified by Agnease on 2026/05/30 16:24

From version 10.28
edited by Agnease
on 2026/05/19 07:18
Change comment: There is no comment for this version
To version 6.52
edited by Agnease
on 2026/05/12 14:07
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -159,7 +159,7 @@
159 159   <p>
160 160   A business-focused explanation of why regular LTS upgrades reduce security, compatibility and maintenance risk.
161 161   </p>
162 - <a href="$xwiki.getURL('resources.why-upgrade-xwiki')">Read the resource</a>
162 + <a href="/resources/why-upgrade-xwiki">Read the resource</a>
163 163   </article>
164 164  
165 165   <article class="resource-card">
... ... @@ -167,7 +167,7 @@
167 167   <p>
168 168   How Agnease approaches safe XWiki upgrades for real production environments with customizations and integrations.
169 169   </p>
170 - <a href="$xwiki.getURL('services.xwiki-upgrades')">View the service</a>
170 + <a href="/services/xwiki-upgrades">View the service</a>
171 171   </article>
172 172   </div>
173 173   </div>
XWiki.StyleSheetExtension[0]
code
... ... @@ -599,31 +599,6 @@
599 599   }
600 600  }
601 601  
602 -.resource-content {
603 - order: 1;
604 -}
605 -
606 -.resource-sidebar {
607 - order: 2;
608 -}
609 -
610 -@media (max-width: 767px) {
611 - .resource-layout {
612 - display: flex;
613 - flex-direction: column;
614 - }
615 -
616 - .resource-sidebar {
617 - order: 0;
618 - position: static;
619 - width: 100%;
620 - }
621 -
622 - .resource-content {
623 - order: 1;
624 - }
625 -}
626 -
627 627  /* ========== CTA ========== */
628 628  
629 629  .cta-section {
... ... @@ -751,563 +751,3 @@
751 751   padding: 24px 20px;
752 752   }
753 753  }
754 -/* ========== Resource / Article Pages ========== */
755 -
756 -.resource-page {
757 - padding-top: 34px;
758 -}
759 -
760 -.resource-header {
761 - padding: 40px 0 30px;
762 - border-top: none;
763 - background:
764 - radial-gradient(50rem 18rem at 50% -10%, @brand-soft 0%, transparent 60%),
765 - radial-gradient(50rem 18rem at 50% 0%, #E8F6F3 0%, transparent 60%);
766 -
767 - h1 {
768 - margin: 0 auto 14px;
769 - text-align: center;
770 - line-height: 1.18;
771 - }
772 -
773 - .resource-summary {
774 - max-width: 780px;
775 - margin: 0 auto;
776 - color: @muted;
777 - text-align: center;
778 - font-size: 18px;
779 - line-height: 1.55;
780 - }
781 -}
782 -
783 -.resource-layout {
784 - display: grid;
785 - grid-template-columns: minmax(0, 760px) 280px;
786 - gap: 42px;
787 - max-width: 1080px;
788 - margin: 0 auto;
789 - align-items: start;
790 -}
791 -
792 -.resource-content {
793 - color: @text;
794 - font-size: 16px;
795 - line-height: 1.68;
796 -
797 - h2 {
798 - text-align: left;
799 - margin: 34px 0 12px;
800 - line-height: 1.28;
801 - }
802 -
803 - h3 {
804 - margin: 24px 0 8px;
805 - line-height: 1.3;
806 - }
807 -
808 - p {
809 - margin: 0 0 16px;
810 - }
811 -
812 - ul,
813 - ol {
814 - margin: 0 0 18px;
815 - padding-left: 22px;
816 - }
817 -
818 - li {
819 - margin: 6px 0;
820 - }
821 -
822 - strong {
823 - color: @text;
824 - }
825 -}
826 -
827 -.resource-note {
828 - border-left: 4px solid @brand;
829 - background: @brand-bg;
830 - padding: 16px 18px;
831 - margin: 22px 0;
832 - border-radius: 0 @radius @radius 0;
833 -
834 - p:last-child {
835 - margin-bottom: 0;
836 - }
837 -}
838 -
839 -.resource-checklist {
840 - margin: 18px 0 24px;
841 - padding: 0;
842 - list-style: none;
843 -
844 - li {
845 - position: relative;
846 - padding: 10px 0 10px 34px;
847 - border-bottom: 1px solid @line;
848 -
849 - &:before {
850 - content: "\f00c";
851 - font-family: FontAwesome;
852 - position: absolute;
853 - left: 0;
854 - top: 11px;
855 - color: @brand;
856 - }
857 - }
858 -}
859 -
860 -.resource-sidebar {
861 - position: sticky;
862 - top: 96px;
863 - border: 1px solid @line;
864 - border-radius: @radius;
865 - padding: 18px;
866 - background: #fff;
867 - box-shadow: @shadow-sm;
868 -
869 - h4 {
870 - margin: 0 0 10px;
871 - }
872 -
873 - ul {
874 - margin: 0;
875 - padding-left: 18px;
876 - color: @muted;
877 - }
878 -
879 - li {
880 - margin: 8px 0;
881 - }
882 -
883 - a {
884 - color: @brand;
885 - font-weight: 600;
886 - }
887 -}
888 -
889 -.resource-cta {
890 - margin-top: 36px;
891 - padding: 22px;
892 - border: 1px solid fade(@brand, 20%);
893 - border-radius: @radius;
894 - background: @brand-bg;
895 -
896 - h3 {
897 - margin-top: 0;
898 - }
899 -
900 - p {
901 - color: @muted;
902 - }
903 -}
904 -
905 -@media (max-width: 900px) {
906 - .resource-layout {
907 - grid-template-columns: 1fr;
908 - }
909 -
910 - .resource-sidebar {
911 - position: static;
912 - }
913 -}
914 -/* ========== Products / Extensions Pages ========== */
915 -
916 -.product-index-section {
917 - padding: 52px 0 56px;
918 -
919 - h2 {
920 - margin-bottom: 10px;
921 - }
922 -}
923 -
924 -.product-card-grid {
925 - max-width: 840px;
926 - margin: 28px auto 0;
927 - display: grid;
928 - grid-template-columns: 1fr;
929 - grid-gap: 18px;
930 -}
931 -
932 -.product-card {
933 - background: #fff;
934 - border: 1px solid @line;
935 - border-radius: @radius;
936 - box-shadow: @shadow-sm;
937 - padding: 28px;
938 - display: grid;
939 - grid-template-columns: 68px 1fr;
940 - grid-gap: 22px;
941 - align-items: start;
942 - transition: transform .18s ease, box-shadow .18s ease;
943 -
944 - &:hover {
945 - transform: translateY(-2px);
946 - box-shadow: @shadow;
947 - }
948 -
949 - .product-card-icon {
950 - width: 58px;
951 - height: 58px;
952 - border-radius: 50%;
953 - background: fade(@brand, 10%);
954 - border: 1px solid fade(@brand, 20%);
955 - color: @brand;
956 - display: flex;
957 - align-items: center;
958 - justify-content: center;
959 - font-size: 22px;
960 - flex-shrink: 0;
961 - }
962 -
963 - h3 {
964 - margin: 0 0 10px;
965 - color: @text;
966 - font-size: 23px;
967 - line-height: 1.25;
968 - font-weight: 800;
969 - }
970 -
971 - p {
972 - color: @muted;
973 - line-height: 1.6;
974 - }
975 -
976 - .card-link {
977 - margin: 0;
978 -
979 - a {
980 - font-weight: 700;
981 - }
982 - }
983 -}
984 -
985 -.product-card-kicker {
986 - margin-bottom: 10px;
987 - padding: 5px 10px;
988 - font-size: 12px;
989 - text-transform: uppercase;
990 - letter-spacing: .04em;
991 -}
992 -
993 -.product-highlights {
994 - margin: 14px 0 20px;
995 - padding-left: 18px;
996 - color: @muted;
997 -
998 - li {
999 - margin: 6px 0;
1000 - line-height: 1.45;
1001 - }
1002 -}
1003 -
1004 -/* ========== Individual Product Pages ========== */
1005 -
1006 -.product-layout {
1007 - display: grid;
1008 - grid-template-columns: 1.1fr .9fr;
1009 - grid-gap: 36px;
1010 - max-width: 1040px;
1011 - margin: 0 auto;
1012 - align-items: start;
1013 -}
1014 -
1015 -.product-summary-card,
1016 -.product-info-card,
1017 -.product-gallery-panel {
1018 - background: #fff;
1019 - border: 1px solid @line;
1020 - border-radius: @radius;
1021 - box-shadow: @shadow-sm;
1022 -}
1023 -
1024 -.product-summary-card {
1025 - padding: 26px;
1026 -
1027 - h2 {
1028 - text-align: left;
1029 - margin-top: 0;
1030 - }
1031 -
1032 - p {
1033 - color: @muted;
1034 - line-height: 1.6;
1035 - }
1036 -
1037 - p:last-child {
1038 - margin-bottom: 0;
1039 - }
1040 -}
1041 -
1042 -.product-info-card {
1043 - padding: 22px;
1044 -
1045 - h3 {
1046 - margin-top: 0;
1047 - margin-bottom: 12px;
1048 - }
1049 -
1050 - ul {
1051 - margin: 0;
1052 - padding-left: 20px;
1053 - color: @muted;
1054 - }
1055 -
1056 - li {
1057 - margin: 8px 0;
1058 - line-height: 1.45;
1059 - }
1060 -}
1061 -
1062 -.product-feature-grid {
1063 - display: grid;
1064 - grid-template-columns: repeat(3, minmax(0, 1fr));
1065 - grid-gap: 18px;
1066 - max-width: 1040px;
1067 - margin: 26px auto 0;
1068 -}
1069 -
1070 -.product-feature {
1071 - background: #fff;
1072 - border: 1px solid @line;
1073 - border-radius: @radius;
1074 - box-shadow: @shadow-sm;
1075 - padding: 22px;
1076 - transition: transform .18s ease, box-shadow .18s ease;
1077 -
1078 - &:hover {
1079 - transform: translateY(-2px);
1080 - box-shadow: @shadow;
1081 - }
1082 -
1083 - .feature-icon {
1084 - width: 46px;
1085 - height: 46px;
1086 - border-radius: 50%;
1087 - background: fade(@brand, 10%);
1088 - color: @brand;
1089 - display: flex;
1090 - align-items: center;
1091 - justify-content: center;
1092 - margin-bottom: 14px;
1093 - font-size: 18px;
1094 - }
1095 -
1096 - h3 {
1097 - margin: 0 0 8px;
1098 - color: @text;
1099 - font-size: 18px;
1100 - line-height: 1.25;
1101 - }
1102 -
1103 - p {
1104 - margin: 0;
1105 - color: @muted;
1106 - line-height: 1.5;
1107 - }
1108 -}
1109 -
1110 -.product-gallery-panel {
1111 - max-width: 1040px;
1112 - margin: 20px auto 0;
1113 - padding: 26px;
1114 -
1115 - h2 {
1116 - margin-top: 0;
1117 - text-align: center;
1118 - }
1119 -
1120 - .gallery-note {
1121 - max-width: 700px;
1122 - margin: 0 auto 18px;
1123 - color: @muted;
1124 - text-align: center;
1125 - line-height: 1.55;
1126 - }
1127 -}
1128 -
1129 -.product-gallery-placeholder {
1130 - min-height: 260px;
1131 - padding: 28px;
1132 - border: 1px dashed fade(@brand, 40%);
1133 - border-radius: @radius;
1134 - background: fade(@brand, 5%);
1135 - color: @muted;
1136 - text-align: center;
1137 - display: flex;
1138 - align-items: center;
1139 - justify-content: center;
1140 -}
1141 -
1142 -.product-section-muted {
1143 - background:
1144 - radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 65%);
1145 -}
1146 -
1147 -@media (max-width: 980px) {
1148 - .product-layout,
1149 - .product-feature-grid {
1150 - grid-template-columns: 1fr;
1151 - }
1152 -
1153 - .product-summary-card h2 {
1154 - text-align: center;
1155 - }
1156 -}
1157 -
1158 -@media (max-width: 640px) {
1159 - .product-card {
1160 - grid-template-columns: 1fr;
1161 - padding: 22px;
1162 - text-align: left;
1163 -
1164 - .product-card-icon {
1165 - margin-bottom: 2px;
1166 - }
1167 - }
1168 -
1169 - .product-summary-card,
1170 - .product-info-card,
1171 - .product-feature,
1172 - .product-gallery-panel {
1173 - padding: 20px;
1174 - }
1175 -}
1176 -/* ========== Resources Index ========== */
1177 -
1178 -.resources-index-page {
1179 - padding: 56px 0 72px;
1180 - background: @brand-bg;
1181 -}
1182 -
1183 -.resources-intro {
1184 - max-width: 820px;
1185 - margin: 0 auto 32px;
1186 - text-align: center;
1187 -}
1188 -
1189 -.resources-intro p {
1190 - color: @muted;
1191 - font-size: 17px;
1192 - line-height: 1.7;
1193 - margin: 0;
1194 -}
1195 -
1196 -.resources-grid {
1197 - display: grid;
1198 - grid-template-columns: repeat(2, minmax(0, 1fr));
1199 - gap: 24px;
1200 - margin-bottom: 36px;
1201 -}
1202 -
1203 -.resource-card {
1204 - display: flex;
1205 - gap: 18px;
1206 - background: #fff;
1207 - border: 1px solid @line;
1208 - border-radius: @radius;
1209 - box-shadow: @shadow-sm;
1210 - padding: 24px;
1211 -}
1212 -
1213 -.resource-card-icon {
1214 - flex: 0 0 46px;
1215 - width: 46px;
1216 - height: 46px;
1217 - border-radius: 14px;
1218 - background: @brand-soft;
1219 - color: @brand-strong;
1220 - display: flex;
1221 - align-items: center;
1222 - justify-content: center;
1223 - font-size: 20px;
1224 -}
1225 -
1226 -.resource-card-label {
1227 - color: @brand-strong;
1228 - font-size: 13px;
1229 - font-weight: 700;
1230 - text-transform: uppercase;
1231 - letter-spacing: .04em;
1232 - margin-bottom: 8px;
1233 -}
1234 -
1235 -.resource-card h2 {
1236 - font-size: 22px;
1237 - line-height: 1.25;
1238 - margin: 0 0 12px;
1239 -}
1240 -
1241 -.resource-card h2 a {
1242 - color: @text;
1243 - text-decoration: none;
1244 -}
1245 -
1246 -.resource-card h2 a:hover {
1247 - color: @brand-strong;
1248 - text-decoration: none;
1249 -}
1250 -
1251 -.resource-card p {
1252 - color: @muted;
1253 - font-size: 15px;
1254 - line-height: 1.65;
1255 - margin: 0 0 16px;
1256 -}
1257 -
1258 -.resource-card-link {
1259 - color: @brand-strong;
1260 - font-weight: 700;
1261 - text-decoration: none;
1262 -}
1263 -
1264 -.resource-card-link:hover {
1265 - color: @brand;
1266 - text-decoration: none;
1267 -}
1268 -
1269 -.resources-next {
1270 - max-width: 820px;
1271 - margin: 0 auto 32px;
1272 - text-align: center;
1273 -}
1274 -
1275 -.resources-next h2 {
1276 - font-size: 26px;
1277 - margin: 0 0 10px;
1278 -}
1279 -
1280 -.resources-next p {
1281 - color: @muted;
1282 - font-size: 16px;
1283 - line-height: 1.7;
1284 - margin: 0;
1285 -}
1286 -
1287 -@media (max-width: 767px) {
1288 - .resources-index-page {
1289 - padding: 36px 0 52px;
1290 - }
1291 -
1292 - .resources-intro {
1293 - text-align: left;
1294 - margin-bottom: 24px;
1295 - }
1296 -
1297 - .resources-grid {
1298 - grid-template-columns: 1fr;
1299 - gap: 18px;
1300 - }
1301 -
1302 - .resource-card {
1303 - padding: 20px;
1304 - }
1305 -
1306 - .resource-card h2 {
1307 - font-size: 20px;
1308 - }
1309 -
1310 - .resources-next {
1311 - text-align: left;
1312 - }
1313 -}
XWiki.StyleSheetExtension[1]
code
... ... @@ -1,253 +1,204 @@
1 1  /* ========== Agnease Public Top Menu ========== */
2 2  
3 -/* Keep the public menu aligned to the right on desktop */
4 -@media (min-width: 768px) {
5 - .navbar-nav {
6 - float: right;
7 - margin-left: auto;
8 - }
3 +@brand: #00937D;
4 +@brand-strong: #007B6A;
5 +@text: #2D3A34;
6 +@muted: #5B6B64;
7 +@line: #E4ECE9;
8 +@brand-bg: #F4FCFA;
9 9  
10 - .site-nav {
11 - margin-left: auto;
12 - justify-content: flex-end;
13 - }
10 +/* Top-level public menu links: Services + Contact */
11 +.navbar-nav > li > a,
12 +.navbar-nav > li.agnease-services-menu > a {
13 + color: @brand;
14 + font-size: inherit;
15 + font-weight: 400;
16 + background: transparent;
17 + background-color: transparent;
18 + box-shadow: none;
19 + text-decoration: none;
14 14  }
15 15  
16 -/* Top-level menu items */
17 -
18 -.agnease-menu-item,
19 -.agnease-menu-link {
20 - > a,
21 - > .dropdown-toggle {
22 - color: @brand;
23 - font-size: 17px;
24 - font-weight: 600;
25 - padding-left: 16px;
26 - padding-right: 16px;
27 - background: transparent !important;
28 - background-color: transparent !important;
29 - background-image: none !important;
30 - box-shadow: none !important;
31 - }
32 -
33 - > a:hover,
34 - > a:focus,
35 - > a:active,
36 - &.open > a,
37 - &.open > a:hover,
38 - &.open > a:focus,
39 - &.open > a:active,
40 - &.active > a,
41 - &.active > a:hover,
42 - &.active > a:focus,
43 - &.active > a:active {
44 - color: @brand-strong;
45 - background: transparent !important;
46 - background-color: transparent !important;
47 - background-image: none !important;
48 - box-shadow: none !important;
49 - outline: none;
50 - text-decoration: none;
51 - }
52 -
53 - .caret {
54 - margin-left: 5px;
55 - border-top-color: @brand;
56 - border-bottom-color: @brand;
57 - }
58 -
59 - > a:hover .caret,
60 - > a:focus .caret,
61 - > a:active .caret,
62 - &.open > a .caret,
63 - &.active > a .caret {
64 - border-top-color: @brand-strong;
65 - border-bottom-color: @brand-strong;
66 - }
67 -}
68 -
69 -/* Strong Bootstrap/XWiki overrides for top-level menu backgrounds */
70 -
71 -.navbar-nav > li,
72 -.navbar-nav > li:hover,
73 -.navbar-nav > li:focus,
74 -.navbar-nav > li:active,
75 -.navbar-nav > li.open,
76 -.navbar-nav > li.open:hover,
77 -.navbar-nav > li.open:focus,
78 -.navbar-nav > li.open:active,
79 -.navbar-nav > li.active,
80 -.navbar-nav > li.active:hover,
81 -.navbar-nav > li.active:focus,
82 -.navbar-nav > li.active:active {
83 - background: transparent !important;
84 - background-color: transparent !important;
85 - background-image: none !important;
86 -}
87 -
88 -.navbar-nav > li > a,
89 89  .navbar-nav > li > a:hover,
90 90  .navbar-nav > li > a:focus,
91 -.navbar-nav > li > a:active,
92 92  .navbar-nav > li.open > a,
93 93  .navbar-nav > li.open > a:hover,
94 94  .navbar-nav > li.open > a:focus,
95 -.navbar-nav > li.open > a:active,
96 -.navbar-nav > li.active > a,
97 -.navbar-nav > li.active > a:hover,
98 -.navbar-nav > li.active > a:focus,
99 -.navbar-nav > li.active > a:active,
100 -.nav .open > a,
101 -.nav .open > a:hover,
102 -.nav .open > a:focus {
103 - background: transparent !important;
104 - background-color: transparent !important;
105 - background-image: none !important;
106 - box-shadow: none !important;
27 +.navbar-nav > li.agnease-services-menu > a:hover,
28 +.navbar-nav > li.agnease-services-menu > a:focus,
29 +.navbar-nav > li.agnease-services-menu.open > a,
30 +.navbar-nav > li.agnease-services-menu.open > a:hover,
31 +.navbar-nav > li.agnease-services-menu.open > a:focus {
32 + color: @brand-strong;
33 + background: transparent;
34 + background-color: transparent;
35 + box-shadow: none;
36 + text-decoration: none;
107 107  }
108 108  
109 -/* Dropdown panel */
39 +.agnease-services-menu {
40 + .dropdown-toggle {
41 + font-weight: 400;
42 + font-size: inherit;
43 + }
110 110  
111 -.agnease-dropdown {
112 - min-width: 310px;
113 - padding: 10px 8px;
114 - border: 1px solid fade(@brand, 18%);
45 + .caret {
46 + margin-left: 4px;
47 + }
48 +}
49 +
50 +/* Dropdown panel */
51 +.agnease-services-dropdown {
52 + min-width: 360px;
53 + padding: 10px;
54 + border: 1px solid @line;
115 115   border-radius: 12px;
56 + box-shadow: 0 12px 36px rgba(0, 0, 0, .10);
116 116   background: #fff;
117 - box-shadow: 0 12px 32px fade(@brand-strong, 12%);
118 118  
119 119   > li > a {
120 120   display: flex;
121 - align-items: center;
61 + align-items: flex-start;
122 122   gap: 12px;
123 - padding: 11px 14px;
63 + padding: 10px 12px;
64 + border-radius: 10px;
65 + white-space: normal;
66 + text-decoration: none;
67 + background: transparent;
124 124   color: @brand;
125 - background: transparent !important;
126 - background-color: transparent !important;
127 - background-image: none !important;
128 - white-space: nowrap;
129 - font-size: 16px;
130 - font-weight: 600;
131 - line-height: 1.3;
132 - box-shadow: none !important;
133 133  
134 - i {
135 - width: 20px;
136 - flex: 0 0 20px;
137 - color: @brand;
138 - text-align: center;
139 - font-size: 15px;
140 - }
141 -
142 142   &:hover,
143 - &:focus,
144 - &:active {
71 + &:focus {
145 145   color: @brand-strong;
146 - background: transparent !important;
147 - background-color: transparent !important;
148 - background-image: none !important;
73 + background: @brand-bg;
149 149   text-decoration: none;
150 - outline: none;
151 - box-shadow: none !important;
152 152  
153 - i {
76 + .menu-icon {
154 154   color: @brand-strong;
78 + background: fade(@brand, 12%);
79 + border-color: fade(@brand, 24%);
155 155   }
156 - }
157 - }
158 158  
159 - > .active > a,
160 - > .active > a:hover,
161 - > .active > a:focus,
162 - > .active > a:active {
163 - color: @brand-strong;
164 - background: transparent !important;
165 - background-color: transparent !important;
166 - background-image: none !important;
167 - text-decoration: none;
168 - box-shadow: none !important;
82 + .menu-text strong {
83 + color: @brand-strong;
84 + }
169 169  
170 - i {
171 - color: @brand-strong;
86 + .menu-text small {
87 + color: @muted;
88 + }
172 172   }
173 173   }
174 174  
175 175   .divider {
176 176   margin: 8px 0;
177 - background-color: fade(@brand, 16%);
94 + background-color: @line;
178 178   }
179 -}
180 180  
181 -/* Strong Bootstrap/XWiki overrides for submenu gray hover backgrounds */
97 + .menu-icon {
98 + width: 34px;
99 + height: 34px;
100 + border-radius: 50%;
101 + background: fade(@brand, 8%);
102 + border: 1px solid fade(@brand, 18%);
103 + color: @brand;
104 + display: flex;
105 + align-items: center;
106 + justify-content: center;
107 + flex-shrink: 0;
108 + transition: color .15s ease, background .15s ease, border-color .15s ease;
109 + }
182 182  
183 -.dropdown-menu > li > a,
184 -.dropdown-menu > li > a:hover,
185 -.dropdown-menu > li > a:focus,
186 -.dropdown-menu > li > a:active,
187 -.dropdown-menu > .active > a,
188 -.dropdown-menu > .active > a:hover,
189 -.dropdown-menu > .active > a:focus,
190 -.dropdown-menu > .active > a:active,
191 -.agnease-dropdown > li > a,
192 -.agnease-dropdown > li > a:hover,
193 -.agnease-dropdown > li > a:focus,
194 -.agnease-dropdown > li > a:active {
195 - background: transparent !important;
196 - background-color: transparent !important;
197 - background-image: none !important;
198 - box-shadow: none !important;
199 -}
111 + .menu-text {
112 + display: flex;
113 + flex-direction: column;
114 + line-height: 1.25;
200 200  
201 -/* Mobile */
116 + strong {
117 + color: @brand;
118 + font-size: inherit;
119 + font-weight: 400;
120 + }
202 202  
203 -@media (max-width: 767px) {
204 - .navbar-nav {
205 - float: none;
206 - margin-left: 0;
122 + small {
123 + color: @muted;
124 + font-size: 12px;
125 + margin-top: 2px;
126 + font-weight: 400;
127 + }
207 207   }
129 +}
208 208  
209 - .agnease-menu-item,
210 - .agnease-menu-link {
211 - > a,
212 - > .dropdown-toggle {
213 - font-size: 16px;
214 - padding-top: 9px;
215 - padding-bottom: 9px;
216 - }
131 +/* Mobile dropdown: compact vertical list */
132 +@media (max-width: 767px) {
133 + .navbar-nav > li.agnease-services-menu {
134 + position: static;
217 217   }
218 218  
219 - .agnease-dropdown {
137 + .agnease-services-dropdown {
138 + left: 50% !important;
139 + right: auto !important;
140 + transform: translateX(-50%);
141 + width: calc(100vw - 40px);
142 + max-width: 380px;
220 220   min-width: 0;
221 - width: 100%;
222 - padding: 4px 8px 8px 18px;
223 - border: 0;
224 - border-radius: 0;
225 - box-shadow: none;
226 - background: transparent;
144 + max-height: calc(100vh - 190px);
145 + overflow-y: auto;
227 227  
147 + padding: 8px;
148 + margin-top: 6px;
149 + border-radius: 12px;
150 + border: 1px solid @line;
151 + box-shadow: 0 12px 32px rgba(0, 0, 0, .12);
152 + background: #fff;
153 +
228 228   > li > a {
229 - padding: 8px 10px;
155 + display: flex;
156 + align-items: center;
157 + gap: 10px;
158 + min-height: 0;
159 + padding: 9px 10px;
160 + border-radius: 9px;
161 + text-align: left;
230 230   white-space: normal;
231 - font-size: 15px;
163 + }
164 +
165 + .divider {
166 + margin: 6px 0;
167 + }
168 +
169 + .menu-icon {
170 + width: 28px;
171 + height: 28px;
172 + font-size: 13px;
173 + flex: 0 0 28px;
174 + }
175 +
176 + .menu-text {
177 + display: block;
178 + line-height: 1.25;
179 + }
180 +
181 + .menu-text strong {
182 + display: block;
183 + font-size: 14px;
184 + font-weight: 400;
232 232   color: @brand;
233 - background: transparent !important;
186 + }
234 234  
235 - i {
236 - width: 18px;
237 - flex-basis: 18px;
238 - }
188 + .menu-text small {
189 + display: none;
190 + }
239 239  
240 - &:hover,
241 - &:focus,
242 - &:active {
243 - color: @brand-strong;
244 - background: transparent !important;
245 - }
192 + > li > a:hover .menu-text strong,
193 + > li > a:focus .menu-text strong {
194 + color: @brand-strong;
246 246   }
247 247  
248 - .divider {
249 - margin: 5px 0;
250 - background-color: fade(@brand, 16%);
197 + > li > a:hover .menu-icon,
198 + > li > a:focus .menu-icon {
199 + color: @brand-strong;
200 + background: fade(@brand, 12%);
201 + border-color: fade(@brand, 24%);
251 251   }
252 252   }
253 253  }