/* ============================================================
   4Tex GmbH — components.css
   Header / navigation / footer / language toggle / forms
   ============================================================ */

/* ---- Header ----------------------------------------------
   Binding corporate palette only: white / black / grey / blue.
   White sticky bar, ~75px, fine bottom line + subtle shadow. */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: #FFFFFF;
  border-bottom: 1px solid #ECECEC;
  transition: box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.site-header.is-scrolled {
  box-shadow: 0 6px 24px rgba(0,0,0,.08), 0 1px 0 rgba(0,0,0,.04);
  border-bottom-color: transparent;
}

.site-header__inner {
  display: flex; align-items: center; gap: clamp(1rem, 3vw, 2.5rem);
  height: var(--header-h);
  padding-left: 0;   /* Logo sitzt bündig am Bildschirmrand */
}
.brand { display: inline-flex; align-items: center; gap: .7rem; flex-shrink: 0; margin-right: auto; }
.brand__logo { height: 34px; width: auto; }
/* Fallback for the logo mask source, available from the very first paint.
   url() in a custom property resolves against THIS stylesheet (css/), so
   ../images/… is correct from every page depth (incl. produkte/). Without
   this, the mask is invalid until main.js sets the variable after the
   deferred scripts run — and an unmasked .brand__logo--mask paints its
   plain background as a solid square (the white logo flash in dark mode).
   main.js still overrides with an absolute URL as a belt-and-braces. */
