@skyscanner/backpack-web 42.9.0 → 42.10.0-dev-v24445021679.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/bpk-component-ai-blurb/src/BpkAiBlurb.module.css +1 -1
  2. package/bpk-component-ai-blurb/src/BpkAiBlurbFeedback.js +13 -21
  3. package/bpk-component-bubble/src/BpkBubble.module.css +1 -1
  4. package/bpk-component-calendar/src/BpkCalendarNav.d.ts +1 -1
  5. package/bpk-component-calendar/src/BpkCalendarNav.js +0 -1
  6. package/bpk-component-chatbot-input/index.d.ts +1 -2
  7. package/bpk-component-chatbot-input/src/BpkChatbotInput.d.ts +13 -3
  8. package/bpk-component-chatbot-input/src/BpkChatbotInput.js +18 -98
  9. package/bpk-component-chatbot-input/src/BpkChatbotInput.module.css +1 -1
  10. package/bpk-component-chatbot-input/src/BpkChatbotInputContext.d.ts +9 -0
  11. package/bpk-component-chatbot-input/src/BpkChatbotInputContext.js +26 -0
  12. package/bpk-component-chatbot-input/src/BpkChatbotInputInput.d.ts +3 -0
  13. package/bpk-component-chatbot-input/src/BpkChatbotInputInput.js +125 -0
  14. package/bpk-component-chatbot-input/src/BpkChatbotInputRoot.d.ts +3 -0
  15. package/bpk-component-chatbot-input/src/BpkChatbotInputRoot.js +77 -0
  16. package/bpk-component-chatbot-input/src/BpkChatbotInputToolbar.d.ts +3 -0
  17. package/bpk-component-chatbot-input/src/BpkChatbotInputToolbar.js +33 -0
  18. package/bpk-component-chatbot-input/src/TextAreaField/TextAreaField.d.ts +1 -0
  19. package/bpk-component-chatbot-input/src/TextAreaField/TextAreaField.js +5 -1
  20. package/bpk-component-chatbot-input/src/common-types.d.ts +23 -3
  21. package/bpk-component-chatbot-input/src/hooks/useChatbotInput.d.ts +2 -1
  22. package/bpk-component-chatbot-input/src/hooks/useChatbotInput.js +3 -1
  23. package/bpk-component-chatbot-input/src/hooks/useTextAreaAutoResize.d.ts +2 -1
  24. package/bpk-component-chatbot-input/src/hooks/useTextAreaAutoResize.js +19 -6
  25. package/bpk-component-layout/index.d.ts +4 -0
  26. package/bpk-component-layout/index.js +2 -0
  27. package/bpk-component-layout/src/BpkArkProvider.d.ts +20 -0
  28. package/bpk-component-layout/src/BpkArkProvider.js +112 -0
  29. package/bpk-component-layout/src/BpkLayoutProvider.d.ts +19 -0
  30. package/bpk-component-layout/src/BpkLayoutProvider.js +50 -0
  31. package/bpk-component-layout/src/BpkProvider.d.ts +6 -7
  32. package/bpk-component-layout/src/BpkProvider.js +13 -96
  33. package/bpk-component-layout/src/resolveTextStyle.d.ts +13 -0
  34. package/bpk-component-layout/src/resolveTextStyle.js +265 -0
  35. package/bpk-component-layout/src/theme.js +29 -252
  36. package/bpk-component-layout/src/tokenUtils.js +31 -9
  37. package/bpk-component-select/index.d.ts +5 -0
  38. package/bpk-component-select/index.js +3 -1
  39. package/bpk-component-select/src/BpkSelect.d.ts +18 -0
  40. package/bpk-component-select/src/BpkSelect.js +3 -28
  41. package/bpk-component-select/src/themeAttributes.d.ts +2 -0
  42. package/bpk-component-text/src/BpkText.module.css +1 -1
  43. package/bpk-component-theme-toggle/src/BpkThemeToggle.js +0 -1
  44. package/bpk-scrim-utils/src/focusScope.d.ts +5 -0
  45. package/bpk-scrim-utils/src/focusScope.js +88 -0
  46. package/bpk-scrim-utils/src/focusStore.d.ts +6 -0
  47. package/bpk-scrim-utils/src/focusStore.js +74 -0
  48. package/bpk-scrim-utils/src/withScrim.js +2 -5
  49. package/bpk-stylesheets/base.css +1 -1
  50. package/bpk-stylesheets/font.css +1 -1
  51. package/bpk-stylesheets/font.scss +80 -1
  52. package/bpk-stylesheets/larken.css +1 -1
  53. package/bpk-stylesheets/larken.scss +63 -1
  54. package/package.json +3 -5
  55. package/bpk-component-chatbot-input/src/SendButton/SendButton.d.ts +0 -9
  56. package/bpk-component-chatbot-input/src/SendButton/SendButton.js +0 -47
@@ -14,7 +14,9 @@
14
14
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
15
  * See the License for the specific language governing permissions and
16
16
  * limitations under the License.
17
- */import BpkSelect from "./src/BpkSelect";
17
+ */
18
+
19
+ import BpkSelect from "./src/BpkSelect";
18
20
  import themeAttributes from "./src/themeAttributes";
19
21
  export default BpkSelect;
20
22
  export { themeAttributes };
@@ -0,0 +1,18 @@
1
+ import type { ReactElement, SelectHTMLAttributes } from 'react';
2
+ export type Props = Omit<SelectHTMLAttributes<HTMLSelectElement>, 'className' | 'disabled' | 'value'> & {
3
+ id: string;
4
+ name: string;
5
+ value?: string;
6
+ className?: string | null;
7
+ disabled?: boolean;
8
+ docked?: boolean;
9
+ dockedFirst?: boolean;
10
+ dockedLast?: boolean;
11
+ dockedMiddle?: boolean;
12
+ image?: ReactElement | null;
13
+ large?: boolean;
14
+ valid?: boolean | null;
15
+ wrapperClassName?: string | null;
16
+ };
17
+ declare const BpkSelect: ({ className, disabled, docked, dockedFirst, dockedLast, dockedMiddle, image, large, valid, wrapperClassName, ...rest }: Props) => import("react/jsx-runtime").JSX.Element;
18
+ export default BpkSelect;
@@ -14,7 +14,8 @@
14
14
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
15
  * See the License for the specific language governing permissions and
16
16
  * limitations under the License.
17
- */import PropTypes from 'prop-types';
17
+ */
18
+
18
19
  import { cloneElement } from 'react';
19
20
  import { cssModules } from "../../bpk-react-utils";
20
21
  import STYLES from "./BpkSelect.module.css";
@@ -36,10 +37,7 @@ const BpkSelect = ({
36
37
  // Explicit check for false primitive value as undefined is
37
38
  // treated as neither valid nor invalid
38
39
  const isInvalid = valid === false;
39
- const select =
40
- /*#__PURE__*/
41
- // $FlowFixMe[cannot-spread-inexact] - inexact rest. See 'decisions/flowfixme.md'.
42
- _jsx("select", {
40
+ const select = /*#__PURE__*/_jsx("select", {
43
41
  className: getClassName('bpk-select', large && 'bpk-select--large', docked && 'bpk-select--docked', dockedFirst && 'bpk-select--docked-first', dockedMiddle && 'bpk-select--docked-middle', dockedLast && 'bpk-select--docked-last', isInvalid && 'bpk-select--invalid', image && 'bpk-select--with-image', image && large && 'bpk-select--with-image-large', className),
44
42
  disabled: disabled,
45
43
  "aria-invalid": isInvalid,
@@ -56,27 +54,4 @@ const BpkSelect = ({
56
54
  }
57
55
  return select;
58
56
  };
59
- BpkSelect.propTypes = {
60
- id: PropTypes.string.isRequired,
61
- name: PropTypes.string.isRequired,
62
- /**
63
- * The "value" prop is only relevant if the user is wanting a controlled component
64
- * In some cases, users may want to create an uncontrolled select as described here: https://beta.reactjs.org/reference/react-dom/components/select
65
- * In this case value is not required and nor should it be given a default value (as the linter thinks)
66
- * Prop types are not expressive enough (without a drastic increase in complexity of writing a custom validator) to encode this relationship. Equally, this wouldn't actually solve the linting issue (AFAIK).
67
- * As a solution, the require-default-props has been disabled for this line.
68
- */
69
-
70
- value: PropTypes.string,
71
- className: PropTypes.string,
72
- disabled: PropTypes.bool,
73
- docked: PropTypes.bool,
74
- dockedFirst: PropTypes.bool,
75
- dockedLast: PropTypes.bool,
76
- dockedMiddle: PropTypes.bool,
77
- image: PropTypes.node,
78
- large: PropTypes.bool,
79
- valid: PropTypes.bool,
80
- wrapperClassName: PropTypes.string
81
- };
82
57
  export default BpkSelect;
@@ -0,0 +1,2 @@
1
+ declare const _default: string[];
2
+ export default _default;
@@ -15,4 +15,4 @@
15
15
  * See the License for the specific language governing permissions and
16
16
  * limitations under the License.
17
17
  */
18
- .bpk-text{margin:0}.bpk-text--xs{font-size:.75rem;line-height:1rem;font-weight:400}.bpk-text--sm{font-size:.875rem;line-height:1.25rem;font-weight:400}.bpk-text--base{font-size:1rem;line-height:1.5rem;font-weight:400}.bpk-text--lg{font-size:1.25rem;line-height:1.75rem;font-weight:400}.bpk-text--xl{font-size:1.5rem;line-height:2rem;font-weight:400}.bpk-text--xxl{font-size:2rem;line-height:2.5rem;font-weight:700}.bpk-text--xxxl{font-size:2.5rem;line-height:3rem;font-weight:700}.bpk-text--xxxxl{font-size:3rem;line-height:3.5rem;font-weight:700;letter-spacing:-0.02em}.bpk-text--xxxxxl{font-size:4rem;line-height:4rem;font-weight:700;letter-spacing:-0.02em}.bpk-text--caption{font-size:.75rem;line-height:1rem;font-weight:400}.bpk-text--footnote{font-size:.875rem;line-height:1.25rem;font-weight:400}.bpk-text--label-1{font-size:1rem;line-height:1.5rem;font-weight:700}.bpk-text--label-2{font-size:.875rem;line-height:1.25rem;font-weight:700}.bpk-text--label-3{font-size:.75rem;line-height:1rem;font-weight:700}.bpk-text--body-default{font-size:1rem;line-height:1.5rem;font-weight:400}.bpk-text--body-longform{font-size:1.25rem;line-height:1.75rem;font-weight:400}.bpk-text--subheading{font-size:1.5rem;line-height:2rem;font-weight:400}.bpk-text--heading-1{font-size:2.5rem;line-height:3rem;font-weight:700}.bpk-text--heading-2{font-size:2rem;line-height:2.5rem;font-weight:700}.bpk-text--heading-3{font-size:1.5rem;line-height:1.75rem;font-weight:700}.bpk-text--heading-4{font-size:1.25rem;line-height:1.5rem;font-weight:700}.bpk-text--heading-5{font-size:1rem;line-height:1.25rem;font-weight:700}.bpk-text--hero-1{font-size:7.5rem;line-height:7.5rem;font-weight:900;letter-spacing:-0.04em}.bpk-text--hero-2{font-size:6rem;line-height:6rem;font-weight:900;letter-spacing:-0.04em}.bpk-text--hero-3{font-size:4.75rem;line-height:4.75rem;font-weight:900;letter-spacing:-0.04em}.bpk-text--hero-4{font-size:4rem;line-height:4rem;font-weight:900;letter-spacing:-0.04em}.bpk-text--hero-5{font-size:3rem;line-height:3rem;font-weight:900;letter-spacing:-0.04em}.bpk-text--hero-6{font-size:2.5rem;line-height:2.5rem;font-weight:900;letter-spacing:-0.04em}.bpk-text--editorial-1{font-family:var(--bpk-larken-font-stack, "Larken", "Noto Sans Arabic", "Noto Serif Hebrew", "Noto Serif", "Noto Serif Devanagari", "Noto Serif Thai", "Noto Serif TC", "Noto Serif JP", "Noto Serif KR", "Noto Serif SC", sans-serif);font-size:3rem;line-height:3.5rem;font-weight:300}.bpk-text--editorial-2{font-family:var(--bpk-larken-font-stack, "Larken", "Noto Sans Arabic", "Noto Serif Hebrew", "Noto Serif", "Noto Serif Devanagari", "Noto Serif Thai", "Noto Serif TC", "Noto Serif JP", "Noto Serif KR", "Noto Serif SC", sans-serif);font-size:2rem;line-height:2.5rem;font-weight:300}.bpk-text--editorial-3{font-family:var(--bpk-larken-font-stack, "Larken", "Noto Sans Arabic", "Noto Serif Hebrew", "Noto Serif", "Noto Serif Devanagari", "Noto Serif Thai", "Noto Serif TC", "Noto Serif JP", "Noto Serif KR", "Noto Serif SC", sans-serif);font-size:1.25rem;line-height:1.75rem;font-weight:400}.bpk-text.bpk-text--text-disabled{color:rgba(0,0,0,.2)}.bpk-text.bpk-text--text-disabled-on-dark{color:hsla(0,0%,100%,.5)}.bpk-text.bpk-text--text-error{color:#e70866}.bpk-text.bpk-text--text-hero{color:#0062e3}.bpk-text.bpk-text--text-link{color:#0062e3}.bpk-text.bpk-text--text-on-dark{color:#fff}.bpk-text.bpk-text--text-on-light{color:#161616}.bpk-text.bpk-text--text-primary{color:#161616}.bpk-text.bpk-text--text-primary-inverse{color:#fff}.bpk-text.bpk-text--text-secondary{color:#626971}.bpk-text.bpk-text--text-success{color:#0c838a}
18
+ .bpk-text{margin:0}.bpk-text--xs{font-size:.75rem;line-height:1rem;font-weight:400}.bpk-text--sm{font-size:.875rem;line-height:1.25rem;font-weight:400}.bpk-text--base{font-size:1rem;line-height:1.5rem;font-weight:400}.bpk-text--lg{font-size:1.25rem;line-height:1.75rem;font-weight:400}.bpk-text--xl{font-size:1.5rem;line-height:2rem;font-weight:400}.bpk-text--xxl{font-size:2rem;line-height:2.5rem;font-weight:700}.bpk-text--xxxl{font-size:2.5rem;line-height:3rem;font-weight:700}.bpk-text--xxxxl{font-size:3rem;line-height:3.5rem;font-weight:700;letter-spacing:-0.02em}.bpk-text--xxxxxl{font-size:4rem;line-height:4rem;font-weight:700;letter-spacing:-0.02em}.bpk-text--caption{font-size:.75rem;line-height:1rem;font-weight:400}.bpk-text--footnote{font-size:.875rem;line-height:1.25rem;font-weight:400}.bpk-text--label-1{font-size:1rem;line-height:1.5rem;font-weight:700}.bpk-text--label-2{font-size:.875rem;line-height:1.25rem;font-weight:700}.bpk-text--label-3{font-size:.75rem;line-height:1rem;font-weight:700}.bpk-text--body-default{font-size:1rem;line-height:1.5rem;font-weight:400}.bpk-text--body-longform{font-size:1.25rem;line-height:1.75rem;font-weight:400}.bpk-text--subheading{font-size:1.5rem;line-height:2rem;font-weight:400}.bpk-text--heading-1{font-size:2.5rem;line-height:3rem;font-weight:700}.bpk-text--heading-2{font-size:2rem;line-height:2.5rem;font-weight:700}.bpk-text--heading-3{font-size:1.5rem;line-height:1.75rem;font-weight:700}.bpk-text--heading-4{font-size:1.25rem;line-height:1.5rem;font-weight:700}.bpk-text--heading-5{font-size:1rem;line-height:1.25rem;font-weight:700}.bpk-text--hero-1{font-size:7.5rem;line-height:7.5rem;font-weight:900;letter-spacing:-0.04em}.bpk-text--hero-2{font-size:6rem;line-height:6rem;font-weight:900;letter-spacing:-0.04em}.bpk-text--hero-3{font-size:4.75rem;line-height:4.75rem;font-weight:900;letter-spacing:-0.04em}.bpk-text--hero-4{font-size:4rem;line-height:4rem;font-weight:900;letter-spacing:-0.04em}.bpk-text--hero-5{font-size:3rem;line-height:3rem;font-weight:900;letter-spacing:-0.04em}.bpk-text--hero-6{font-size:2.5rem;line-height:2.5rem;font-weight:900;letter-spacing:-0.04em}.bpk-text--editorial-1{font-family:var(--bpk-larken-font-stack, "Larken", sans-serif);font-size:3rem;line-height:3.5rem;font-weight:300}.bpk-text--editorial-2{font-family:var(--bpk-larken-font-stack, "Larken", sans-serif);font-size:2rem;line-height:2.5rem;font-weight:300}.bpk-text--editorial-3{font-family:var(--bpk-larken-font-stack, "Larken", sans-serif);font-size:1.25rem;line-height:1.75rem;font-weight:400}.bpk-text.bpk-text--text-disabled{color:rgba(0,0,0,.2)}.bpk-text.bpk-text--text-disabled-on-dark{color:hsla(0,0%,100%,.5)}.bpk-text.bpk-text--text-error{color:#e70866}.bpk-text.bpk-text--text-hero{color:#0062e3}.bpk-text.bpk-text--text-link{color:#0062e3}.bpk-text.bpk-text--text-on-dark{color:#fff}.bpk-text.bpk-text--text-on-light{color:#161616}.bpk-text.bpk-text--text-primary{color:#161616}.bpk-text.bpk-text--text-primary-inverse{color:#fff}.bpk-text.bpk-text--text-secondary{color:#626971}.bpk-text.bpk-text--text-success{color:#0c838a}
@@ -18,7 +18,6 @@
18
18
 
19
19
  import { Component } from 'react';
20
20
  import BpkLabel from "../../bpk-component-label";
21
- // @ts-expect-error Untyped import. See `decisions/imports-ts-suppressions.md`.
22
21
  import BpkSelect from "../../bpk-component-select";
23
22
  import BpkVisuallyHidden from "../../bpk-component-visually-hidden";
24
23
  import { getDataComponentAttribute } from "../../bpk-react-utils";
@@ -0,0 +1,5 @@
1
+ declare const focusScope: {
2
+ scopeFocus(element: HTMLElement): void;
3
+ unscopeFocus(): void;
4
+ };
5
+ export default focusScope;
@@ -0,0 +1,88 @@
1
+ /*
2
+ * Backpack - Skyscanner's Design System
3
+ *
4
+ * Copyright 2016 Skyscanner Ltd
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+
19
+ /*
20
+ * Based on a11y-focus-scope by CloudFlare, Inc.
21
+ * https://github.com/cloudflare/a11y-focus-scope
22
+ *
23
+ * Copyright (c) 2015, CloudFlare, Inc.
24
+ * All rights reserved.
25
+ *
26
+ * Redistribution and use in source and binary forms, with or without
27
+ * modification, are permitted provided that the following conditions are met:
28
+ *
29
+ * 1. Redistributions of source code must retain the above copyright notice,
30
+ * this list of conditions and the following disclaimer.
31
+ *
32
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
33
+ * this list of conditions and the following disclaimer in the documentation
34
+ * and/or other materials provided with the distribution.
35
+ *
36
+ * 3. Neither the name of the copyright holder nor the names of its
37
+ * contributors may be used to endorse or promote products derived from
38
+ * this software without specific prior written permission.
39
+ *
40
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
41
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
43
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
44
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
45
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
46
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
47
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
48
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
49
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
50
+ * POSSIBILITY OF SUCH DAMAGE.
51
+ */
52
+
53
+ import { tabbable } from 'tabbable';
54
+ let teardownFn = null;
55
+ function init(element) {
56
+ function focus() {
57
+ const firstTabbable = tabbable(element)[0];
58
+ if (firstTabbable) {
59
+ firstTabbable.focus();
60
+ } else {
61
+ if (!element.hasAttribute('tabindex')) {
62
+ element.setAttribute('tabindex', '-1');
63
+ }
64
+ element.focus();
65
+ }
66
+ }
67
+ function onFocusIn(event) {
68
+ if (element !== event.target && !element.contains(event.target)) {
69
+ focus();
70
+ }
71
+ }
72
+ focus();
73
+ document.addEventListener('focusin', onFocusIn);
74
+ return function teardown() {
75
+ document.removeEventListener('focusin', onFocusIn);
76
+ };
77
+ }
78
+ const focusScope = {
79
+ scopeFocus(element) {
80
+ if (teardownFn) teardownFn();
81
+ teardownFn = init(element);
82
+ },
83
+ unscopeFocus() {
84
+ if (teardownFn) teardownFn();
85
+ teardownFn = null;
86
+ }
87
+ };
88
+ export default focusScope;
@@ -0,0 +1,6 @@
1
+ declare const focusStore: {
2
+ storeFocus(): void;
3
+ clearStoredFocus(): void;
4
+ restoreFocus(): void;
5
+ };
6
+ export default focusStore;
@@ -0,0 +1,74 @@
1
+ /*
2
+ * Backpack - Skyscanner's Design System
3
+ *
4
+ * Copyright 2016 Skyscanner Ltd
5
+ *
6
+ * Licensed under the Apache License, Version 2.0 (the "License");
7
+ * you may not use this file except in compliance with the License.
8
+ * You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing, software
13
+ * distributed under the License is distributed on an "AS IS" BASIS,
14
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ * See the License for the specific language governing permissions and
16
+ * limitations under the License.
17
+ */
18
+
19
+ /*
20
+ * Based on a11y-focus-store by CloudFlare, Inc.
21
+ * https://github.com/cloudflare/a11y-focus-store
22
+ *
23
+ * Copyright (c) 2015, CloudFlare, Inc.
24
+ * All rights reserved.
25
+ *
26
+ * Redistribution and use in source and binary forms, with or without
27
+ * modification, are permitted provided that the following conditions are met:
28
+ *
29
+ * 1. Redistributions of source code must retain the above copyright notice,
30
+ * this list of conditions and the following disclaimer.
31
+ *
32
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
33
+ * this list of conditions and the following disclaimer in the documentation
34
+ * and/or other materials provided with the distribution.
35
+ *
36
+ * 3. Neither the name of the copyright holder nor the names of its
37
+ * contributors may be used to endorse or promote products derived from
38
+ * this software without specific prior written permission.
39
+ *
40
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
41
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
43
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
44
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
45
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
46
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
47
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
48
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
49
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
50
+ * POSSIBILITY OF SUCH DAMAGE.
51
+ */
52
+
53
+ let storedFocusElement = null;
54
+ const focusStore = {
55
+ storeFocus() {
56
+ storedFocusElement = document.activeElement;
57
+ },
58
+ clearStoredFocus() {
59
+ storedFocusElement = null;
60
+ },
61
+ restoreFocus() {
62
+ if (!storedFocusElement || typeof storedFocusElement.focus !== 'function') {
63
+ storedFocusElement = null;
64
+ return;
65
+ }
66
+ try {
67
+ storedFocusElement.focus();
68
+ } catch {
69
+ // Element may have been detached from the DOM
70
+ }
71
+ storedFocusElement = null;
72
+ }
73
+ };
74
+ export default focusStore;
@@ -17,13 +17,10 @@
17
17
  */
18
18
 
19
19
  import { Component } from 'react';
20
-
21
- // @ts-expect-error Untyped import. See `decisions/imports-ts-suppressions.md`.
22
- import focusScope from 'a11y-focus-scope';
23
- // @ts-expect-error Untyped import. See `decisions/imports-ts-suppressions.md`.
24
- import focusStore from 'a11y-focus-store';
25
20
  import { cssModules, isDeviceIpad, isDeviceIphone, wrapDisplayName } from "../../bpk-react-utils";
26
21
  import BpkScrim from "./BpkScrim";
22
+ import focusScope from "./focusScope";
23
+ import focusStore from "./focusStore";
27
24
  import { fixBody, lockScroll, restoreScroll, storeScroll, unfixBody, unlockScroll } from "./scroll-utils";
28
25
  import STYLES from "./bpk-scrim-content.module.css";
29
26
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -16,4 +16,4 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  *
19
- *//*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}template,[hidden]{display:none}a{background-color:rgba(0,0,0,0);-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}button,input,optgroup,select,textarea{font:inherit;margin:0}optgroup{font-weight:bold}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}html{font-size:100%;box-sizing:border-box}*{box-sizing:inherit}*::before,*::after{box-sizing:inherit}body{color:#161616;font-family:var(--bpk-base-font-stack, "Skyscanner Relative", "Noto Sans Arabic", "Noto Sans Hebrew", "Noto Sans", "Noto Sans Devanagari", "Noto Sans Thai", "Noto Sans TC", "Noto Sans JP", "Noto Sans KR", "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif);font-size:1rem;line-height:1.3rem}body.scaffold-font-size{font-size:13px}body.enable-font-smoothing{-webkit-font-smoothing:antialiased}:focus-visible{outline:.125rem solid #0062e3;outline-offset:.125rem}.hidden,.hide{display:none !important}.visuallyhidden,.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;white-space:nowrap;overflow:hidden;clip:rect(0 0 0 0)}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus,.visually-hidden.focusable:active,.visually-hidden.focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.invisible{visibility:hidden}.clearfix::before,.clearfix::after{content:"";display:table}.clearfix::after{clear:both}
19
+ *//*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}template,[hidden]{display:none}a{background-color:rgba(0,0,0,0);-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}button,input,optgroup,select,textarea{font:inherit;margin:0}optgroup{font-weight:bold}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}html{font-size:100%;box-sizing:border-box}*{box-sizing:inherit}*::before,*::after{box-sizing:inherit}body{color:#161616;font-family:var(--bpk-base-font-stack, "Skyscanner Relative", -apple-system, BlinkMacSystemFont, "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif);font-size:1rem;line-height:1.3rem}body.scaffold-font-size{font-size:13px}body.enable-font-smoothing{-webkit-font-smoothing:antialiased}:focus-visible{outline:.125rem solid #0062e3;outline-offset:.125rem}.hidden,.hide{display:none !important}.visuallyhidden,.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;white-space:nowrap;overflow:hidden;clip:rect(0 0 0 0)}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus,.visually-hidden.focusable:active,.visually-hidden.focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.invisible{visibility:hidden}.clearfix::before,.clearfix::after{content:"";display:table}.clearfix::after{clear:both}
@@ -15,4 +15,4 @@
15
15
  * See the License for the specific language governing permissions and
16
16
  * limitations under the License.
17
17
  */
18
- @font-face{font-family:"Skyscanner Relative";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Book-f9356ad6.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Book-46f9f429.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Book-ab1dbcbe.ttf') format('ttf')}@font-face{font-family:"Skyscanner Relative";font-style:italic;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Italic-10532ac3.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Italic-db5d0ac5.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Italic-8eec3f3a.ttf') format('ttf')}@font-face{font-family:"Skyscanner Relative";font-style:normal;font-weight:500;src:url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Medium-c08dc28b.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Medium-865e167a.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Medium-d0ae478a.ttf') format('ttf')}@font-face{font-family:"Skyscanner Relative";font-style:italic;font-weight:500;src:url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-MediumItalic-81517f37.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-MediumItalic-bbdb6b0c.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-MediumItalic-226fe64c.ttf') format('ttf')}@font-face{font-family:"Skyscanner Relative";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Bold-8545937e.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Bold-a099c9f7.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Bold-ec4cc5a7.ttf') format('ttf')}@font-face{font-family:"Skyscanner Relative";font-style:italic;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BoldItalic-01b5d138.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BoldItalic-4d6d36e3.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BoldItalic-dc9284dc.ttf') format('ttf')}@font-face{font-family:"Skyscanner Relative";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Black-bb3c9434.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Black-bba2eb55.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Black-314703cc.ttf') format('ttf')}@font-face{font-family:"Skyscanner Relative";font-style:italic;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BlackItalic-c2149c91.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BlackItalic-a34cd594.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BlackItalic-7e516ee5.ttf') format('ttf')}@font-face{font-family:"Noto Sans JP";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansJP-ExtraBold-d4e678e6.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansJP-ExtraBold-071fa89b.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansJP-ExtraBold-71fc7f76.ttf') format('ttf')}@font-face{font-family:"Noto Sans JP";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansJP-Bold-b656150c.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansJP-Bold-6ddf472f.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansJP-Bold-deeb2988.ttf') format('ttf')}@font-face{font-family:"Noto Sans JP";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansJP-Regular-6ab10d56.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansJP-Regular-70c49e9e.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansJP-Regular-68d5dc69.ttf') format('ttf')}@font-face{font-family:"Noto Sans KR";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansKR-ExtraBold-1dfe3b92.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansKR-ExtraBold-6c571306.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansKR-ExtraBold-f350038a.ttf') format('ttf')}@font-face{font-family:"Noto Sans KR";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansKR-Bold-5286cc6d.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansKR-Bold-74c4cbc7.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansKR-Bold-5651f33d.ttf') format('ttf')}@font-face{font-family:"Noto Sans KR";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansKR-Regular-b6a2ff73.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansKR-Regular-96147637.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansKR-Regular-a2cd60b3.ttf') format('ttf')}@font-face{font-family:"Noto Sans SC";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansSC-Bold-22c3e4e0.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansSC-Bold-87ef5110.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansSC-Bold-57f04989.ttf') format('ttf')}@font-face{font-family:"Noto Sans SC";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansSC-Bold-22c3e4e0.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansSC-Bold-87ef5110.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansSC-Bold-57f04989.ttf') format('ttf')}@font-face{font-family:"Noto Sans SC";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansSC-Regular-97e50cfd.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansSC-Regular-cba63765.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansSC-Regular-f793115b.ttf') format('ttf')}@font-face{font-family:"Noto Sans TC";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansTC-Bold-355d38e9.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansTC-Bold-2abc3583.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansTC-Bold-86244830.ttf') format('ttf')}@font-face{font-family:"Noto Sans TC";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansTC-Bold-355d38e9.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansTC-Bold-2abc3583.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansTC-Bold-86244830.ttf') format('ttf')}@font-face{font-family:"Noto Sans TC";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansTC-Regular-5d6d6915.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansTC-Regular-c4185417.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansTC-Regular-d4301ce6.ttf') format('ttf')}@font-face{font-family:"Noto Sans Thai";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansThai-Bold-74e247cc.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansThai-Bold-91433b5b.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansThai-Bold-778d694c.ttf') format('ttf')}@font-face{font-family:"Noto Sans Thai";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansThai-Bold-74e247cc.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansThai-Bold-91433b5b.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansThai-Bold-778d694c.ttf') format('ttf')}@font-face{font-family:"Noto Sans Thai";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansThai-Regular-49d26bc7.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansThai-Regular-bc78fb35.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansThai-Regular-84e59eed.ttf') format('ttf')}@font-face{font-family:"Noto Sans Devanagari";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansDevanagari-ExtraBold-ff675d8c.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansDevanagari-ExtraBold-2b68fdf3.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansDevanagari-ExtraBold-ad7aee12.ttf') format('ttf')}@font-face{font-family:"Noto Sans Devanagari";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansDevanagari-Bold-19924491.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansDevanagari-Bold-2598dc51.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansDevanagari-Bold-bca34adc.ttf') format('ttf')}@font-face{font-family:"Noto Sans Devanagari";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansDevanagari-Regular-2ddbe014.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansDevanagari-Regular-b7e8aefe.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansDevanagari-Regular-e0474da6.ttf') format('ttf')}@font-face{font-family:"Noto Sans";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-ExtraBold-d8d5cc89.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-ExtraBold-177dbfc0.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-ExtraBold-cac84afc.ttf') format('ttf')}@font-face{font-family:"Noto Sans";font-style:italic;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-ExtraBoldItalic-cf3e028d.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-ExtraBoldItalic-be131c58.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-ExtraBoldItalic-c435f928.ttf') format('ttf')}@font-face{font-family:"Noto Sans";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-Bold-0b4b7c45.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-Bold-68b2bc2e.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-Bold-bc7f5e39.ttf') format('ttf')}@font-face{font-family:"Noto Sans";font-style:italic;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-BoldItalic-61b665f1.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-BoldItalic-eff19cbf.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-BoldItalic-695e28bf.ttf') format('ttf')}@font-face{font-family:"Noto Sans";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-Regular-31a7a3e7.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-Regular-aa4384e7.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-Regular-f04a504e.ttf') format('ttf')}@font-face{font-family:"Noto Sans";font-style:italic;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-Italic-136bdc6a.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-Italic-7cd36c44.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-Italic-716d03e4.ttf') format('ttf')}@font-face{font-family:"Noto Sans Arabic";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-ExtraBold-da8cf050.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-ExtraBold-4ac084a2.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-ExtraBold-a965fbb5.ttf') format('ttf')}@font-face{font-family:"Noto Sans Arabic";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Bold-237618dd.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Bold-9e0190d0.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Bold-d93e430c.ttf') format('ttf')}@font-face{font-family:"Noto Sans Arabic";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Regular-15a84e58.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Regular-a2985c7a.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Regular-471fde3d.ttf') format('ttf')}@font-face{font-family:"Noto Sans Hebrew";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansHebrew-ExtraBold-e04df8b4.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansHebrew-ExtraBold-3303fb69.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansHebrew-ExtraBold-4cfb24e3.ttf') format('ttf')}@font-face{font-family:"Noto Sans Hebrew";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansHebrew-Bold-ad38ec01.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansHebrew-Bold-6ecb028a.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansHebrew-Bold-752057d4.ttf') format('ttf')}@font-face{font-family:"Noto Sans Hebrew";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansHebrew-Regular-d42b5a85.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansHebrew-Regular-bdcbbd78.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansHebrew-Regular-41f881f3.ttf') format('ttf')}[lang=ja-JP],:lang(ja-JP){--bpk-base-font-stack: "Skyscanner Relative", "Noto Sans JP", "Noto Sans SC", "Noto Sans TC", "Noto Sans KR", "Noto Sans Arabic", "Noto Sans Hebrew", "Noto Sans", "Noto Sans Devanagari", "Noto Sans Thai", -apple-system, blinkmacsystemfont, roboto, oxygen, ubuntu, cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif}[lang=zh-TW],:lang(zh-TW){--bpk-base-font-stack: "Skyscanner Relative", "Noto Sans TC", "Noto Sans SC", "Noto Sans JP", "Noto Sans KR", "Noto Sans Arabic", "Noto Sans Hebrew", "Noto Sans", "Noto Sans Devanagari", "Noto Sans Thai", -apple-system, blinkmacsystemfont, roboto, oxygen, ubuntu, cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif}:where([lang]){font-family:var(--bpk-base-font-stack)}
18
+ @font-face{font-family:"Skyscanner Relative";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Book-f9356ad6.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Book-46f9f429.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Book-ab1dbcbe.ttf') format('ttf')}@font-face{font-family:"Skyscanner Relative";font-style:italic;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Italic-10532ac3.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Italic-db5d0ac5.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Italic-8eec3f3a.ttf') format('ttf')}@font-face{font-family:"Skyscanner Relative";font-style:normal;font-weight:500;src:url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Medium-c08dc28b.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Medium-865e167a.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Medium-d0ae478a.ttf') format('ttf')}@font-face{font-family:"Skyscanner Relative";font-style:italic;font-weight:500;src:url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-MediumItalic-81517f37.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-MediumItalic-bbdb6b0c.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-MediumItalic-226fe64c.ttf') format('ttf')}@font-face{font-family:"Skyscanner Relative";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Bold-8545937e.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Bold-a099c9f7.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Bold-ec4cc5a7.ttf') format('ttf')}@font-face{font-family:"Skyscanner Relative";font-style:italic;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BoldItalic-01b5d138.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BoldItalic-4d6d36e3.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BoldItalic-dc9284dc.ttf') format('ttf')}@font-face{font-family:"Skyscanner Relative";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Black-bb3c9434.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Black-bba2eb55.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-Black-314703cc.ttf') format('ttf')}@font-face{font-family:"Skyscanner Relative";font-style:italic;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BlackItalic-c2149c91.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BlackItalic-a34cd594.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/SkyscannerRelative-BlackItalic-7e516ee5.ttf') format('ttf')}@font-face{font-family:"Noto Sans JP";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansJP-ExtraBold-d4e678e6.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansJP-ExtraBold-071fa89b.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansJP-ExtraBold-71fc7f76.ttf') format('ttf')}@font-face{font-family:"Noto Sans JP";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansJP-Bold-b656150c.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansJP-Bold-6ddf472f.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansJP-Bold-deeb2988.ttf') format('ttf')}@font-face{font-family:"Noto Sans JP";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansJP-Regular-6ab10d56.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansJP-Regular-70c49e9e.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansJP-Regular-68d5dc69.ttf') format('ttf')}@font-face{font-family:"Noto Sans KR";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansKR-ExtraBold-1dfe3b92.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansKR-ExtraBold-6c571306.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansKR-ExtraBold-f350038a.ttf') format('ttf')}@font-face{font-family:"Noto Sans KR";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansKR-Bold-5286cc6d.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansKR-Bold-74c4cbc7.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansKR-Bold-5651f33d.ttf') format('ttf')}@font-face{font-family:"Noto Sans KR";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansKR-Regular-b6a2ff73.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansKR-Regular-96147637.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansKR-Regular-a2cd60b3.ttf') format('ttf')}@font-face{font-family:"Noto Sans SC";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansSC-Bold-22c3e4e0.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansSC-Bold-87ef5110.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansSC-Bold-57f04989.ttf') format('ttf')}@font-face{font-family:"Noto Sans SC";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansSC-Bold-22c3e4e0.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansSC-Bold-87ef5110.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansSC-Bold-57f04989.ttf') format('ttf')}@font-face{font-family:"Noto Sans SC";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansSC-Regular-97e50cfd.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansSC-Regular-cba63765.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansSC-Regular-f793115b.ttf') format('ttf')}@font-face{font-family:"Noto Sans TC";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansTC-Bold-355d38e9.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansTC-Bold-2abc3583.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansTC-Bold-86244830.ttf') format('ttf')}@font-face{font-family:"Noto Sans TC";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansTC-Bold-355d38e9.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansTC-Bold-2abc3583.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansTC-Bold-86244830.ttf') format('ttf')}@font-face{font-family:"Noto Sans TC";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansTC-Regular-5d6d6915.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansTC-Regular-c4185417.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansTC-Regular-d4301ce6.ttf') format('ttf')}@font-face{font-family:"Noto Sans Thai";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansThai-Bold-74e247cc.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansThai-Bold-91433b5b.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansThai-Bold-778d694c.ttf') format('ttf')}@font-face{font-family:"Noto Sans Thai";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansThai-Bold-74e247cc.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansThai-Bold-91433b5b.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansThai-Bold-778d694c.ttf') format('ttf')}@font-face{font-family:"Noto Sans Thai";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansThai-Regular-49d26bc7.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansThai-Regular-bc78fb35.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansThai-Regular-84e59eed.ttf') format('ttf')}@font-face{font-family:"Noto Sans Devanagari";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansDevanagari-ExtraBold-ff675d8c.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansDevanagari-ExtraBold-2b68fdf3.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansDevanagari-ExtraBold-ad7aee12.ttf') format('ttf')}@font-face{font-family:"Noto Sans Devanagari";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansDevanagari-Bold-19924491.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansDevanagari-Bold-2598dc51.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansDevanagari-Bold-bca34adc.ttf') format('ttf')}@font-face{font-family:"Noto Sans Devanagari";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansDevanagari-Regular-2ddbe014.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansDevanagari-Regular-b7e8aefe.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansDevanagari-Regular-e0474da6.ttf') format('ttf')}@font-face{font-family:"Noto Sans";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-ExtraBold-d8d5cc89.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-ExtraBold-177dbfc0.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-ExtraBold-cac84afc.ttf') format('ttf')}@font-face{font-family:"Noto Sans";font-style:italic;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-ExtraBoldItalic-cf3e028d.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-ExtraBoldItalic-be131c58.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-ExtraBoldItalic-c435f928.ttf') format('ttf')}@font-face{font-family:"Noto Sans";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-Bold-0b4b7c45.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-Bold-68b2bc2e.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-Bold-bc7f5e39.ttf') format('ttf')}@font-face{font-family:"Noto Sans";font-style:italic;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-BoldItalic-61b665f1.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-BoldItalic-eff19cbf.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-BoldItalic-695e28bf.ttf') format('ttf')}@font-face{font-family:"Noto Sans";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-Regular-31a7a3e7.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-Regular-aa4384e7.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-Regular-f04a504e.ttf') format('ttf')}@font-face{font-family:"Noto Sans";font-style:italic;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-Italic-136bdc6a.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-Italic-7cd36c44.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSans-Italic-716d03e4.ttf') format('ttf')}@font-face{font-family:"Noto Sans Arabic";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-ExtraBold-da8cf050.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-ExtraBold-4ac084a2.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-ExtraBold-a965fbb5.ttf') format('ttf')}@font-face{font-family:"Noto Sans Arabic";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Bold-237618dd.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Bold-9e0190d0.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Bold-d93e430c.ttf') format('ttf')}@font-face{font-family:"Noto Sans Arabic";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Regular-15a84e58.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Regular-a2985c7a.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Regular-471fde3d.ttf') format('ttf')}@font-face{font-family:"Noto Sans Hebrew";font-style:normal;font-weight:900;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansHebrew-ExtraBold-e04df8b4.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansHebrew-ExtraBold-3303fb69.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansHebrew-ExtraBold-4cfb24e3.ttf') format('ttf')}@font-face{font-family:"Noto Sans Hebrew";font-style:normal;font-weight:700;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansHebrew-Bold-ad38ec01.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansHebrew-Bold-6ecb028a.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansHebrew-Bold-752057d4.ttf') format('ttf')}@font-face{font-family:"Noto Sans Hebrew";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansHebrew-Regular-d42b5a85.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansHebrew-Regular-bdcbbd78.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansHebrew-Regular-41f881f3.ttf') format('ttf')}[lang=ja-JP],:lang(ja-JP){--bpk-base-font-stack: "Skyscanner Relative", "Noto Sans JP", "Noto Sans SC", "Noto Sans TC", "Noto Sans KR", "Noto Sans Arabic", "Noto Sans Hebrew", "Noto Sans", "Noto Sans Devanagari", "Noto Sans Thai", -apple-system, blinkmacsystemfont, roboto, oxygen, ubuntu, cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif}[lang=zh-TW],:lang(zh-TW),[lang=zh-HK],:lang(zh-HK){--bpk-base-font-stack: "Skyscanner Relative", "Noto Sans TC", "Noto Sans SC", "Noto Sans JP", "Noto Sans KR", "Noto Sans Arabic", "Noto Sans Hebrew", "Noto Sans", "Noto Sans Devanagari", "Noto Sans Thai", -apple-system, blinkmacsystemfont, roboto, oxygen, ubuntu, cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif}[lang=zh-CN],:lang(zh-CN){--bpk-base-font-stack: "Skyscanner Relative", "Noto Sans SC", "Noto Sans TC", "Noto Sans JP", "Noto Sans KR", "Noto Sans Arabic", "Noto Sans Hebrew", "Noto Sans", "Noto Sans Devanagari", "Noto Sans Thai", -apple-system, blinkmacsystemfont, roboto, oxygen, ubuntu, cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif}[lang=ko-KR],:lang(ko-KR){--bpk-base-font-stack: "Skyscanner Relative", "Noto Sans KR", "Noto Sans JP", "Noto Sans SC", "Noto Sans TC", "Noto Sans Arabic", "Noto Sans Hebrew", "Noto Sans", "Noto Sans Devanagari", "Noto Sans Thai", -apple-system, blinkmacsystemfont, roboto, oxygen, ubuntu, cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif}[lang=th-TH],:lang(th-TH){--bpk-base-font-stack: "Skyscanner Relative", "Noto Sans Thai", "Noto Sans Arabic", "Noto Sans Hebrew", "Noto Sans", "Noto Sans Devanagari", -apple-system, blinkmacsystemfont, roboto, oxygen, ubuntu, cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif}[lang=hi-IN],:lang(hi-IN){--bpk-base-font-stack: "Skyscanner Relative", "Noto Sans Devanagari", "Noto Sans Arabic", "Noto Sans Hebrew", "Noto Sans", "Noto Sans Thai", -apple-system, blinkmacsystemfont, roboto, oxygen, ubuntu, cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif}[lang=ar],:lang(ar){--bpk-base-font-stack: "Skyscanner Relative", "Noto Sans Arabic", "Noto Sans Hebrew", "Noto Sans", "Noto Sans Devanagari", "Noto Sans Thai", -apple-system, blinkmacsystemfont, roboto, oxygen, ubuntu, cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif}[lang=he],:lang(he){--bpk-base-font-stack: "Skyscanner Relative", "Noto Sans Hebrew", "Noto Sans Arabic", "Noto Sans", "Noto Sans Devanagari", "Noto Sans Thai", -apple-system, blinkmacsystemfont, roboto, oxygen, ubuntu, cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif}[lang=el-GR],:lang(el-GR),[lang=ru-RU],:lang(ru-RU),[lang=uk-UA],:lang(uk-UA),[lang=bg-BG],:lang(bg-BG),[lang=vi-VN],:lang(vi-VN){--bpk-base-font-stack: "Skyscanner Relative", "Noto Sans", "Noto Sans Arabic", "Noto Sans Hebrew", "Noto Sans Devanagari", "Noto Sans Thai", -apple-system, blinkmacsystemfont, roboto, oxygen, ubuntu, cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif}:where([lang]){font-family:var(--bpk-base-font-stack)}
@@ -426,6 +426,10 @@ $bpk-fonts: (
426
426
  }