:root { --logo-src: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 278.47552 178.80571'%3E%3Cg id='layer1' transform='translate(-259.1556,410.78953)'%3E %3Cpath style='opacity:0.38053098;fill:%23000000' d='m 404.21154,-282.06161 c -9.62067,-0.97719 -16.75153,-2.05025 -26.85932,-4.04184 -3.29478,-0.64918 -3.85372,-0.76958 -7.89257,-1.69999 -16.07504,-3.70315 -30.05331,-8.40492 -40.4948,-13.62096 -6.45544,-3.22482 -10.96407,-6.18971 -14.40547,-9.47309 -2.80586,-2.67702 -4.34378,-4.94062 -5.15237,-7.58357 -0.38838,-1.26943 -0.31685,-3.75976 0.14592,-5.08026 2.08245,-5.94228 11.12034,-10.81847 25.51225,-13.7646 1.57167,-0.32172 6.0407,-1.06068 7.96242,-1.31658 0.64791,-0.0863 1.90693,-0.25661 2.79781,-0.37852 1.71651,-0.23489 7.35074,-0.73875 9.93964,-0.8889 0.85039,-0.0493 1.91061,-0.11157 2.35606,-0.13835 4.58978,-0.27589 19.76489,-0.38649 23.41335,-0.17063 3.18143,0.18823 9.97065,0.2796 10.05977,0.13539 0.26198,-0.42389 -5.48117,-1.28126 -13.07848,-1.95244 -8.97881,-0.79322 -13.51939,-0.95847 -25.74728,-0.93705 -10.10297,0.0178 -11.63336,-0.0486 -9.20995,-0.3993 2.1904,-0.31694 8.5111,-0.81591 12.05927,-0.952 1.25534,-0.0482 2.74628,-0.11796 3.31321,-0.15515 1.39329,-0.0914 15.64049,-0.0889 16.93419,0.003 0.56692,0.0402 2.22353,0.1097 3.68134,0.15431 7.70933,0.23587 17.21894,1.02494 26.57931,2.20546 2.79067,0.35195 7.20053,0.95757 8.61434,1.18303 7.14617,1.13958 11.84651,1.9725 14.94626,2.64852 0.52643,0.11482 1.78546,0.38256 2.79782,0.59498 11.98624,2.51512 24.00825,6.15734 33.50025,10.14935 2.18608,0.91939 6.76526,3.13207 8.31423,4.01747 4.90661,2.80462 8.67414,5.69095 10.6181,8.13457 0.9501,1.19432 1.74891,2.42653 1.83903,2.83686 0.057,0.25962 0.18823,0.60553 0.29159,0.7687 0.10334,0.16317 0.29356,0.81788 0.4227,1.45492 0.21587,1.06482 0.21534,1.27266 -0.006,2.57694 -0.34222,2.0119 -0.92834,3.02649 -2.90083,5.02138 -1.80827,1.82882 -5.02704,3.73399 -8.63868,5.1132 -0.52643,0.20103 -1.18907,0.45623 -1.47254,0.56712 -0.46631,0.1824 -2.58017,0.86035 -4.49124,1.44042 -0.40495,0.12291 -1.13386,0.29554 -1.61979,0.38361 -0.48594,0.0881 -1.18172,0.25716 -1.54617,0.37574 -1.00355,0.32654 -5.79495,1.19445 -10.08688,1.82712 -1.86772,0.27532 -3.03714,0.41598 -7.43633,0.89445 -7.08021,0.77007 -21.19408,1.00904 -30.62879,0.51859 -0.68841,-0.0358 -1.98056,-0.10071 -2.87144,-0.14427 -0.89089,-0.0436 -1.91799,-0.11155 -2.28244,-0.15106 -0.36445,-0.0395 -1.22588,-0.10454 -1.9143,-0.14451 -5.47793,-0.31808 -14.71435,-1.34639 -21.27817,-2.36895 -1.29583,-0.20187 -2.75364,-0.42794 -3.23958,-0.50236 -2.92576,-0.44809 -8.69225,-1.54907 -13.47375,-2.57249 -6.40153,-1.37016 -15.84635,-4.04704 -21.56085,-6.11082 -9.23822,-3.33637 -15.24994,-6.39943 -21.63153,-11.02158 -1.34324,-0.97289 -2.26293,-1.49786 -3.00525,-1.71541 -0.4813,-0.14106 -0.96789,0.67299 -0.85512,1.43058 0.3489,2.34381 3.34495,5.76377 7.65841,8.74199 5.8007,4.00509 14.38151,8.02654 24.37445,11.42323 3.8135,1.29625 5.72446,1.91509 7.58357,2.45584 0.8099,0.23556 2.22342,0.66767 3.14116,0.96023 0.91773,0.29255 1.77018,0.53192 1.89432,0.53192 0.12414,0 0.86421,0.19281 1.6446,0.42847 0.78038,0.23565 1.8496,0.54015 2.37603,0.67666 0.52644,0.13651 1.38787,0.36965 1.9143,0.51807 0.78996,0.22272 3.67934,0.9317 6.0374,1.48143 0.28346,0.0661 1.07864,0.25267 1.76705,0.41462 1.50247,0.35349 4.22182,0.95873 5.7429,1.2782 0.60742,0.12756 1.59,0.36107 2.1835,0.51888 0.59352,0.15782 1.15676,0.26955 1.25166,0.24831 0.16655,-0.0372 1.49142,0.23593 3.48576,0.71882 0.52644,0.12747 1.18814,0.25522 1.47046,0.28388 0.28231,0.0287 0.6799,0.11464 0.88352,0.19106 0.20362,0.0764 0.63528,0.17708 0.95923,0.22372 0.5536,0.0797 1.27079,0.22025 2.65057,0.51949 0.32396,0.0703 1.086,0.22663 1.69342,0.34749 0.60742,0.12086 1.33633,0.30283 1.61979,0.40439 0.28347,0.10154 0.59822,0.20563 0.69946,0.23131 0.10124,0.0257 0.18406,0.11502 0.18406,0.19856 0,0.14444 -2.29308,0.17844 -3.53408,0.0524 z m 33.50023,-10.71684 c 1.13385,-0.0475 2.88986,-0.14431 3.90223,-0.21518 1.01236,-0.0709 1.94007,-0.12996 2.06155,-0.13129 0.46221,-0.005 5.297,-0.48486 7.6572,-0.75987 3.30101,-0.38464 11.3348,-1.75628 12.1816,-2.07981 0.22473,-0.0859 0.77306,-0.2204 1.2185,-0.29896 0.44544,-0.0786 1.10809,-0.23625 1.47254,-0.35041 0.36446,-0.11417 1.15962,-0.35429 1.76704,-0.5336 2.39307,-0.70647 2.94238,-0.90116 5.22751,-1.85282 1.99658,-0.83148 4.8467,-2.39612 6.03741,-3.31436 1.34977,-1.04091 2.63262,-2.37631 3.22316,-3.35524 0.66102,-1.09572 0.97821,-2.12286 1.06858,-3.46046 0.0828,-1.22596 0.0545,-1.42956 -0.37791,-2.71679 -0.25711,-0.76532 -0.69746,-1.75921 -0.97856,-2.20862 -0.81916,-1.3096 -2.65082,-3.31014 -4.22555,-4.61513 -8.4716,-7.02055 -24.10172,-13.15745 -45.46281,-17.8502 -5.3264,-1.17014 -13.88163,-2.58191 -15.57963,-2.57092 -1.18876,0.008 -1.00911,0.0664 6.52353,2.13428 9.50328,2.60879 15.91373,4.9337 19.87925,7.20972 1.45362,0.83431 2.13519,1.33673 2.13519,1.57396 0,0.30933 -1.9727,0.0138 -4.49124,-0.67272 -9.29945,-2.53511 -12.16873,-3.27742 -16.53291,-4.27729 -13.29471,-3.04589 -29.23721,-5.2637 -42.44223,-5.90423 -1.09336,-0.0531 -2.25298,-0.12624 -2.57695,-0.16266 -1.13143,-0.12723 -17.54256,-0.16948 -19.80563,-0.051 -7.82992,0.40995 -14.97512,1.15817 -20.46828,2.14337 -1.9439,0.34864 -4.89606,0.95246 -5.01445,1.02562 -0.0587,0.0362 -0.5945,0.1676 -1.19066,0.29183 -1.05456,0.21975 -1.54474,0.35599 -4.61804,1.28354 -7.41916,2.23919 -12.88618,5.61764 -14.89758,9.20625 -0.89277,1.59282 -1.09336,2.3076 -1.10541,3.93893 -0.0201,2.7204 1.05646,5.01049 3.62518,7.71169 2.12193,2.23138 5.81038,4.73074 6.98199,4.73113 0.44149,1.5e-4 0.41733,-0.0609 -0.77802,-1.96513 -2.23911,-3.56698 -2.83331,-5.29377 -2.69337,-7.82713 0.0897,-1.62333 0.48153,-2.71264 1.46687,-4.07757 2.49625,-3.45793 7.6825,-6.23249 14.24765,-7.62228 1.53569,-0.32509 2.98657,-0.45771 3.24694,-0.29678 0.29171,0.18028 0.008,0.45714 -1.69439,1.65414 -2.08652,1.46699 -4.02182,3.44387 -4.65145,4.75139 -0.42985,0.89264 -0.50187,1.20835 -0.55317,2.42515 -0.0718,1.70254 0.23314,2.75665 1.25409,4.33523 1.73505,2.68273 4.96094,5.29828 9.90792,8.03331 2.17157,1.20059 6.74513,3.38761 7.08428,3.38761 0.0876,0 0.33523,0.0924 0.55019,0.20542 1.22617,0.64445 6.78823,2.61242 11.21401,3.96773 2.29198,0.70188 6.02576,1.71157 9.05611,2.44895 1.37682,0.33503 2.86776,0.70166 3.31321,0.81474 1.15584,0.29342 8.50259,1.75503 11.11766,2.21182 2.29082,0.40015 3.06722,0.52611 4.933,0.80036 0.60742,0.0893 1.27007,0.18984 1.47254,0.22345 2.42931,0.40337 7.44983,1.02587 11.26491,1.39675 1.70079,0.16534 3.75497,0.3665 4.56487,0.44703 2.57298,0.25585 4.9468,0.434 6.99455,0.52492 1.09336,0.0486 2.25299,0.11562 2.57695,0.14904 0.32395,0.0334 2.37815,0.1026 4.56487,0.15372 2.18671,0.0511 3.99528,0.10961 4.01902,0.13 0.0752,0.0646 10.17623,-0.0506 12.32614,-0.14063 z m -16.89812,-1.92628 c -0.0198,-0.0155 -1.49388,-0.0696 -3.27564,-0.12022 -3.29518,-0.0936 -6.25112,-0.25362 -10.08689,-0.54604 -2.39821,-0.18283 -11.8807,-1.1468 -12.22206,-1.24246 -0.12149,-0.034 -0.98292,-0.16309 -1.9143,-0.28675 -2.41717,-0.32094 -5.45305,-0.77194 -6.99456,-1.03907 -0.7289,-0.12633 -1.72287,-0.29503 -2.2088,-0.37492 -1.12544,-0.18502 -4.65409,-0.88872 -8.4671,-1.68856 -3.71628,-0.77956 -10.16384,-2.49885 -14.43087,-3.84811 -11.3305,-3.58276 -20.11842,-8.26595 -23.58486,-12.56865 -1.86947,-2.32046 -2.36991,-4.71474 -1.4194,-6.79093 0.7128,-1.55696 2.97346,-3.54805 5.41951,-4.77328 2.25199,-1.12802 5.93667,-2.35724 8.79563,-2.93425 0.54821,-0.11064 1.59313,-0.33608 2.32203,-0.50098 1.26139,-0.28536 3.78721,-0.62965 8.17259,-1.11397 3.3014,-0.36462 7.59305,-0.54021 13.17921,-0.53923 5.67723,7.7e-4 10.52311,0.21217 17.22869,0.75079 3.61613,0.29047 5.17994,0.34179 5.284,0.17342 0.16826,-0.27224 -0.60749,-0.5586 -3.00156,-1.10798 -5.23103,-1.20043 -12.80256,-2.21835 -19.95289,-2.68249 -0.8099,-0.0525 -1.70447,-0.11531 -1.98793,-0.13941 -3.10606,-0.26412 -13.63021,-0.34251 -19.69519,-0.1467 -2.14533,0.0693 -3.27639,0.0552 -3.27639,-0.0407 0,-0.19115 0.36885,-0.29086 2.06155,-0.55725 2.13085,-0.33536 5.04909,-0.64186 8.46709,-0.88928 3.5771,-0.25893 14.96921,-0.3852 18.6276,-0.20645 5.16103,0.25216 6.1717,0.30868 8.02534,0.44879 10.39014,0.78537 19.90155,2.15738 30.4079,4.38629 4.3493,0.9227 11.57077,2.91717 15.38802,4.24994 5.09322,1.77828 8.45542,3.20662 11.77356,5.00169 4.98655,2.69765 8.09209,5.36945 9.47102,8.14824 0.53226,1.07259 0.54805,1.15104 0.54852,2.72419 0,1.5568 -0.0196,1.65988 -0.51459,2.65057 -0.65107,1.30296 -2.46504,3.16219 -4.41795,4.52814 -2.34225,1.63827 -2.61005,1.84864 -2.93597,2.30637 l -0.31434,0.44145 0.47202,0.24408 c 0.38722,0.20024 0.93712,0.24395 3.06088,0.24327 4.14641,-0.002 8.8973,-0.63453 13.78016,-1.83664 0.64791,-0.15951 1.52663,-0.34998 1.95273,-0.42326 0.42607,-0.0733 1.08037,-0.23702 1.45395,-0.36385 0.3736,-0.12685 1.11835,-0.25756 1.655,-0.2905 0.53664,-0.033 1.16027,-0.10196 1.38582,-0.15338 0.46388,-0.10575 0.98881,0.25733 0.98881,0.68392 0,1.20356 -1.72336,2.69272 -4.933,4.26262 -3.64455,1.78262 -11.12188,3.74336 -17.37596,4.55638 -3.73077,0.485 -7.23268,0.84429 -9.49787,0.97446 -0.44544,0.0256 -1.47254,0.0861 -2.28243,0.13437 -3.34644,0.19958 -5.10646,0.2501 -9.97719,0.28639 -2.8148,0.021 -5.13405,0.0255 -5.15389,0.01 z m -43.96165,-8.42908 c -0.26715,-0.22055 -1.44156,-0.89525 -2.6098,-1.49933 -2.8001,-1.44792 -2.95578,-1.77736 -0.83483,-1.76665 1.22409,0.006 1.99072,0.0785 4.44574,0.41909 14.36011,1.9925 20.35558,2.5049 30.33428,2.59251 9.08954,0.0798 14.87008,-0.34934 22.01444,-1.63433 6.97539,-1.2546 12.3443,-3.53727 14.52411,-6.17512 0.94762,-1.14677 1.23205,-1.89645 1.23205,-3.24748 0,-1.0974 -0.0463,-1.28275 -0.58547,-2.34505 -0.69872,-1.37657 -2.32566,-3.09697 -4.12666,-4.36371 -3.03889,-2.13742 -8.18511,-4.50664 -11.79351,-5.42952 -1.18082,-0.302 -2.03517,-0.3777 -1.95017,-0.17279 0.027,0.0651 0.67802,0.67803 1.44672,1.3621 2.00079,1.78052 2.1023,1.8859 2.7581,2.86355 0.76822,1.14523 0.9818,1.83207 0.87911,2.82706 -0.0939,0.90991 -0.63971,1.65787 -1.63985,2.2472 -2.05377,1.2102 -3.73314,0.82674 -6.09443,-1.39159 -2.44769,-2.29951 -5.84042,-4.32031 -10.25635,-6.10893 -1.9573,-0.79279 -2.71882,-1.0571 -5.67182,-1.9686 -6.40836,-1.97806 -16.27096,-3.78153 -24.29687,-4.44293 -5.50874,-0.45396 -13.55674,-0.61452 -17.96497,-0.35841 -1.09335,0.0636 -2.6837,0.15765 -3.53409,0.20917 -3.26165,0.1976 -10.31903,1.36975 -12.84789,2.13389 -2.44669,0.73931 -2.89042,0.88588 -3.79178,1.25245 -3.37673,1.37327 -5.74764,3.20322 -6.7226,5.18873 -0.99732,2.03104 -0.29273,4.46186 1.98934,6.86317 3.16557,3.33096 9.41922,6.66456 17.69159,9.43075 4.58135,1.53195 9.96316,2.91337 13.54735,3.47737 2.40145,0.37789 2.57821,0.39891 3.53409,0.42028 l 0.80989,0.0181 -0.48572,-0.40098 z m 22.0584,-2.84934 c -15.31262,-0.96738 -29.4342,-4.10064 -38.21235,-8.47845 -3.72228,-1.85637 -5.29609,-3.04301 -8.19849,-6.18165 -1.2339,-1.33434 -1.79014,-1.61655 -3.68806,-1.87119 -1.85535,-0.24891 -2.28447,-0.41021 -2.48422,-0.93379 -0.5309,-1.39162 2.25749,-3.46707 6.47144,-4.81682 5.12058,-1.64014 11.88508,-2.46346 20.34227,-2.47587 8.72273,-0.0128 16.00578,0.67551 23.92874,2.26149 1.65991,0.33227 6.13832,1.40005 6.70005,1.59749 0.20247,0.0712 1.1633,0.37598 2.13517,0.67737 4.55697,1.41317 8.29962,3.26322 10.30004,5.09149 2.83537,2.59137 2.33449,4.90343 -1.46481,6.7615 -2.58329,1.26338 -5.8977,2.03242 -12.31384,2.85715 -3.91833,0.50366 -4.77452,0.81551 -3.55888,1.29623 0.77083,0.30482 3.03636,0.82113 4.41681,1.00659 0.63148,0.0849 1.60245,0.2152 2.15771,0.28969 1.80439,0.24208 6.13806,0.58777 9.15095,0.72996 3.0841,0.14554 5.65398,0.4072 5.87026,0.59769 0.07,0.0617 -0.0704,0.21446 -0.31219,0.33948 -0.97957,0.50655 -4.27245,1.01394 -8.24202,1.26998 -2.6164,0.16877 -10.20641,0.15805 -12.99858,-0.0183 z m -16.0833,-4.28852 c -0.0314,-0.10123 -0.55052,-0.43977 -1.15349,-0.7523 -2.62885,-1.36259 -4.26226,-2.50376 -4.26226,-2.97781 0,-0.33598 0.52463,-0.50348 1.5733,-0.50231 0.99946,0.002 1.76644,0.0773 5.12675,0.50913 13.04132,1.676 23.18463,1.14824 28.36276,-1.47571 0.94114,-0.47692 2.02824,-1.46782 2.28776,-2.08533 2.54291,-6.05066 -20.19244,-12.88142 -41.10959,-12.35123 -6.93404,0.17576 -11.00776,0.9552 -10.59631,2.02745 0.13815,0.35999 -0.46306,0.95352 -2.08225,2.05569 -2.66732,1.81562 -3.50223,2.88178 -3.50171,4.47158 1.5e-4,0.66552 0.0956,1.06732 0.38649,1.6284 1.74037,3.35681 9.00304,6.86604 18.44839,8.91401 3.08854,0.66967 6.65236,0.96397 6.52016,0.53843 z' id='path3062' /%3E %3C/g%3E%3Cg id='layer2' style='display:inline' transform='translate(-566,-146.75715)'%3E %3Cpath id='path3082' d='m 723.10228,244.83963 0,-16.20677 -4.69962,0.0113 -4.69962,0.0113 -3.51108,-3.51108 -3.51108,-3.51108 21.20245,0 21.20245,0 0,0.11064 c 0,0.0609 -1.53123,1.64085 -3.40274,3.51108 l -3.40274,3.40044 -4.69886,-0.0113 -4.69885,-0.0113 0,16.20677 0,16.20678 -4.89015,0 -4.89016,0 z m 13.13773,1.85746 -0.0156,-14.69307 c 2.55875,0.0114 5.45756,-0.007 8.13599,-0.007 l 7.77003,0 0.1929,0.20267 c 0.10609,0.11146 0.45565,0.54441 0.77679,0.9621 0.32114,0.4177 1.41407,1.78807 2.42871,3.04528 1.01465,1.25721 1.86861,2.35152 1.89768,2.4318 l 0.0528,0.14598 -7.15276,0.073 -7.15276,0.073 0,2.11664 0,2.11663 5.54704,0.073 5.54704,0.073 0,3.35742 0,3.35741 -5.34445,0.0383 -5.42832,0.0254 -0.065,4.39031 c 2.72391,-0.005 5.44785,-0.002 8.17177,-0.002 l 7.74732,0 0.5248,-0.55493 c 1.98132,-2.49669 6.04061,-7.42654 6.04061,-7.42654 l -3.79103,-4.65827 c -2.08507,-2.56205 -4.65722,-5.73945 -5.71588,-7.06091 -0.72293,-0.89748 -1.44173,-1.79832 -2.15548,-2.70299 1.50019,-0.0149 3.00039,-0.0282 4.50059,-0.0422 l 4.16874,-0.0387 2.1628,2.66625 c 1.18954,1.46644 2.85137,3.51393 3.69294,4.54998 l 1.53014,1.88372 0.42013,-0.49696 c 0.23112,-0.27333 1.84185,-2.27056 3.57944,-4.43828 1.73759,-2.16773 3.22757,-3.98958 3.31107,-4.04856 l 0.15182,-0.10725 4.11517,-0.002 c 1.50352,-7.2e-4 3.00704,-0.002 4.51056,-0.002 -1.02085,1.28073 -2.05387,2.55182 -3.08231,3.82649 -1.57328,1.94996 -4.12107,5.103 -5.66173,7.00676 -1.54067,1.90375 -2.8516,3.66749 -2.83951,3.64936 0,0 2.4659,3.27536 3.69135,4.7862 2.05131,2.52902 4.67834,5.76418 5.83784,7.18926 l 2.10817,2.59105 -4.41278,-0.008 -4.41278,-0.008 -0.61806,-0.83109 c -0.33993,-0.45711 -1.74148,-2.21056 -3.11455,-3.89657 -1.37307,-1.68601 -2.70431,-3.34208 -2.95832,-3.68017 -0.19745,-0.27099 -0.40477,-0.5345 -0.60781,-0.8012 -0.36101,0.46509 -0.72937,0.92445 -1.09511,1.38583 -0.52202,0.65844 -2.15927,2.69166 -3.63833,4.51817 l -2.68919,3.32092 -13.33123,0 -13.33124,0 z m -44.9946,-12.9095 -0.0386,-4.49069 -8.94095,-0.0376 -8.94095,-0.0376 c 0,-2.60792 0,-5.21583 0,-7.82375 l 16.63834,-25.16429 5.38458,0 5.38458,0 0.33118,4.8e-4 -2.9e-4,0.39822 -0.005,12.46395 -0.005,12.46396 1.56111,0.0308 7.46367,7.63291 -4.71741,0 -4.29553,0 -0.0386,4.48873 -0.0386,4.48872 -4.85155,0.0385 -4.85154,0.0385 -0.0386,-4.49069 z m 0.47231,-20.72308 0,-8.56871 -0.12349,0.13867 c -0.0679,0.0763 -1.42547,2.17503 -3.01679,4.66389 -1.59131,2.48887 -3.1035,4.85366 -3.36041,5.25509 -3.13991,4.90614 -4.44742,6.96992 -4.44742,7.01981 0,0.033 2.46332,0.06 5.47405,0.06 l 5.47406,0 z' style='fill:%23000000;fill-opacity:1;display:inline' /%3E %3C/g%3E%3C/svg%3E"); }
.brand__logo--mask {
  height: 170px; width: 170px;
  background: #000000;   /* vorher: var(--nav-blue) */
  -webkit-mask: var(--logo-src) no-repeat left center / contain;
          mask: var(--logo-src) no-repeat left center / contain;
}

.brand__name { font-family: var(--font-display); font-weight: 600; font-size: 1.15rem;
  letter-spacing: -.01em; color: var(--nav-blue); }
.brand__name span { color: var(--nav-grey); }

/* Primary nav — grouped on the right together with the utilities,
   generous spacing (order: Home … Kontakt | DE/EN | phone | email) */
.nav { display: flex; align-items: center; gap: clamp(1.5rem, 3vw, 2.75rem); }
.nav__list { display: flex; align-items: center; gap: clamp(1.2rem, 2.4vw, 2.4rem); }
.nav__link {
  display: inline-block; padding: .5rem 0;
  font-family: var(--font-display); font-weight: 600; font-size: .82rem;
  letter-spacing: .07em; text-transform: uppercase; color: var(--nav-grey);
  position: relative; transition: color .25s var(--ease);
}
.nav__link::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -2px;
  height: 2px; background: var(--nav-blue); border-radius: 2px;
  transform: scaleX(0); transform-origin: center; opacity: 0;
  transition: transform .25s var(--ease), opacity .25s var(--ease);
}
.nav__link:hover { color: var(--nav-blue); }
.nav__link:hover::after { transform: scaleX(.55); opacity: .5; }
.nav__link.is-active { color: var(--nav-blue); }
.nav__link.is-active::after { transform: scaleX(1); opacity: 1; }

.header-actions { display: flex; align-items: center; gap: clamp(1rem, 2vw, 1.5rem); flex-shrink: 0;
  margin-left: clamp(1.25rem, 2.5vw, 2rem); padding-left: clamp(1.25rem, 2.5vw, 2rem);
  border-left: 1px solid #E2E2E2; }

/* Contact links (right side, desktop) */
.header-contact {
  display: inline-flex; align-items: center; gap: .5rem; color: var(--nav-grey); font-size: .86rem;
  font-weight: 500; white-space: nowrap; transition: color .25s var(--ease);
}
.header-contact:hover { color: var(--nav-blue); }
.header-contact svg { width: 17px; height: 17px; color: var(--nav-blue); }

/* The nav carries its own contact + language block for the mobile drawer only. */
.nav__mobile-extras { display: none; }
.nav__contact { display: inline-flex; align-items: center; gap: .6rem; color: var(--nav-grey);
  font-weight: 500; font-size: 1rem; }
.nav__contact svg { width: 20px; height: 20px; color: var(--nav-blue); }
.nav__contact:hover { color: var(--nav-blue); }

/* Language toggle */
.lang { display: inline-flex; border: 1px solid #E2E2E2; border-radius: 100px;
  overflow: hidden; font-family: var(--font-display); }
.lang__btn { padding: .32rem .68rem; font-size: .74rem; font-weight: 600; letter-spacing: .06em;
  color: var(--nav-grey); transition: color .25s var(--ease), background .25s var(--ease); }
/* The highlighted language follows <html lang>, which the early <head>
   script sets BEFORE the first paint. The markup ships with a static
   .is-active on EN, and JS only corrects that class after the deferred
   scripts run — driving the visuals off the class made the toggle flash
   EN for a moment on every fast navigation while German was selected.
   The class is still maintained by language.js for ARIA state. */
html[lang="de"] .lang__btn[data-lang="de"],
html:not([lang="de"]) .lang__btn[data-lang="en"] { background: var(--nav-blue); color: #fff; }
html[lang="de"] .lang__btn[data-lang="en"]:hover,
html:not([lang="de"]) .lang__btn[data-lang="de"]:hover { color: var(--nav-blue); }

/* ---- Dropdown (Dienstleistungen) --------------------------
   Desktop: opens instantly on hover / keyboard focus, with a
   hover bridge so the pointer can travel without closing.
   Mobile: expanded via the chevron button (see responsive.css). */
.nav__item--dropdown { position: relative; }
.nav__subtoggle { display: none; }
.nav__dropdown {
  position: absolute; top: 100%; left: 50%; transform: translateX(-50%) translateY(6px);
  min-width: 240px; padding: .55rem; margin-top: 10px;
  background: #FFFFFF; border: 1px solid #E8E8E8; border-radius: 8px;
  box-shadow: 0 18px 44px rgba(0,0,0,.14), 0 2px 8px rgba(0,0,0,.06);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .2s var(--ease), transform .2s var(--ease), visibility 0s linear .2s;
  z-index: 60;
}
/* invisible bridge between link and panel keeps hover alive */
.nav__dropdown::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.nav__item--dropdown:hover .nav__dropdown,
.nav__item--dropdown:focus-within .nav__dropdown {
  opacity: 1; visibility: visible; pointer-events: auto;
  transform: translateX(-50%) translateY(0);
  transition: opacity .2s var(--ease), transform .2s var(--ease);
}
.nav__dropdown a {
  display: block; padding: .7rem .9rem; border-radius: 5px;
  font-family: var(--font-display); font-weight: 600; font-size: .8rem;
  letter-spacing: .05em; text-transform: uppercase; color: var(--nav-grey);
  transition: color .2s var(--ease), background .2s var(--ease);
  white-space: nowrap;
}
.nav__dropdown a:hover, .nav__dropdown a:focus-visible { color: var(--nav-blue); background: rgba(0,90,156,.07); }
:root[data-theme="dark"] .nav__dropdown { background: #121A25; border-color: #2C3848;
  box-shadow: 0 18px 44px rgba(0,0,0,.55); }
:root[data-theme="dark"] .nav__dropdown a:hover,
:root[data-theme="dark"] .nav__dropdown a:focus-visible { background: rgba(79,163,227,.12); }

/* Burger */
.burger { display: none; width: 44px; height: 44px; flex-direction: column;
  justify-content: center; align-items: center; gap: 5px; border-radius: var(--radius);
  flex-shrink: 0; }
.burger span { width: 24px; height: 2px; background: var(--nav-blue); border-radius: 2px;
  transition: transform .3s var(--ease), opacity .2s var(--ease); }
.burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger.is-open span:nth-child(2) { opacity: 0; }
.burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---- Footer ---------------------------------------------- */
.site-footer { background: var(--navy-900); color: #93A4B8; padding-block: var(--sp-6) var(--sp-4); }
.site-footer a { color: #B9C6D6; }
.site-footer a:hover { color: #fff; }
.footer-grid { display: grid; grid-template-columns: 1.7fr 1fr 1fr 1fr 1.1fr; gap: var(--sp-4);
  padding-bottom: var(--sp-5); border-bottom: 1px solid rgba(255,255,255,.09); }
.footer-brand__logo { height: 32px; width: 130px; background: #fff;
  -webkit-mask: var(--logo-src) no-repeat left center / contain;
          mask: var(--logo-src) no-repeat left center / contain; margin-bottom: var(--sp-2); }
.footer-brand p { font-size: .92rem; max-width: 34ch; color: #7F91A6; }
.footer-col h4 { color: #fff; font-size: .74rem; font-family: var(--font-mono); font-weight: 900;
  letter-spacing: .07em; text-transform: uppercase; margin-bottom: var(--sp-2); }
.footer-col ul { display: flex; flex-direction: column; gap: .6rem; font-size: .92rem; }
.footer-contact { font-style: normal; font-size: .92rem; line-height: 1.9; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--sp-2);
  padding-top: var(--sp-3); font-size: .82rem; color: #6D7F94; }
.footer-bottom__links { display: flex; gap: var(--sp-3); flex-wrap: wrap; }

/* ---- Forms ----------------------------------------------- */
.form-field { margin-bottom: var(--sp-3); }
.form-field label { display: block; font-family: var(--font-display); font-weight: 500;
  font-size: .9rem; color: var(--text-strong); margin-bottom: .45rem; }
.form-field .req { color: var(--navy-600); }
.form-field input, .form-field textarea, .form-field select {
  width: 100%; padding: .8rem .95rem; border: 1px solid var(--border-strong);
  border-radius: var(--radius); font: inherit; font-size: .96rem; color: var(--ink-900);
  background: #fff; transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.form-field input:focus, .form-field textarea:focus, .form-field select:focus {
  outline: none; border-color: var(--navy-600); box-shadow: 0 0 0 3px rgba(30,75,120,.12); }
.form-field textarea { resize: vertical; min-height: 140px; }
.form-field__error { color: #b23; font-size: .8rem; margin-top: .35rem; display: none; }
.form-field.has-error input, .form-field.has-error textarea { border-color: #c44; }
.form-field.has-error .form-field__error { display: block; }
.form-note { font-size: .82rem; color: var(--text-muted); }
.form-status { padding: var(--sp-2); border-radius: var(--radius); font-size: .92rem;
  margin-bottom: var(--sp-3); display: none; }
.form-status.is-visible { display: block; }
.form-status--ok { background: #eef6f0; color: #2b6a43; border: 1px solid #cfe6d7; }
.form-status--err { background: #fbeeee; color: #a13636; border: 1px solid #eccfcf; }

/* ---- Logo carousel / trust row --------------------------- */
.trust { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(1.5rem,4vw,3.5rem);
  justify-content: center; }
.trust span { font-family: var(--font-mono); font-size: .82rem; color: var(--grey-400);
  letter-spacing: .04em; }

/* ---- Contact info blocks --------------------------------- */
.info-item { display: flex; gap: var(--sp-2); align-items: flex-start; }
.info-item__icon { width: 44px; height: 44px; flex-shrink: 0; border-radius: 12px;
  background: linear-gradient(135deg, var(--navy-600), var(--navy-800));
  display: grid; place-items: center; color: #fff; }
.info-item__icon svg { width: 20px; height: 20px; }
.info-item h4 { font-size: .95rem; margin-bottom: .2rem; }
.info-item p, .info-item address { font-size: .92rem; color: var(--text-muted); font-style: normal; }

/* ---- Map placeholder ------------------------------------- */
.map-embed { aspect-ratio: 16/9; border-radius: var(--radius-lg); overflow: hidden;
  border: 1px solid var(--border-strong); background: var(--grey-050);
  display: grid; place-items: center; color: var(--text-muted); }
.map-embed iframe { width: 100%; height: 100%; border: 0; }

/* ---- Downloads list -------------------------------------- */
.dl-list { display: grid; gap: var(--sp-2); }
.dl-item { display: flex; align-items: center; gap: var(--sp-2); padding: var(--sp-2) var(--sp-3);
  border: 1px solid var(--border); border-radius: var(--radius-lg); background: #fff;
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease); }
.dl-item:hover { border-color: var(--border-strong); box-shadow: var(--shadow-sm); }
.dl-item__icon { width: 42px; height: 42px; flex-shrink: 0; border-radius: var(--radius);
  background: var(--navy-800); color: #fff; display: grid; place-items: center; }
.dl-item__icon svg { width: 20px; height: 20px; }
.dl-item__body { flex: 1; min-width: 0; }
.dl-item__body h4 { font-size: 1rem; margin-bottom: .15rem; }
.dl-item__body p { font-size: .84rem; color: var(--text-muted); }
.dl-item__meta { font-family: var(--font-mono); font-size: .72rem; color: var(--grey-400);
  letter-spacing: .04em; white-space: nowrap; }

/* ---- News cards ------------------------------------------ */
.news-card { display: flex; flex-direction: column; height: 100%; overflow: hidden; }
.news-card .media { border: none; border-radius: 0; margin: calc(var(--sp-4) * -1) calc(var(--sp-4) * -1) var(--sp-3); }
.news-card__date { font-family: var(--font-mono); font-size: .74rem; color: var(--steel);
  letter-spacing: .06em; text-transform: uppercase; }
.news-card h3 { font-size: 1.15rem; margin: .5rem 0 .6rem; }

/* ---- Section header cluster ------------------------------ */
.section-head { max-width: 62ch; margin-bottom: var(--sp-5); }
.section-head--center { margin-inline: auto; text-align: center; }

/* ---- Back-to-top ------------------------------------------ */
.back-to-top {
  position: fixed; right: clamp(1rem, 2.5vw, 2rem); bottom: clamp(1rem, 2.5vw, 2rem);
  width: 48px; height: 48px; border-radius: 6px; z-index: 90;
  background: var(--nav-blue); color: #fff;
  display: grid; place-items: center;
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
  opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: opacity .3s var(--ease), transform .3s var(--ease),
    background .25s var(--ease), visibility 0s linear .3s;
}
.back-to-top.is-visible { opacity: 1; visibility: visible; transform: none;
  transition: opacity .3s var(--ease), transform .3s var(--ease), background .25s var(--ease); }
.back-to-top:hover { background: #0A72C0; transform: translateY(-3px); }
.back-to-top:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.back-to-top svg { width: 20px; height: 20px; }
:root[data-theme="dark"] .back-to-top { background: #1B76BE; }
:root[data-theme="dark"] .back-to-top:hover { background: #2E8AD2; }

/* ---- Theme toggle (light / dark) ------------------------- */
.theme-toggle {
  width: 42px; height: 42px; flex-shrink: 0; border-radius: 100px;
  border: 1px solid #E2E2E2; display: grid; place-items: center;
  color: var(--nav-grey); background: transparent;
  transition: color .25s var(--ease), border-color .25s var(--ease), background .25s var(--ease);
}
.theme-toggle:hover { color: var(--nav-blue); border-color: var(--nav-blue); }
.theme-toggle svg { width: 19px; height: 19px; }
/* Mobile copy of the toggle — shown only when header-actions is hidden */
.theme-toggle--mobile { display: none; }
@media (max-width: 992px) { .theme-toggle--mobile { display: grid; } }
.theme-toggle .icon-sun { display: none; }
:root[data-theme="dark"] .theme-toggle .icon-sun { display: block; }
:root[data-theme="dark"] .theme-toggle .icon-moon { display: none; }

/* ============================================================
   DARK MODE — activated via data-theme="dark" on <html>.
   Token overrides first, then the few components that use
   fixed light values.
   ============================================================ */
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg:            #0B0F15;
  --bg-alt:        #10161F;
  --text:          #C4CEDA;
  --text-strong:   #F3F6FA;
  --text-muted:    #97A4B2;
  --border:        #1D2734;
  --border-strong: #2C3848;
  --brand:         #5FA8E0;
  --brand-hover:   #82BCEA;
  --nav-blue:      #4FA3E3;
  --nav-grey:      #A5B1BE;
  --grey-050:      #10161F;
  --grey-100:      #1D2734;
  --grey-200:      #2C3848;
  --grey-400:      #8593A2;   /* muted labels stay readable on dark  */
  --grey-600:      #A9B5C2;
  --steel:         #8CA3BC;   /* label/steel tone lifted for contrast */
  --navy-600:      #6FAEE4;   /* eyebrows & accents readable on dark  */
  --navy-800:      #BBD3EA;   /* light-navy text uses (stat values, links) */
  --navy-700:      #8FBCE6;
  --ink-900:       #F3F6FA;
  --ink-700:       #C4CEDA;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.5), 0 1px 3px rgba(0,0,0,.4);
  --shadow-md: 0 4px 16px rgba(0,0,0,.5), 0 2px 6px rgba(0,0,0,.4);
  --shadow-lg: 0 18px 50px rgba(0,0,0,.6);
}
/* Components that must keep the deep navy even in dark mode
   (buttons, icon squares) — restore their fixed navy values. */
:root[data-theme="dark"] .btn--primary {
  background: linear-gradient(160deg, #123457 0%, #0A2540 60%, #071A2F 100%);
  color: #fff; border-color: rgba(255,255,255,.18);
}
:root[data-theme="dark"] .btn--primary:hover {
  background: linear-gradient(160deg, #1E4B78 0%, #123457 60%, #0A2540 100%); color: #fff;
}
:root[data-theme="dark"] .btn--light { background: #E8F0F8; color: #0A2540; border-color: #E8F0F8; }
:root[data-theme="dark"] .btn--light:hover { background: #fff; color: #0A2540; }
:root[data-theme="dark"] .card__icon,
:root[data-theme="dark"] .info-item__icon,
:root[data-theme="dark"] .dl-item__icon { background: linear-gradient(135deg, #1E4B78, #0A2540); color: #fff; }
:root[data-theme="dark"] .section--invert { background: #0D1420; }
:root[data-theme="dark"] .theme-toggle { color: #D7E2ED; }
:root[data-theme="dark"] .theme-toggle:hover { color: #4FA3E3; border-color: #4FA3E3; }

/* Header & navigation */
:root[data-theme="dark"] .site-header { background: #0D1219; border-bottom-color: #1D2734; }
:root[data-theme="dark"] .site-header.is-scrolled {
  box-shadow: 0 6px 24px rgba(0,0,0,.55); border-bottom-color: transparent; }
:root[data-theme="dark"] .brand__logo--mask { background: #FFFFFF; }
:root[data-theme="dark"] .lang,
:root[data-theme="dark"] .theme-toggle { border-color: #2C3848; }
html[data-theme="dark"][lang="de"] .lang__btn[data-lang="de"],
html[data-theme="dark"]:not([lang="de"]) .lang__btn[data-lang="en"] { background: var(--nav-blue); color: #0B0F15; }
:root[data-theme="dark"] .nav-scrim { background: rgba(0,0,0,.62); }

/* Cards, strips, media, tables, pills */
:root[data-theme="dark"] .card,
:root[data-theme="dark"] .feature-strip,
:root[data-theme="dark"] .dl-item { background: #121A25; }
:root[data-theme="dark"] .feature-strip__icon { background: #1B2634; color: #7FB6E8; }
:root[data-theme="dark"] .media { background: #121A25; }
:root[data-theme="dark"] .media--product { background: #121A25; }
:root[data-theme="dark"] .spec-table th { background: #121A25; }
:root[data-theme="dark"] .spec-table tr:hover td { background: #131C28; }
:root[data-theme="dark"] .pill { background: #121A25; color: #A9C7E2; }
:root[data-theme="dark"] .placeholder {
  background: repeating-linear-gradient(-45deg, #10161F, #10161F 12px, #131C28 12px, #131C28 24px); }
:root[data-theme="dark"] .map-embed { background: #121A25; }
:root[data-theme="dark"] .product-nav__item { background: #121A25; }
:root[data-theme="dark"] .product-nav__item:hover { border-color: #5FA8E0; }
:root[data-theme="dark"] .product-nav__meta { color: #7FB6E8; }
:root[data-theme="dark"] .product-nav__index { color: #7A8DA1; }
:root[data-theme="dark"] .product-nav__item:hover { background: rgba(79,163,227,.06);
  box-shadow: 0 16px 36px rgba(0,0,0,.5); }
:root[data-theme="dark"] .tech-cloud__tag { color: #A5B1BE; border-color: #2C3848; }
:root[data-theme="dark"] .tech-cloud__tag:hover { color: #4FA3E3; border-color: #4FA3E3; }
:root[data-theme="dark"] .tech-cloud__tag--accent { color: #fff; background: #1B76BE; border-color: #1B76BE; }
:root[data-theme="dark"] .tech-cloud__tag--accent:hover { background: #2E8AD2; border-color: #2E8AD2; }
:root[data-theme="dark"] .pgallery__arrow { background: rgba(18,26,37,.92); color: #7FB6E8; border-color: #2C3848; }
:root[data-theme="dark"] .pgallery__arrow:hover { background: #1B76BE; color: #fff; }
:root[data-theme="dark"] .pgallery__dots button { background: #2C3848; }
:root[data-theme="dark"] .pgallery__dots button.is-active { background: #4FA3E3; }
:root[data-theme="dark"] .pgallery__slide--placeholder {
  background: repeating-linear-gradient(-45deg, #10161F, #10161F 14px, rgba(79,163,227,.06) 14px, rgba(79,163,227,.06) 28px); }

/* Home hero band + page heroes (light gradients → deep neutral) */
:root[data-theme="dark"] .hero-band {
  background: linear-gradient(155deg, #0B0F15 0%, #0E141D 45%, #101826 100%); }
:root[data-theme="dark"] .page-hero {
  background: linear-gradient(155deg, #0B0F15 0%, #0E141D 55%, #101826 100%); }

/* Buttons */
:root[data-theme="dark"] .btn--ghost { color: #E8F1F9; border-color: #55708C; }
:root[data-theme="dark"] .btn--ghost:hover { background: #E8F1F9; color: #0A2540; }
:root[data-theme="dark"] .link-arrow { color: #7FB6E8; }

/* Forms */
:root[data-theme="dark"] .form-field input,
:root[data-theme="dark"] .form-field textarea,
:root[data-theme="dark"] .form-field select {
  background: #121A25; color: #F3F6FA; border-color: #2C3848; }
:root[data-theme="dark"] .form-status--ok { background: #10231a; color: #7ed6a2; border-color: #1d4a32; }
:root[data-theme="dark"] .form-status--err { background: #2a1416; color: #e08d8d; border-color: #57282b; }

/* Mobile drawer */
@media (max-width: 992px) {
  :root[data-theme="dark"] .nav { background: #0D1219; border-left-color: #1D2734; }
  :root[data-theme="dark"] .nav__link { border-bottom-color: #1D2734; }
}

/* ============================================================
   Social links (LinkedIn / YouTube) — footer + contact page
   ============================================================ */
.social-links { display: flex; gap: .6rem; margin-top: 1rem; }
.social-link {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 8px;
  border: 1px solid var(--border, #D9E1EA); color: inherit;
  transition: color .2s var(--ease), border-color .2s var(--ease),
              background .2s var(--ease), transform .2s var(--ease);
}
.social-link svg { width: 18px; height: 18px; }
.social-link:hover, .social-link:focus-visible {
  color: var(--nav-blue); border-color: var(--nav-blue);
  background: rgba(0,90,156,.07); transform: translateY(-2px);
}
.site-footer .social-link { border-color: rgba(255,255,255,.22); color: #C9D4E0; }
.site-footer .social-link:hover, .site-footer .social-link:focus-visible {
  color: #fff; border-color: #fff; background: rgba(255,255,255,.08);
}
:root[data-theme="dark"] .social-link { border-color: #2C3848; }
:root[data-theme="dark"] .social-link:hover,
:root[data-theme="dark"] .social-link:focus-visible {
  color: #4FA3E3; border-color: #4FA3E3; background: rgba(79,163,227,.12);
}

/* ============================================================
   Global locations — contact page cards + world map
   ============================================================ */
.location-card {
  height: 100%; display: flex; flex-direction: column; gap: .35rem;
}
.location-card address { font-style: normal; line-height: 1.8; }
.location-card .location-card__meta { margin-top: auto; padding-top: .8rem; line-height: 1.9; }
.location-card .eyebrow { margin-bottom: .4rem; }
.location-card h3 { font-size: 1.05rem; }

.world-map { position: relative; border-radius: var(--radius-lg); overflow: hidden;
  border: 1px solid var(--border, #D9E1EA); background: var(--bg-tint, #F4F7FA); }
.world-map svg { display: block; width: 100%; height: auto; }
.world-map__dots { stroke: #C3CEDA; }
.world-map__marker { fill: #D5222B; }
.world-map__pulse { fill: none; stroke: #D5222B; stroke-width: 1.2; opacity: .55;
  animation: map-pulse 2.6s ease-out infinite; transform-origin: center; transform-box: fill-box; }
@keyframes map-pulse {
  0% { transform: scale(.4); opacity: .65; }
  70% { transform: scale(1.6); opacity: 0; }
  100% { transform: scale(1.6); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) { .world-map__pulse { animation: none; opacity: 0; } }
.world-map__legend {
  display: flex; flex-wrap: wrap; gap: .5rem 1.6rem; padding: 1rem 1.4rem;
  border-top: 1px solid var(--border, #D9E1EA); font-size: .88rem;
}
.world-map__legend span { display: inline-flex; align-items: center; gap: .5rem; }
.world-map__legend i {
  width: 9px; height: 9px; border-radius: 50%; background: #D5222B; flex: none;
}
:root[data-theme="dark"] .world-map { background: #10161F; border-color: #2C3848; }
:root[data-theme="dark"] .world-map__dots { stroke: #33415A; }
:root[data-theme="dark"] .world-map__legend { border-top-color: #2C3848; }