427
427
  }
428
428
 
429
+ // Language-specific font stacks applied to any element whose `lang` matches
430
+ // the given locale. Each stack prefers the locale's primary Noto Sans face,
431
+ // then related CJK and other non-Latin Noto families as fallbacks, then system fonts.
432
+
429
433
  [lang='ja-JP'],
430
434
  :lang(ja-JP) {
431
435
  --bpk-base-font-stack:
@@ -437,7 +441,9 @@ $bpk-fonts: (
437
441
  }
438
442
 
439
443
  [lang='zh-TW'],
440
- :lang(zh-TW) {
444
+ :lang(zh-TW),
445
+ [lang='zh-HK'],
446
+ :lang(zh-HK) {
441
447
  --bpk-base-font-stack:
442
448
  'Skyscanner Relative', 'Noto Sans TC', 'Noto Sans SC', 'Noto Sans JP',
443
449
  'Noto Sans KR', 'Noto Sans Arabic', 'Noto Sans Hebrew', 'Noto Sans',
@@ -446,6 +452,79 @@ $bpk-fonts: (
446
452
  'Helvetica Neue', sans-serif;
447
453
  }
448
454
 
455
+ [lang='zh-CN'],
456
+ :lang(zh-CN) {
457
+ --bpk-base-font-stack:
458
+ 'Skyscanner Relative', 'Noto Sans SC', 'Noto Sans TC', 'Noto Sans JP',
459
+ 'Noto Sans KR', 'Noto Sans Arabic', 'Noto Sans Hebrew', 'Noto Sans',
460
+ 'Noto Sans Devanagari', 'Noto Sans Thai', -apple-system, blinkmacsystemfont,
461
+ roboto, oxygen, ubuntu, cantarell, 'Fira Sans', 'Droid Sans',
462
+ 'Helvetica Neue', sans-serif;
463
+ }
464
+
465
+ [lang='ko-KR'],
466
+ :lang(ko-KR) {
467
+ --bpk-base-font-stack:
468
+ 'Skyscanner Relative', 'Noto Sans KR', 'Noto Sans JP', 'Noto Sans SC',
469
+ 'Noto Sans TC', 'Noto Sans Arabic', 'Noto Sans Hebrew', 'Noto Sans',
470
+ 'Noto Sans Devanagari', 'Noto Sans Thai', -apple-system, blinkmacsystemfont,
471
+ roboto, oxygen, ubuntu, cantarell, 'Fira Sans', 'Droid Sans',
472
+ 'Helvetica Neue', sans-serif;
473
+ }
474
+
475
+ [lang='th-TH'],
476
+ :lang(th-TH) {
477
+ --bpk-base-font-stack:
478
+ 'Skyscanner Relative', 'Noto Sans Thai', 'Noto Sans Arabic',
479
+ 'Noto Sans Hebrew', 'Noto Sans', 'Noto Sans Devanagari', -apple-system,
480
+ blinkmacsystemfont, roboto, oxygen, ubuntu, cantarell, 'Fira Sans',
481
+ 'Droid Sans', 'Helvetica Neue', sans-serif;
482
+ }
483
+
484
+ [lang='hi-IN'],
485
+ :lang(hi-IN) {
486
+ --bpk-base-font-stack:
487
+ 'Skyscanner Relative', 'Noto Sans Devanagari', 'Noto Sans Arabic',
488
+ 'Noto Sans Hebrew', 'Noto Sans', 'Noto Sans Thai', -apple-system,
489
+ blinkmacsystemfont, roboto, oxygen, ubuntu, cantarell, 'Fira Sans',
490
+ 'Droid Sans', 'Helvetica Neue', sans-serif;
491
+ }
492
+
493
+ [lang='ar'],
494
+ :lang(ar) {
495
+ --bpk-base-font-stack:
496
+ 'Skyscanner Relative', 'Noto Sans Arabic', 'Noto Sans Hebrew', 'Noto Sans',
497
+ 'Noto Sans Devanagari', 'Noto Sans Thai', -apple-system, blinkmacsystemfont,
498
+ roboto, oxygen, ubuntu, cantarell, 'Fira Sans', 'Droid Sans',
499
+ 'Helvetica Neue', sans-serif;
500
+ }
501
+
502
+ [lang='he'],
503
+ :lang(he) {
504
+ --bpk-base-font-stack:
505
+ 'Skyscanner Relative', 'Noto Sans Hebrew', 'Noto Sans Arabic', 'Noto Sans',
506
+ 'Noto Sans Devanagari', 'Noto Sans Thai', -apple-system, blinkmacsystemfont,
507
+ roboto, oxygen, ubuntu, cantarell, 'Fira Sans', 'Droid Sans',
508
+ 'Helvetica Neue', sans-serif;
509
+ }
510
+
511
+ [lang='el-GR'],
512
+ :lang(el-GR),
513
+ [lang='ru-RU'],
514
+ :lang(ru-RU),
515
+ [lang='uk-UA'],
516
+ :lang(uk-UA),
517
+ [lang='bg-BG'],
518
+ :lang(bg-BG),
519
+ [lang='vi-VN'],
520
+ :lang(vi-VN) {
521
+ --bpk-base-font-stack:
522
+ 'Skyscanner Relative', 'Noto Sans', 'Noto Sans Arabic', 'Noto Sans Hebrew',
523
+ 'Noto Sans Devanagari', 'Noto Sans Thai', -apple-system, blinkmacsystemfont,
524
+ roboto, oxygen, ubuntu, cantarell, 'Fira Sans', 'Droid Sans',
525
+ 'Helvetica Neue', sans-serif;
526
+ }
527
+
449
528
  // Using :where([lang]) ensures that we trigger a re-evaluation of the font-stack
450
529
  // variable for any element with a lang attribute, but with ZERO specificity.
451
530
  // This means any component with its own class (like BpkBubble or Editorial text)
@@ -15,4 +15,4 @@
15
15
  * See the License for the specific language governing permissions and
16
16
  * limitations under the License.
17
17
  */
18
- @font-face{font-family:larken;font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/Larken-Light-8371ea16.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/Larken-Light-39e53c9a.woff') format('woff')}@font-face{font-family:larken;font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/Larken-Regular-3d9dfe29.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/Larken-Regular-626ee28c.woff') format('woff')}@font-face{font-family:"Noto Sans Arabic";font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Light-e77dc47a.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Light-ea83f673.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Light-b2ff05f9.ttf') format('ttf')}@font-face{font-family:"Noto Sans Arabic";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Regular-15a84e58.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Regular-a2985c7a.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Regular-471fde3d.ttf') format('ttf')}@font-face{font-family:"Noto Serif Hebrew";font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifHebrew-Light-24198867.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifHebrew-Light-7d94eb62.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifHebrew-Light-320a7a43.ttf') format('ttf')}@font-face{font-family:"Noto Serif Hebrew";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifHebrew-Regular-a9e2c102.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifHebrew-Regular-41b2944d.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifHebrew-Regular-e8471015.ttf') format('ttf')}@font-face{font-family:"Noto Serif";font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-Light-46d7aaea.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-Light-412a21b9.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-Light-9dbdd5d2.ttf') format('ttf')}@font-face{font-family:"Noto Serif";font-style:italic;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-LightItalic-3df46bf3.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-LightItalic-b235c828.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-LightItalic-1a288873.ttf') format('ttf')}@font-face{font-family:"Noto Serif";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-Regular-f9cc92ed.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-Regular-ea07f3b6.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-Regular-c8fe04e5.ttf') format('ttf')}@font-face{font-family:"Noto Serif";font-style:italic;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-Italic-132f7557.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-Italic-ceeb7a6f.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-Italic-25dbfc26.ttf') format('ttf')}@font-face{font-family:"Noto Serif Devanagari";font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifDevanagari-Light-6f8c3ec2.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifDevanagari-Light-9e5b16f1.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifDevanagari-Light-d396b2f0.ttf') format('ttf')}@font-face{font-family:"Noto Serif Devanagari";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifDevanagari-Regular-05c8f8c5.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifDevanagari-Regular-7b432355.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifDevanagari-Regular-49b7fded.ttf') format('ttf')}@font-face{font-family:"Noto Serif Thai";font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifThai-Light-c19b05eb.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifThai-Light-c8dd8e9a.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifThai-Light-7503fb65.ttf') format('ttf')}@font-face{font-family:"Noto Serif Thai";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifThai-Regular-807f25ca.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifThai-Regular-4930d4b0.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifThai-Regular-619e0cdd.ttf') format('ttf')}@font-face{font-family:"Noto Serif SC";font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifSC-Light-340f3714.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifSC-Light-0cad7edb.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifSC-Light-4a0300b1.ttf') format('ttf')}@font-face{font-family:"Noto Serif SC";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifSC-Regular-81b3cace.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifSC-Regular-861a6d77.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifSC-Regular-e6f67c70.ttf') format('ttf')}@font-face{font-family:"Noto Serif TC";font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifTC-Light-d06d870d.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifTC-Light-e7d41ebf.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifTC-Light-a575e20b.ttf') format('ttf')}@font-face{font-family:"Noto Serif TC";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifTC-Regular-ba80e9e3.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifTC-Regular-24d6fd67.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifTC-Regular-81f7cfa9.ttf') format('ttf')}@font-face{font-family:"Noto Serif JP";font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifJP-Light-300342ba.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifJP-Light-908de8db.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifJP-Light-4fdde149.ttf') format('ttf')}@font-face{font-family:"Noto Serif JP";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifJP-Regular-04cd06e8.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifJP-Regular-5ec4849d.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifJP-Regular-5926d365.ttf') format('ttf')}@font-face{font-family:"Noto Serif KR";font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifKR-Light-cafbe1fe.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifKR-Light-60488ca3.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifKR-Light-4149d2b6.ttf') format('ttf')}@font-face{font-family:"Noto Serif KR";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifKR-Regular-f6377da5.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifKR-Regular-a5cc7c23.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifKR-Regular-2fa19520.ttf') format('ttf')}[lang=ja-JP],:lang(ja-JP){--bpk-larken-font-stack: larken, "Noto Serif JP", "Noto Serif SC", "Noto Serif TC", "Noto Serif KR", "Noto Sans Arabic", "Noto Serif Hebrew", "Noto Serif", "Noto Serif Devanagari", "Noto Serif Thai", sans-serif}[lang=zh-TW],:lang(zh-TW){--bpk-larken-font-stack: larken, "Noto Serif TC", "Noto Serif SC", "Noto Serif JP", "Noto Serif KR", "Noto Sans Arabic", "Noto Serif Hebrew", "Noto Serif", "Noto Serif Devanagari", "Noto Serif Thai", sans-serif}
18
+ @font-face{font-family:larken;font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/Larken-Light-8371ea16.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/Larken-Light-39e53c9a.woff') format('woff')}@font-face{font-family:larken;font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/Larken-Regular-3d9dfe29.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/Larken-Regular-626ee28c.woff') format('woff')}@font-face{font-family:"Noto Sans Arabic";font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Light-e77dc47a.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Light-ea83f673.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Light-b2ff05f9.ttf') format('ttf')}@font-face{font-family:"Noto Sans Arabic";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Regular-15a84e58.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Regular-a2985c7a.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSansArabic-Regular-471fde3d.ttf') format('ttf')}@font-face{font-family:"Noto Serif Hebrew";font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifHebrew-Light-24198867.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifHebrew-Light-7d94eb62.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifHebrew-Light-320a7a43.ttf') format('ttf')}@font-face{font-family:"Noto Serif Hebrew";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifHebrew-Regular-a9e2c102.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifHebrew-Regular-41b2944d.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifHebrew-Regular-e8471015.ttf') format('ttf')}@font-face{font-family:"Noto Serif";font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-Light-46d7aaea.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-Light-412a21b9.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-Light-9dbdd5d2.ttf') format('ttf')}@font-face{font-family:"Noto Serif";font-style:italic;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-LightItalic-3df46bf3.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-LightItalic-b235c828.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-LightItalic-1a288873.ttf') format('ttf')}@font-face{font-family:"Noto Serif";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-Regular-f9cc92ed.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-Regular-ea07f3b6.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-Regular-c8fe04e5.ttf') format('ttf')}@font-face{font-family:"Noto Serif";font-style:italic;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-Italic-132f7557.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-Italic-ceeb7a6f.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerif-Italic-25dbfc26.ttf') format('ttf')}@font-face{font-family:"Noto Serif Devanagari";font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifDevanagari-Light-6f8c3ec2.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifDevanagari-Light-9e5b16f1.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifDevanagari-Light-d396b2f0.ttf') format('ttf')}@font-face{font-family:"Noto Serif Devanagari";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifDevanagari-Regular-05c8f8c5.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifDevanagari-Regular-7b432355.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifDevanagari-Regular-49b7fded.ttf') format('ttf')}@font-face{font-family:"Noto Serif Thai";font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifThai-Light-c19b05eb.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifThai-Light-c8dd8e9a.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifThai-Light-7503fb65.ttf') format('ttf')}@font-face{font-family:"Noto Serif Thai";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifThai-Regular-807f25ca.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifThai-Regular-4930d4b0.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifThai-Regular-619e0cdd.ttf') format('ttf')}@font-face{font-family:"Noto Serif SC";font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifSC-Light-340f3714.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifSC-Light-0cad7edb.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifSC-Light-4a0300b1.ttf') format('ttf')}@font-face{font-family:"Noto Serif SC";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifSC-Regular-81b3cace.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifSC-Regular-861a6d77.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifSC-Regular-e6f67c70.ttf') format('ttf')}@font-face{font-family:"Noto Serif TC";font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifTC-Light-d06d870d.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifTC-Light-e7d41ebf.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifTC-Light-a575e20b.ttf') format('ttf')}@font-face{font-family:"Noto Serif TC";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifTC-Regular-ba80e9e3.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifTC-Regular-24d6fd67.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifTC-Regular-81f7cfa9.ttf') format('ttf')}@font-face{font-family:"Noto Serif JP";font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifJP-Light-300342ba.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifJP-Light-908de8db.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifJP-Light-4fdde149.ttf') format('ttf')}@font-face{font-family:"Noto Serif JP";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifJP-Regular-04cd06e8.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifJP-Regular-5ec4849d.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifJP-Regular-5926d365.ttf') format('ttf')}@font-face{font-family:"Noto Serif KR";font-style:normal;font-weight:300;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifKR-Light-cafbe1fe.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifKR-Light-60488ca3.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifKR-Light-4149d2b6.ttf') format('ttf')}@font-face{font-family:"Noto Serif KR";font-style:normal;font-weight:400;src:url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifKR-Regular-f6377da5.woff2') format('woff2'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifKR-Regular-a5cc7c23.woff') format('woff'), url('https://js.skyscnr.com/sttc/bpk-fonts/NotoSerifKR-Regular-2fa19520.ttf') format('ttf')}[lang=ja-JP],:lang(ja-JP){--bpk-larken-font-stack: larken, "Noto Serif JP", "Noto Serif SC", "Noto Serif TC", "Noto Serif KR", "Noto Sans Arabic", "Noto Serif Hebrew", "Noto Serif", "Noto Serif Devanagari", "Noto Serif Thai", sans-serif}[lang=zh-TW],:lang(zh-TW),[lang=zh-HK],:lang(zh-HK){--bpk-larken-font-stack: larken, "Noto Serif TC", "Noto Serif SC", "Noto Serif JP", "Noto Serif KR", "Noto Sans Arabic", "Noto Serif Hebrew", "Noto Serif", "Noto Serif Devanagari", "Noto Serif Thai", sans-serif}[lang=zh-CN],:lang(zh-CN){--bpk-larken-font-stack: larken, "Noto Serif SC", "Noto Serif TC", "Noto Serif JP", "Noto Serif KR", "Noto Sans Arabic", "Noto Serif Hebrew", "Noto Serif", "Noto Serif Devanagari", "Noto Serif Thai", sans-serif}[lang=ko-KR],:lang(ko-KR){--bpk-larken-font-stack: larken, "Noto Serif KR", "Noto Serif JP", "Noto Serif SC", "Noto Serif TC", "Noto Sans Arabic", "Noto Serif Hebrew", "Noto Serif", "Noto Serif Devanagari", "Noto Serif Thai", sans-serif}[lang=th-TH],:lang(th-TH){--bpk-larken-font-stack: larken, "Noto Serif Thai", "Noto Sans Arabic", "Noto Serif Hebrew", "Noto Serif", "Noto Serif Devanagari", sans-serif}[lang=hi-IN],:lang(hi-IN){--bpk-larken-font-stack: larken, "Noto Serif Devanagari", "Noto Sans Arabic", "Noto Serif Hebrew", "Noto Serif", "Noto Serif Thai", sans-serif}[lang=ar],:lang(ar){--bpk-larken-font-stack: larken, "Noto Sans Arabic", "Noto Serif Hebrew", "Noto Serif", "Noto Serif Devanagari", "Noto Serif Thai", sans-serif}[lang=he],:lang(he){--bpk-larken-font-stack: larken, "Noto Serif Hebrew", "Noto Sans Arabic", "Noto Serif", "Noto Serif Devanagari", "Noto Serif Thai", sans-serif}[lang=el-GR],:lang(el-GR),[lang=ru-RU],:lang(ru-RU),[lang=uk-UA],:lang(uk-UA),[lang=bg-BG],:lang(bg-BG),[lang=vi-VN],:lang(vi-VN){--bpk-larken-font-stack: larken, "Noto Serif", "Noto Sans Arabic", "Noto Serif Hebrew", "Noto Serif Devanagari", "Noto Serif Thai", sans-serif}