cloudcommerce 0.8.4 → 0.8.6
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.
- package/CHANGELOG.md +23 -0
- package/ecomplus-stores/monocard/functions/core/package.json +1 -1
- package/ecomplus-stores/monocard/functions/events/package.json +2 -2
- package/ecomplus-stores/monocard/functions/modules/package.json +2 -2
- package/ecomplus-stores/monocard/functions/passport/package.json +2 -2
- package/ecomplus-stores/monocard/functions/ssr/package.json +7 -8
- package/ecomplus-stores/monocard/functions/ssr/scripts/build.sh +14 -0
- package/ecomplus-stores/monocard/functions/ssr/src/components/CasesGrid.astro +1 -1
- package/ecomplus-stores/monocard/functions/ssr/src/components/FeatureTabs.astro +2 -4
- package/ecomplus-stores/monocard/package.json +1 -1
- package/package.json +9 -9
- package/packages/api/package.json +2 -2
- package/packages/apps/correios/lib-mjs/calculate-correios.mjs +3 -3
- package/packages/apps/correios/package.json +2 -2
- package/packages/apps/custom-payment/package.json +2 -2
- package/packages/apps/custom-shipping/package.json +2 -2
- package/packages/apps/datafrete/package.json +2 -2
- package/packages/apps/discounts/package.json +2 -2
- package/packages/apps/emails/package.json +3 -3
- package/packages/apps/fb-conversions/package.json +2 -2
- package/packages/apps/frenet/package.json +2 -2
- package/packages/apps/galaxpay/package.json +2 -2
- package/packages/apps/galaxpay/scripts/build.sh +1 -2
- package/packages/apps/google-analytics/package.json +2 -2
- package/packages/apps/infinitepay/package.json +2 -2
- package/packages/apps/infinitepay/scripts/build.sh +1 -2
- package/packages/apps/jadlog/package.json +2 -2
- package/packages/apps/loyalty-points/package.json +2 -2
- package/packages/apps/melhor-envio/package.json +2 -2
- package/packages/apps/mercadopago/package.json +2 -2
- package/packages/apps/mercadopago/scripts/build.sh +1 -2
- package/packages/apps/pagarme/package.json +2 -2
- package/packages/apps/pagarme/scripts/build.sh +1 -2
- package/packages/apps/paghiper/package.json +2 -2
- package/packages/apps/pix/package.json +2 -2
- package/packages/apps/tiny-erp/package.json +2 -2
- package/packages/apps/webhooks/package.json +2 -2
- package/packages/cli/package.json +3 -3
- package/packages/config/package.json +2 -2
- package/packages/emails/package.json +2 -2
- package/packages/events/package.json +2 -2
- package/packages/firebase/package.json +2 -2
- package/packages/i18n/package.json +2 -2
- package/packages/modules/package.json +3 -3
- package/packages/passport/package.json +2 -2
- package/packages/ssr/package.json +2 -2
- package/packages/storefront/astro.config.mjs +1 -1
- package/packages/storefront/dist/client/_astro/{PitchBar.db7cd775.js → PitchBar.5d55c359.js} +1 -1
- package/packages/storefront/dist/client/_astro/{ShopHeader.e93c8274.js → ShopHeader.6bbe1a17.js} +1 -1
- package/packages/storefront/dist/client/_astro/_...slug_.45f0edaf.css +1 -0
- package/packages/storefront/dist/client/_astro/{firebase-app.72e91a3e.js → firebase-app.d090c84e.js} +5 -5
- package/packages/storefront/dist/client/_astro/{hoisted.721ad75d.js → hoisted.541b5c05.js} +1 -1
- package/packages/storefront/dist/client/_astro/index.ff4f0b30.js +1 -0
- package/packages/storefront/dist/client/_astro/{workbox-window.prod.es5.295a6886.js → workbox-window.prod.es5.dc90f814.js} +1 -1
- package/packages/storefront/dist/client/sw.js +1 -1
- package/packages/storefront/dist/server/chunks/pages/{all.090434f8.mjs → all.94de1b69.mjs} +114 -38
- package/packages/storefront/dist/server/entry.mjs +2 -2
- package/packages/storefront/package.json +8 -8
- package/packages/storefront/scripts/build-prod.sh +18 -6
- package/packages/storefront/src/images/Picture.runtime.astro +52 -0
- package/packages/storefront/src/{serverless/get-image.ts → images/get-built-image.ts} +3 -3
- package/packages/storefront/src/{serverless/get-picture.ts → images/get-built-picture.ts} +3 -3
- package/packages/storefront/src/images/use-ssr-picture.ts +138 -0
- package/packages/storefront/src/lib/assets/base.css +0 -5
- package/packages/storefront/src/lib/components/Picture.astro +28 -77
- package/packages/storefront/src/lib/layouts/BaseHead.astro +1 -1
- package/packages/types/package.json +1 -1
- package/packages/storefront/dist/client/_astro/_...slug_.0607a6ef.css +0 -1
- package/packages/storefront/dist/client/_astro/index.16f33784.js +0 -1
- package/packages/storefront/src/serverless/Picture.runtime.astro +0 -102
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import type { PictureComponentRemoteImageProps } from '@astrojs/image/components/';
|
|
2
|
+
import type {
|
|
3
|
+
GetPictureParams,
|
|
4
|
+
GetPictureResult,
|
|
5
|
+
} from '@astrojs/image/dist/lib/get-picture';
|
|
6
|
+
|
|
7
|
+
export type PictureProps = Omit<PictureComponentRemoteImageProps, 'aspectRatio' | 'sizes'> & {
|
|
8
|
+
sizes?: string;
|
|
9
|
+
aspectRatio?: PictureComponentRemoteImageProps['aspectRatio'];
|
|
10
|
+
fetchpriority?: 'high' | 'low' | 'auto';
|
|
11
|
+
hasImg?: boolean;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export type ImageSize = { width?: number, height?: number };
|
|
15
|
+
|
|
16
|
+
export type TryImageSize = (src: string) => ImageSize;
|
|
17
|
+
|
|
18
|
+
const getAspectRatio = (src: string | ImageSize, tryImageSize: TryImageSize) => {
|
|
19
|
+
if (typeof src === 'string') {
|
|
20
|
+
src = tryImageSize(src);
|
|
21
|
+
} else if (src.width) {
|
|
22
|
+
return src.height ? src.width / src.height : 1;
|
|
23
|
+
}
|
|
24
|
+
return 0;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export type UsePictureParams = PictureProps & {
|
|
28
|
+
tryImageSize: TryImageSize;
|
|
29
|
+
getPicture: (params: GetPictureParams) => Promise<GetPictureResult>;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const useSSRPicture = async (params: UsePictureParams) => {
|
|
33
|
+
const {
|
|
34
|
+
src,
|
|
35
|
+
alt,
|
|
36
|
+
sizes: propSizes,
|
|
37
|
+
widths,
|
|
38
|
+
aspectRatio: propAspectRatio,
|
|
39
|
+
fit,
|
|
40
|
+
background,
|
|
41
|
+
position,
|
|
42
|
+
formats = ['avif', 'webp'],
|
|
43
|
+
loading = 'lazy',
|
|
44
|
+
decoding = 'async',
|
|
45
|
+
hasImg = true,
|
|
46
|
+
tryImageSize,
|
|
47
|
+
getPicture,
|
|
48
|
+
...attrs
|
|
49
|
+
} = params;
|
|
50
|
+
|
|
51
|
+
let aspectRatio: number;
|
|
52
|
+
if (propAspectRatio) {
|
|
53
|
+
if (typeof propAspectRatio === 'number') {
|
|
54
|
+
aspectRatio = propAspectRatio;
|
|
55
|
+
} else {
|
|
56
|
+
const [width, height] = propAspectRatio.split(':');
|
|
57
|
+
aspectRatio = Number(width) / Number(height);
|
|
58
|
+
}
|
|
59
|
+
} else if ((!attrs.width || !attrs.height) && typeof src === 'string') {
|
|
60
|
+
const { width, height } = tryImageSize(src);
|
|
61
|
+
if (height) {
|
|
62
|
+
aspectRatio = getAspectRatio({ width, height }, tryImageSize);
|
|
63
|
+
attrs.width = width;
|
|
64
|
+
attrs.height = height;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
let sizes: string = propSizes || '';
|
|
68
|
+
if (!sizes && attrs.class) {
|
|
69
|
+
const classNames = attrs.class.split(' ');
|
|
70
|
+
const classRegex = /^(\w+:)?max-w-\[(\w+)\]$/;
|
|
71
|
+
let nextSize: string;
|
|
72
|
+
[
|
|
73
|
+
[''],
|
|
74
|
+
['sm', 640],
|
|
75
|
+
['md', 768],
|
|
76
|
+
['lg', 1024],
|
|
77
|
+
['xl', 1280],
|
|
78
|
+
['2xl', 1536],
|
|
79
|
+
].forEach(([breakpoint, minWidth]: [string, number | undefined]) => {
|
|
80
|
+
const className = classNames.find((_class) => {
|
|
81
|
+
return _class.startsWith(breakpoint ? `${breakpoint}:max-w-[` : 'max-w-[');
|
|
82
|
+
});
|
|
83
|
+
if (className) {
|
|
84
|
+
if (nextSize) {
|
|
85
|
+
// max-w-50px sm:max-w-[... => (max-width: 639px) 50px...
|
|
86
|
+
if (sizes) sizes += ', ';
|
|
87
|
+
sizes += `(max-width: ${(minWidth - 1)}px) ${nextSize}`;
|
|
88
|
+
}
|
|
89
|
+
nextSize = className.replace(classRegex, '$2');
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
if (nextSize) {
|
|
93
|
+
if (sizes) sizes += ', ';
|
|
94
|
+
sizes += nextSize;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (!sizes && widths.length === 1) {
|
|
98
|
+
sizes = `${(widths[0] / 2)}px`;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
const { image, sources } = await getPicture({
|
|
102
|
+
src,
|
|
103
|
+
widths,
|
|
104
|
+
formats,
|
|
105
|
+
aspectRatio,
|
|
106
|
+
fit,
|
|
107
|
+
background,
|
|
108
|
+
position,
|
|
109
|
+
alt,
|
|
110
|
+
});
|
|
111
|
+
delete image.width;
|
|
112
|
+
delete image.height;
|
|
113
|
+
|
|
114
|
+
const pictureAttrs: Partial<typeof attrs & { alt: string }> = {};
|
|
115
|
+
if (!hasImg) {
|
|
116
|
+
pictureAttrs['data-alt'] = alt;
|
|
117
|
+
Object.assign(pictureAttrs, attrs);
|
|
118
|
+
delete pictureAttrs.width;
|
|
119
|
+
delete pictureAttrs.height;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return {
|
|
123
|
+
sizes,
|
|
124
|
+
aspectRatio,
|
|
125
|
+
sources,
|
|
126
|
+
pictureAttrs,
|
|
127
|
+
imgAttrs: !hasImg ? null : {
|
|
128
|
+
...image,
|
|
129
|
+
loading,
|
|
130
|
+
decoding,
|
|
131
|
+
...attrs,
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
export default useSSRPicture;
|
|
137
|
+
|
|
138
|
+
export { useSSRPicture };
|
|
@@ -101,11 +101,6 @@ d-md {
|
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
/* Preset width auto for responsive images (for Astro <Picture/>) */
|
|
105
|
-
:where(img[sizes], source[sizes] + img) {
|
|
106
|
-
width: auto;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
104
|
/* Fix Safari issue related to <summary> / <details> arrow */
|
|
110
105
|
details > summary.list-none::-webkit-details-marker,
|
|
111
106
|
details > summary.list-none::marker {
|
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
---
|
|
2
|
-
import
|
|
3
|
-
import { resolve as resolvePath } from 'path';
|
|
2
|
+
import { resolve as resolvePath } from 'node:path';
|
|
4
3
|
import imageSize from 'image-size';
|
|
5
4
|
import { getPicture } from '@astrojs/image';
|
|
5
|
+
import { type PictureProps, useSSRPicture } from '../../images/use-ssr-picture';
|
|
6
6
|
|
|
7
|
-
export type Props =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
7
|
+
export type Props = PictureProps;
|
|
8
|
+
|
|
9
|
+
const deployRand = import.meta.env.DEPLOY_RAND;
|
|
10
|
+
const versionSuffix = import.meta.env.BUILD_OUTPUT !== 'static' && deployRand
|
|
11
|
+
? `&V=${deployRand}`
|
|
12
|
+
: '';
|
|
12
13
|
|
|
14
|
+
const getImageFilepath = (src: string) => {
|
|
15
|
+
return resolvePath(import.meta.env.STOREFRONT_BASE_DIR, `public${src}`);
|
|
16
|
+
};
|
|
13
17
|
const tryImageSize = (src: string) => {
|
|
14
18
|
let dimensions: { width?: number, height?: number } = {};
|
|
15
19
|
if (typeof src === 'string' && src.startsWith('/')) {
|
|
16
|
-
const { STOREFRONT_BASE_DIR } = import.meta.env;
|
|
17
20
|
try {
|
|
18
|
-
dimensions = imageSize(
|
|
21
|
+
dimensions = imageSize(getImageFilepath(src));
|
|
19
22
|
} catch (e) {
|
|
20
23
|
dimensions = {};
|
|
21
24
|
}
|
|
@@ -23,79 +26,27 @@ const tryImageSize = (src: string) => {
|
|
|
23
26
|
return dimensions;
|
|
24
27
|
};
|
|
25
28
|
|
|
26
|
-
const getAspectRatio = (src: string | { width?: number, height?: number }) => {
|
|
27
|
-
if (typeof src === 'string') {
|
|
28
|
-
src = tryImageSize(src);
|
|
29
|
-
}
|
|
30
|
-
if (src.width) {
|
|
31
|
-
return src.height ? src.width / src.height : 1;
|
|
32
|
-
}
|
|
33
|
-
return 0;
|
|
34
|
-
};
|
|
35
|
-
|
|
36
29
|
const {
|
|
37
|
-
src,
|
|
38
|
-
alt,
|
|
39
30
|
sizes,
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
decoding = 'async',
|
|
48
|
-
hasImg = true,
|
|
49
|
-
...attrs
|
|
50
|
-
} = Astro.props;
|
|
51
|
-
|
|
52
|
-
let aspectRatio = propAspectRatio;
|
|
53
|
-
if ((!attrs.width || !attrs.height) && !aspectRatio && typeof src === 'string') {
|
|
54
|
-
const { width, height } = tryImageSize(src);
|
|
55
|
-
if (height) {
|
|
56
|
-
aspectRatio = getAspectRatio({ width, height });
|
|
57
|
-
attrs.width = width;
|
|
58
|
-
attrs.height = height;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const { image, sources } = await getPicture({
|
|
63
|
-
src,
|
|
64
|
-
widths,
|
|
65
|
-
formats,
|
|
66
|
-
aspectRatio,
|
|
67
|
-
fit,
|
|
68
|
-
background,
|
|
69
|
-
position,
|
|
70
|
-
alt,
|
|
31
|
+
sources,
|
|
32
|
+
pictureAttrs,
|
|
33
|
+
imgAttrs,
|
|
34
|
+
} = await useSSRPicture({
|
|
35
|
+
...Astro.props,
|
|
36
|
+
tryImageSize,
|
|
37
|
+
getPicture,
|
|
71
38
|
});
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
delete image.width;
|
|
75
|
-
delete image.height;
|
|
76
|
-
|
|
77
|
-
const pictureAttrs: Partial<typeof attrs & { alt: string }> = {};
|
|
78
|
-
if (!hasImg) {
|
|
79
|
-
pictureAttrs['data-alt'] = alt;
|
|
80
|
-
Object.assign(pictureAttrs, attrs);
|
|
81
|
-
delete pictureAttrs.width;
|
|
82
|
-
delete pictureAttrs.height;
|
|
39
|
+
if (imgAttrs) {
|
|
40
|
+
imgAttrs.src += versionSuffix;
|
|
83
41
|
}
|
|
84
42
|
---
|
|
85
43
|
|
|
86
44
|
<picture {...pictureAttrs}>
|
|
87
|
-
{sources.map((attrs) =>
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
{...image}
|
|
95
|
-
loading={loading}
|
|
96
|
-
decoding={decoding}
|
|
97
|
-
src={imgSrc}
|
|
98
|
-
{...attrs}
|
|
99
|
-
/>
|
|
100
|
-
}
|
|
45
|
+
{sources.map((attrs) => {
|
|
46
|
+
if (versionSuffix) {
|
|
47
|
+
attrs.srcset = attrs.srcset.replace(/\s(\w+)$/, `${versionSuffix} $1`);
|
|
48
|
+
}
|
|
49
|
+
return <source {...attrs} sizes={sizes} />
|
|
50
|
+
})}
|
|
51
|
+
{imgAttrs && <img {...imgAttrs} />}
|
|
101
52
|
</picture>
|
|
@@ -8,7 +8,7 @@ export interface Props {
|
|
|
8
8
|
title?: string;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
const deployRand =
|
|
11
|
+
const deployRand = import.meta.env.DEPLOY_RAND || '_';
|
|
12
12
|
const getIconUrl = (size: number) => {
|
|
13
13
|
return `/_image?f=png&w=${size}&h=${size}`
|
|
14
14
|
+ `&href=${encodeURIComponent(settings.icon)}&V=${deployRand}`;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:var(--font-family);font-feature-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--font-mono);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#94a3b8}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root{--font-size: 14.5px;--font-sans: var(--custom-font-sans, ui-sans-serif), system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono: var(--custom-font-mono, ui-monospace), SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--font-family: var(--font-sans);--transition-fast: 75ms linear;--transition: .15s ease-in-out;--transition-slow: .25s ease-in-out;--transition-slower: .45s ease-in-out;--c-on-dark: rgb(255, 255, 255);--c-on-light: rgb(0, 0, 0);--c-background: #fff;--c-on-background: #1e293b;--un-prose-body: #334155;--un-prose-headings: #0f172a;--un-prose-links: var(--c-primary);--un-prose-captions: #64748b;--un-prose-borders: #e2e8f0;--un-prose-hr: #cbd5e1;--un-prose-bg-soft: #f1f5f9;color-scheme:light;accent-color:var(--c-secondary)}@media (prefers-reduced-motion: reduce){:root{--transition-fast: 0s;--transition: 0s;--transition-slow: 0s;--transition-slower: .15s linear}}html{font-size:var(--font-size)}@media (min-width: 640px){html{font-size:calc(var(--font-size) * 1.0345)}}@media (min-width: 768px){html{font-size:calc(var(--font-size) * 1.0689)}}@media (min-width: 1024px){html{font-size:calc(var(--font-size) * 1.1034)}}@media (min-width: 1280px){html{font-size:calc(var(--font-size) * 1.1379)}}@media (min-width: 1536px){html{font-size:calc(var(--font-size) * 1.1724)}}:focus-visible{outline-color:var(--c-outline, rgba(var(--rgb-secondary), .1))}::selection{background-color:var(--c-selection-background, rgba(var(--rgb-secondary), .15))}::marker{color:var(--c-primary)}:is(::-webkit-calendar-picker-indicator,::-webkit-clear-button,::-webkit-inner-spin-button,::-webkit-outer-spin-button){color:var(--c-secondary)}body{background:var(--c-background);color:var(--c-on-background)}d-md{display:none}@media (min-width: 768px){d-md{display:inline}}:where(img[sizes],source[sizes] + img){width:auto}details>summary.list-none::-webkit-details-marker,details>summary.list-none::marker{display:none}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--c-background);border-color:#64748b;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--un-shadow: 0 0 #0000}[type=text]:focus,[type=email]:focus,[type=url]:focus,[type=password]:focus,[type=number]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=month]:focus,[type=search]:focus,[type=tel]:focus,[type=time]:focus,[type=week]:focus,[multiple]:focus,textarea:focus,select:focus{outline:2px solid transparent;outline-offset:2px;--un-ring-inset: var(--un-empty, );--un-ring-offset-width: 0px;--un-ring-offset-color: var(--c-background);--un-ring-color: var(--c-primary);--un-ring-offset-shadow: var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow: var(--un-ring-inset) 0 0 0 calc(1px + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow);border-color:var(--c-primary)}input::-moz-placeholder,textarea::-moz-placeholder{color:#64748b;opacity:1}input::placeholder,textarea::placeholder{color:#64748b;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}select{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;print-color-adjust:exact}[multiple]{background-image:initial;background-position:initial;background-repeat:unset;background-size:initial;padding-right:.75rem;print-color-adjust:unset}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:var(--c-primary);background-color:var(--c-background);border-color:#64748b;border-width:1px;--un-shadow: 0 0 #0000}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline:2px solid transparent;outline-offset:2px;--un-ring-inset: var(--un-empty, );--un-ring-offset-width: 2px;--un-ring-offset-color: var(--c-background);--un-ring-color: var(--c-primary);--un-ring-offset-shadow: var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow: var(--un-ring-inset) 0 0 0 calc(2px + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}[type=checkbox]:checked,[type=radio]:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}[type=radio]:checked{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e")}[type=checkbox]:checked:hover,[type=checkbox]:checked:focus,[type=radio]:checked:hover,[type=radio]:checked:focus{border-color:transparent;background-color:currentColor}[type=checkbox]:indeterminate{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat}[type=checkbox]:indeterminate:hover,[type=checkbox]:indeterminate:focus{border-color:transparent;background-color:currentColor}[type=file]{background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}[data-tooltip]{position:relative;cursor:help;--background-color: var(--c-tooltip-background, rgba(44, 44, 44, .85));--color: var(--c-tooltip-foreground, var(--c-on-dark));--border-color: transparent transparent var(--background-color) transparent}[data-tooltip]:before{content:attr(data-tooltip);visibility:hidden;opacity:0;transition:opacity var(--transition);position:absolute;z-index:1;left:0;top:102%;margin-top:5px;font-size:clamp(.75rem,90%,1rem);width:max-content;background-color:var(--background-color);color:var(--color);text-align:center;border-radius:.125rem;padding:.25rem .5rem;line-height:1.375}[data-tooltip]:after{content:"";visibility:hidden;opacity:0;transition:opacity var(--transition);position:absolute;z-index:1;left:50%;top:102%;margin-left:-5px;margin-top:-4px;border-width:5px;border-style:solid;border-color:var(--border-color)}[data-tooltip]:hover:before,[data-tooltip]:hover:after{opacity:1;visibility:visible}*,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgba(0,0,0,0);--un-ring-shadow:0 0 rgba(0,0,0,0);--un-shadow-inset: ;--un-shadow:0 0 rgba(0,0,0,0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgba(0,0,0,0);--un-ring-shadow:0 0 rgba(0,0,0,0);--un-shadow-inset: ;--un-shadow:0 0 rgba(0,0,0,0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }:root{--rgb-primary-50:246,250,249;--rgb-primary-100:226,239,235;--rgb-primary-200:204,227,220;--rgb-primary-300:180,214,204;--rgb-primary-400:148,196,181;--rgb-primary-500:106,172,152;--rgb-primary-600:59,146,120;--rgb-primary-700:19,123,91;--rgb-primary-800:16,101,75;--rgb-primary-900:11,72,54;--rgb-primary-subtle:103,197,161;--c-primary-subtle:rgb(103,197,161);--c-on-primary-subtle:var(--c-on-light);--rgb-primary:19,124,92;--c-primary:rgb(19,124,92);--c-on-primary:var(--c-on-dark);--rgb-primary-bold:0,68,41;--c-primary-bold:rgb(0,68,41);--c-on-primary-bold:var(--c-on-dark);--rgb-secondary-50:246,250,249;--rgb-secondary-100:226,239,235;--rgb-secondary-200:204,227,220;--rgb-secondary-300:180,214,204;--rgb-secondary-400:148,196,181;--rgb-secondary-500:106,172,152;--rgb-secondary-600:59,146,120;--rgb-secondary-700:19,123,91;--rgb-secondary-800:16,101,75;--rgb-secondary-900:11,72,54;--rgb-secondary-subtle:103,197,161;--c-secondary-subtle:rgb(103,197,161);--c-on-secondary-subtle:var(--c-on-light);--rgb-secondary:19,124,92;--c-secondary:rgb(19,124,92);--c-on-secondary:var(--c-on-dark);--rgb-secondary-bold:0,68,41;--c-secondary-bold:rgb(0,68,41);--c-on-secondary-bold:var(--c-on-dark);--rgb-on-primary:--c-on-dark;--rgb-on-primary-subtle:--c-on-light;--rgb-on-primary-bold:--c-on-dark;--rgb-on-secondary:--c-on-dark;--rgb-on-secondary-subtle:--c-on-light;--rgb-on-secondary-bold:--c-on-dark}.prose :where(h1,h2,h3,h4,h5,h6):not(:where(.not-prose,.not-prose *)){color:var(--un-prose-headings);font-weight:600;line-height:1.25}.prose :where(a):not(:where(.not-prose,.not-prose *)){color:var(--un-prose-links);text-decoration:underline;font-weight:500}.prose :where(a code):not(:where(.not-prose,.not-prose *)){color:var(--un-prose-links)}.prose :where(p,ul,ol,pre):not(:where(.not-prose,.not-prose *)){margin:1em 0;line-height:1.75}.prose :where(blockquote):not(:where(.not-prose,.not-prose *)){margin:1em 0;padding-left:1em;font-style:italic;border-left:.25em solid var(--un-prose-borders)}.prose :where(h1):not(:where(.not-prose,.not-prose *)){margin:1rem 0;font-size:2.25em}.prose :where(h2):not(:where(.not-prose,.not-prose *)){margin:1.75em 0 .5em;font-size:1.75em}.prose :where(h3):not(:where(.not-prose,.not-prose *)){margin:1.5em 0 .5em;font-size:1.375em}.prose :where(h4):not(:where(.not-prose,.not-prose *)){margin:1em 0;font-size:1.125em}.prose :where(img,video):not(:where(.not-prose,.not-prose *)){max-width:100%}.prose :where(figure,picture):not(:where(.not-prose,.not-prose *)){margin:1em 0}.prose :where(figcaption):not(:where(.not-prose,.not-prose *)){color:var(--un-prose-captions);font-size:.875em}.prose :where(code):not(:where(.not-prose,.not-prose *)){color:var(--un-prose-code);font-size:.875em;font-weight:600;font-family:var(--un-prose-font-mono)}.prose :where(:not(pre) > code):not(:where(.not-prose,.not-prose *)):before,.prose :where(:not(pre) > code):not(:where(.not-prose,.not-prose *)):after{content:"`"}.prose :where(pre):not(:where(.not-prose,.not-prose *)){padding:1.25rem 1.5rem;overflow-x:auto;border-radius:.375rem}.prose :where(pre,code):not(:where(.not-prose,.not-prose *)){white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;hyphens:none;background:transparent}.prose :where(pre code):not(:where(.not-prose,.not-prose *)){font-weight:inherit}.prose :where(ol,ul):not(:where(.not-prose,.not-prose *)){padding-left:1.25em}.prose :where(ol):not(:where(.not-prose,.not-prose *)){list-style-type:decimal}.prose :where(ol[type="A"]):not(:where(.not-prose,.not-prose *)){list-style-type:upper-alpha}.prose :where(ol[type="a"]):not(:where(.not-prose,.not-prose *)){list-style-type:lower-alpha}.prose :where(ol[type="A" s]):not(:where(.not-prose,.not-prose *)){list-style-type:upper-alpha}.prose :where(ol[type="a" s]):not(:where(.not-prose,.not-prose *)){list-style-type:lower-alpha}.prose :where(ol[type="I"]):not(:where(.not-prose,.not-prose *)){list-style-type:upper-roman}.prose :where(ol[type="i"]):not(:where(.not-prose,.not-prose *)){list-style-type:lower-roman}.prose :where(ol[type="I" s]):not(:where(.not-prose,.not-prose *)){list-style-type:upper-roman}.prose :where(ol[type="i" s]):not(:where(.not-prose,.not-prose *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where(.not-prose,.not-prose *)){list-style-type:decimal}.prose :where(ul):not(:where(.not-prose,.not-prose *)){list-style-type:disc}.prose :where(ol > li):not(:where(.not-prose,.not-prose *))::marker,.prose :where(ul > li):not(:where(.not-prose,.not-prose *))::marker,.prose :where(summary):not(:where(.not-prose,.not-prose *))::marker{color:var(--un-prose-lists)}.prose :where(hr):not(:where(.not-prose,.not-prose *)){margin:2em 0;border:1px solid var(--un-prose-hr)}.prose :where(table):not(:where(.not-prose,.not-prose *)){display:block;margin:1em 0;border-collapse:collapse;overflow-x:auto}.prose :where(tr):not(:where(.not-prose,.not-prose *)):nth-child(2n){background:var(--un-prose-bg-soft)}.prose :where(td,th):not(:where(.not-prose,.not-prose *)){border:1px solid var(--un-prose-borders);padding:.625em 1em}.prose :where(abbr):not(:where(.not-prose,.not-prose *)){cursor:help}.prose :where(kbd):not(:where(.not-prose,.not-prose *)){color:var(--un-prose-code);border:1px solid;padding:.25rem .5rem;font-size:.875em;border-radius:.25rem}.prose :where(details):not(:where(.not-prose,.not-prose *)){margin:1em 0;padding:1.25rem 1.5rem;background:var(--un-prose-bg-soft)}.prose :where(summary):not(:where(.not-prose,.not-prose *)){cursor:pointer;font-weight:600}.prose{color:var(--un-prose-body);max-width:65ch}.i-account{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0a3 3 0 0 1 6 0Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-arrow-left{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M10.5 19.5L3 12m0 0l7.5-7.5M3 12h18'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-arrow-right{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-cashback{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M9 15L3 9m0 0l6-6M3 9h12a6 6 0 0 1 0 12h-3'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-chevron-down{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m19.5 8.25l-7.5 7.5l-7.5-7.5'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-chevron-left{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M15.75 19.5L8.25 12l7.5-7.5'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-chevron-right{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m8.25 4.5l7.5 7.5l-7.5 7.5'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-close{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 18L18 6M6 6l12 12'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-facebook{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 512 512' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48c27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-favorites{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M21 8.25c0-2.485-2.099-4.5-4.688-4.5c-1.935 0-3.597 1.126-4.312 2.733c-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-instagram{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 448 512' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9S287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7s74.7 33.5 74.7 74.7s-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8c-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8s26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9c-26.2-26.2-58-34.4-93.9-36.2c-37-2.1-147.9-2.1-184.9 0c-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9c1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0c35.9-1.7 67.7-9.9 93.9-36.2c26.2-26.2 34.4-58 36.2-93.9c2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6c-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6c-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6c29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6c11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-logout{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M15.75 9V5.25A2.25 2.25 0 0 0 13.5 3h-6a2.25 2.25 0 0 0-2.25 2.25v13.5A2.25 2.25 0 0 0 7.5 21h6a2.25 2.25 0 0 0 2.25-2.25V15m3 0l3-3m0 0l-3-3m3 3H9'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-menu{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25H12'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-pinterest{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 496 512' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M496 256c0 137-111 248-248 248c-25.6 0-50.2-3.9-73.4-11.1c10.1-16.5 25.2-43.5 30.8-65c3-11.6 15.4-59 15.4-59c8.1 15.4 31.7 28.5 56.8 28.5c74.8 0 128.7-68.8 128.7-154.3c0-81.9-66.9-143.2-152.9-143.2c-107 0-163.9 71.8-163.9 150.1c0 36.4 19.4 81.7 50.3 96.1c4.7 2.2 7.2 1.2 8.3-3.3c.8-3.4 5-20.3 6.9-28.1c.6-2.5.3-4.7-1.7-7.1c-10.1-12.5-18.3-35.3-18.3-56.6c0-54.7 41.4-107.6 112-107.6c60.9 0 103.6 41.5 103.6 100.9c0 67.1-33.9 113.6-78 113.6c-24.3 0-42.6-20.1-36.7-44.8c7-29.5 20.5-61.3 20.5-82.6c0-19-10.2-34.9-31.4-34.9c-24.9 0-44.9 25.7-44.9 60.2c0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256C0 119 111 8 248 8s248 111 248 248z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-search{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m21 21l-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-shopping-cart{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 24 24' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M15.75 10.5V6a3.75 3.75 0 1 0-7.5 0v4.5m11.356-1.993l1.263 12c.07.665-.45 1.243-1.119 1.243H4.25a1.125 1.125 0 0 1-1.12-1.243l1.264-12A1.125 1.125 0 0 1 5.513 7.5h12.974c.576 0 1.059.435 1.119 1.007ZM8.625 10.5a.375.375 0 1 1-.75 0a.375.375 0 0 1 .75 0Zm7.5 0a.375.375 0 1 1-.75 0a.375.375 0 0 1 .75 0Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-tiktok{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 448 512' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M448 209.91a210.06 210.06 0 0 1-122.77-39.25v178.72A162.55 162.55 0 1 1 185 188.31v89.89a74.62 74.62 0 1 0 52.23 71.18V0h88a121.18 121.18 0 0 0 1.86 22.17A122.18 122.18 0 0 0 381 102.39a121.43 121.43 0 0 0 67 20.14Z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-twitter{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 512 512' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M459.37 151.716c.325 4.548.325 9.097.325 13.645c0 138.72-105.583 298.558-298.558 298.558c-59.452 0-114.68-17.219-161.137-47.106c8.447.974 16.568 1.299 25.34 1.299c49.055 0 94.213-16.568 130.274-44.832c-46.132-.975-84.792-31.188-98.112-72.772c6.498.974 12.995 1.624 19.818 1.624c9.421 0 18.843-1.3 27.614-3.573c-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319c-28.264-18.843-46.781-51.005-46.781-87.391c0-19.492 5.197-37.36 14.294-52.954c51.655 63.675 129.3 105.258 216.365 109.807c-1.624-7.797-2.599-15.918-2.599-24.04c0-57.828 46.782-104.934 104.934-104.934c30.213 0 57.502 12.67 76.67 33.137c23.715-4.548 46.456-13.32 66.599-25.34c-7.798 24.366-24.366 44.833-46.132 57.827c21.117-2.273 41.584-8.122 60.426-16.243c-14.292 20.791-32.161 39.308-52.628 54.253z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-whatsapp{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 448 512' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222c0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222c0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4l-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2c0-101.7 82.8-184.5 184.6-184.5c49.3 0 95.6 19.2 130.4 54.1c34.8 34.9 56.2 81.2 56.1 130.5c0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18c-5.1-1.9-8.8-2.8-12.5 2.8c-3.7 5.6-14.3 18-17.6 21.8c-3.2 3.7-6.5 4.2-12 1.4c-32.6-16.3-54-29.1-75.5-66c-5.7-9.8 5.7-9.1 16.3-30.3c1.8-3.7.9-6.9-.5-9.7c-1.4-2.8-12.5-30.1-17.1-41.2c-4.5-10.8-9.1-9.3-12.5-9.5c-3.2-.2-6.9-.2-10.6-.2c-3.7 0-9.7 1.4-14.8 6.9c-5.1 5.6-19.4 19-19.4 46.3c0 27.3 19.9 53.7 22.6 57.4c2.8 3.7 39.1 59.7 94.8 83.8c35.2 15.2 49 16.5 66.6 13.9c10.7-1.6 32.8-13.4 37.4-26.4c4.6-13 4.6-24.1 3.2-26.4c-1.3-2.5-5-3.9-10.5-6.6z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.i-youtube{--un-icon:url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 576 512' display='inline-block' vertical-align='middle' margin-bottom='0.22rem' width='1em' height='1em' xmlns='http://www.w3.org/2000/svg' %3E%3Cpath fill='currentColor' d='M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597c-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821c11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205l-142.739 81.201z'/%3E%3C/svg%3E");-webkit-mask:var(--un-icon) no-repeat;mask:var(--un-icon) no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;background-color:currentColor;color:inherit;display:inline-block;vertical-align:middle;margin-bottom:.22rem;width:1em;height:1em}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.absolute,.open\:absolute[open]{position:absolute}.fixed{position:fixed}.relative{position:relative}.-right-8{right:-2rem}.left-0,.open\:left-0[open]{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.open\:top-0[open],.top-0{top:0}.right-0{right:0}.right-2{right:.5rem}.top-2{top:.5rem}.top-3{top:.75rem}.z-0{z-index:0}.z-1{z-index:1}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.grid{display:grid}.grid-flow-col{grid-auto-flow:column}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.float-right{float:right}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.me{margin-inline-end:1rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-3{margin-right:.75rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.inline{display:inline}.block{display:block}.inline-block{display:inline-block}.hidden{display:none}.h-40{height:10rem}.h-5{height:1.25rem}.h-7{height:1.75rem}.h-full,.open\:h-full[open]{height:100%}.h-screen{height:100vh}.h1{height:.25rem}.h2{height:.5rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.open\:w-full[open],.w-full{width:100%}.w-56{width:14rem}.w-60{width:15rem}.w-7{width:1.75rem}.w-auto{width:auto}.w-screen{width:100vw}.flex{display:flex}.inline-flex{display:inline-flex}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-1\/2{flex-basis:50%}.basis-1\/3{flex-basis:33.3333333333%}.basis-2\/5{flex-basis:40%}.basis-full{flex-basis:100%}.flex-col{flex-direction:column}.-translate-x-1\/2{--un-translate-x:-50%;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.group:active .group-active\:-translate-x-1{--un-translate-x:-.25rem;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.group:active .group-active\:translate-x-1{--un-translate-x:.25rem;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.rotate-180{--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-rotate:180deg;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.hover\:scale-110:hover,.scale-110{--un-scale-x:1.1;--un-scale-y:1.1;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.active\:scale-125:active{--un-scale-x:1.25;--un-scale-y:1.25;transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.\!transform{transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))!important}.transform{transform:translate(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotate(var(--un-rotate-z)) skew(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-none{list-style-type:none}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{grid-gap:.5rem;gap:.5rem}.gap-3{grid-gap:.75rem;gap:.75rem}.gap-4{grid-gap:1rem;gap:1rem}.gap-6{grid-gap:1.5rem;gap:1.5rem}.divide-y>:not([hidden])~:not([hidden]){--un-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--un-divide-y-reverse)));border-bottom-width:calc(1px * var(--un-divide-y-reverse));border-top-style:solid;border-bottom-style:solid}.divide-base-100>:not([hidden])~:not([hidden]){--un-divide-opacity:1;border-color:rgba(241,245,249,var(--un-divide-opacity))}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.bg-base-100{--un-bg-opacity:1;background-color:rgba(241,245,249,var(--un-bg-opacity))}.bg-base-200{--un-bg-opacity:1;background-color:rgba(226,232,240,var(--un-bg-opacity))}.bg-base-300{--un-bg-opacity:1;background-color:rgba(203,213,225,var(--un-bg-opacity))}.bg-black\/50{background-color:#00000080}.bg-white{--un-bg-opacity:1;background-color:rgba(255,255,255,var(--un-bg-opacity))}.bg-white\/80{background-color:#fffc}.active\:bg-base-100:active{--un-bg-opacity:1;background-color:rgba(241,245,249,var(--un-bg-opacity))}.active\:bg-base-200:active{--un-bg-opacity:1;background-color:rgba(226,232,240,var(--un-bg-opacity))}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px{padding-left:1rem;padding-right:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pl-2{padding-left:.5rem}.pr-2{padding-right:.5rem}.pt-6{padding-top:1.5rem}.text-center{text-align:center}.text-right{text-align:right}.font-brand{font-family:var(--font-brand, var(--font-sans))}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.leading-none{line-height:1}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.lowercase{text-transform:lowercase}.group:hover .group-hover\:text-primary-subtle{--un-text-opacity:1;color:rgba(var(--rgb-primary-subtle),var(--un-text-opacity))}.hover\:text-base-700:hover,.text-base-700{--un-text-opacity:1;color:rgba(51,65,85,var(--un-text-opacity))}.hover\:text-primary-bold:hover{--un-text-opacity:1;color:rgba(var(--rgb-primary-bold),var(--un-text-opacity))}.hover\:text-primary:hover,.text-primary{--un-text-opacity:1;color:rgba(var(--rgb-primary),var(--un-text-opacity))}.text-base-400{--un-text-opacity:1;color:rgba(148,163,184,var(--un-text-opacity))}.text-base-500{--un-text-opacity:1;color:rgba(100,116,139,var(--un-text-opacity))}.text-base-600{--un-text-opacity:1;color:rgba(71,85,105,var(--un-text-opacity))}.text-base-800{--un-text-opacity:1;color:rgba(30,41,59,var(--un-text-opacity))}.text-black{--un-text-opacity:1;color:rgba(0,0,0,var(--un-text-opacity))}.text-gray-700{--un-text-opacity:1;color:rgba(55,65,81,var(--un-text-opacity))}.active\:text-primary:active{--un-text-opacity:1;color:rgba(var(--rgb-primary),var(--un-text-opacity))}.group:hover .group-hover\:underline,.hover\:underline:hover,.underline{text-decoration-line:underline}.decoration-2{text-decoration-thickness:2px}.opacity-100{opacity:1}.opacity-20{opacity:.2}.shadow{--un-shadow:var(--un-shadow-inset) 0 1px 3px 0 var(--un-shadow-color, rgba(0,0,0,.1)),var(--un-shadow-inset) 0 1px 2px -1px var(--un-shadow-color, rgba(0,0,0,.1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.focus\:outline-none:focus,.outline-none{outline:2px solid transparent;outline-offset:2px}.ring-1{--un-ring-width:1px;--un-ring-offset-shadow:var(--un-ring-inset) 0 0 0 var(--un-ring-offset-width) var(--un-ring-offset-color);--un-ring-shadow:var(--un-ring-inset) 0 0 0 calc(var(--un-ring-width) + var(--un-ring-offset-width)) var(--un-ring-color);box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.ring-black{--un-ring-opacity:1;--un-ring-color:rgba(0,0,0,var(--un-ring-opacity))}.ring-opacity-5{--un-ring-opacity:.05}.backdrop-blur-md{--un-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia);backdrop-filter:var(--un-backdrop-blur) var(--un-backdrop-brightness) var(--un-backdrop-contrast) var(--un-backdrop-grayscale) var(--un-backdrop-hue-rotate) var(--un-backdrop-invert) var(--un-backdrop-opacity) var(--un-backdrop-saturate) var(--un-backdrop-sepia)}.hover\:drop-shadow-sm:hover{--un-drop-shadow:drop-shadow(0 1px 1px var(--un-drop-shadow-color, rgba(0,0,0,.05)));filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.primary{background-color:var(--c-primary, rgb(19,124,92));color:var(--c-on-primary, var(--c-on-dark))}.hover\:primary-bold:hover{background-color:var(--c-primary-bold, rgb(0,68,41));color:var(--c-on-primary-bold, var(--c-on-dark))}@media (min-width: 640px){.sm\:mt-4{margin-top:1rem}.sm\:block{display:block}.sm\:py-4{padding-top:1rem;padding-bottom:1rem}}@media (min-width: 768px){.md\:mt-3{margin-top:.75rem}.md\:mt-5{margin-top:1.25rem}.md\:w-2\/3{width:66.6666666667%}.md\:py-3{padding-top:.75rem;padding-bottom:.75rem}.md\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}}@media (min-width: 1024px){.lg\:auto-cols-max{grid-auto-columns:max-content}.lg\:grid-cols-none{grid-template-columns:none}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:max-w-7xl{max-width:80rem}.lg\:gap-4{grid-gap:1rem;gap:1rem}.lg\:pl-3{padding-left:.75rem}}@media (min-width: 1280px){.xl\:gap-5{grid-gap:1.25rem;gap:1.25rem}}html{scroll-behavior:smooth}body{overflow-x:hidden}a,button,button>*{transition:background-color var(--transition),color var(--transition),border-color var(--transition),opacity var(--transition),transform var(--transition-fast)}[data-carousel-wrapper]{scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch;-ms-overflow-style:none}[data-carousel-wrapper]::-webkit-scrollbar{display:none}[data-carousel-wrapper]>*{scroll-snap-align:start;outline:none}[data-carousel-control]{z-index:1}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{L as U,f as E,r as b,M as G,N as M,O as X,B as D,m as K}from"./_plugin-vue_export-helper.77ed7c18.js";var H;const A=typeof window<"u",Y=e=>typeof e=="string",y=()=>{};A&&((H=window?.navigator)!=null&&H.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function _(e){return typeof e=="function"?e():U(e)}function $(e,n){function t(...r){return new Promise((o,s)=>{Promise.resolve(e(()=>n.apply(this,r),{fn:n,thisArg:this,args:r})).then(o).catch(s)})}return t}function q(e,n={}){let t,r,o=y;const s=u=>{clearTimeout(u),o(),o=y};return u=>{const f=_(e),i=_(n.maxWait);return t&&s(t),f<=0||i!==void 0&&i<=0?(r&&(s(r),r=null),Promise.resolve(u())):new Promise((a,d)=>{o=n.rejectOnCancel?d:a,i&&!r&&(r=setTimeout(()=>{t&&s(t),r=null,a(u())},i)),t=setTimeout(()=>{r&&s(r),r=null,a(u())},f)})}}function z(e,n=!0,t=!0,r=!1){let o=0,s,l=!0,u=y,f;const i=()=>{s&&(clearTimeout(s),s=void 0,u(),u=y)};return d=>{const p=_(e),w=Date.now()-o,T=()=>f=d();if(i(),p<=0)return o=Date.now(),T();if(w>p&&(t||!l))o=Date.now(),T();else if(n)return new Promise((O,m)=>{u=r?m:O,s=setTimeout(()=>{o=Date.now(),l=!0,O(T()),i()},p-w)});return!t&&!s&&(s=setTimeout(()=>l=!0,p)),l=!1,f}}function de(e,n=!1,t="Timeout"){return new Promise((r,o)=>{setTimeout(n?()=>o(t):r,e)})}function J(e){return e}function B(e){return M()?(X(e),!0):!1}function Z(e,n=200,t={}){return $(q(n,t),e)}function k(e,n=200,t=!1,r=!0,o=!1){return $(z(n,t,r,o),e)}function ee(e,n,t={}){const{immediate:r=!0}=t,o=b(!1);let s=null;function l(){s&&(clearTimeout(s),s=null)}function u(){o.value=!1,l()}function f(...i){l(),o.value=!0,s=setTimeout(()=>{o.value=!1,s=null,e(...i)},_(n))}return r&&(o.value=!0,A&&f()),B(u),{isPending:G(o),start:f,stop:u}}var te=Object.defineProperty,N=Object.getOwnPropertySymbols,ne=Object.prototype.hasOwnProperty,re=Object.prototype.propertyIsEnumerable,Q=(e,n,t)=>n in e?te(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,oe=(e,n)=>{for(var t in n||(n={}))ne.call(n,t)&&Q(e,t,n[t]);if(N)for(var t of N(n))re.call(n,t)&&Q(e,t,n[t]);return e};function me(e=1e3,n={}){const{controls:t=!1,callback:r}=n,o=ee(r??y,e,n),s=E(()=>!o.isPending.value);return t?oe({ready:s},o):s}function se(e){var n;const t=_(e);return(n=t?.$el)!=null?n:t}const ae=A?window:void 0;function I(...e){let n,t,r,o;if(Y(e[0])||Array.isArray(e[0])?([t,r,o]=e,n=ae):[n,t,r,o]=e,!n)return y;Array.isArray(t)||(t=[t]),Array.isArray(r)||(r=[r]);const s=[],l=()=>{s.forEach(a=>a()),s.length=0},u=(a,d,p)=>(a.addEventListener(d,p,o),()=>a.removeEventListener(d,p,o)),f=K(()=>se(n),a=>{l(),a&&s.push(...t.flatMap(d=>r.map(p=>u(a,d,p))))},{immediate:!0,flush:"post"}),i=()=>{f(),l()};return B(i),i}const S=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},L="__vueuse_ssr_handlers__";S[L]=S[L]||{};S[L];function ve(e){const n=b(!1);return I(e,"mouseenter",()=>n.value=!0),I(e,"mouseleave",()=>n.value=!1),n}const F=1;function _e(e,n={}){const{throttle:t=0,idle:r=200,onStop:o=y,onScroll:s=y,offset:l={left:0,right:0,top:0,bottom:0},eventListenerOptions:u={capture:!1,passive:!0},behavior:f="auto"}=n,i=b(0),a=b(0),d=E({get(){return i.value},set(c){w(c,void 0)}}),p=E({get(){return a.value},set(c){w(void 0,c)}});function w(c,g){var h,v,C;const P=_(e);P&&((C=P instanceof Document?document.body:P)==null||C.scrollTo({top:(h=_(g))!=null?h:p.value,left:(v=_(c))!=null?v:d.value,behavior:_(f)}))}const T=b(!1),O=D({left:!0,right:!1,top:!0,bottom:!1}),m=D({left:!1,right:!1,top:!1,bottom:!1}),V=Z(c=>{T.value=!1,m.left=!1,m.right=!1,m.top=!1,m.bottom=!1,o(c)},t+r),x=c=>{const g=c.target===document?c.target.documentElement:c.target,h=g.scrollLeft;m.left=h<i.value,m.right=h>a.value,O.left=h<=0+(l.left||0),O.right=h+g.clientWidth>=g.scrollWidth-(l.right||0)-F,i.value=h;let v=g.scrollTop;c.target===document&&!v&&(v=document.body.scrollTop),m.top=v<a.value,m.bottom=v>a.value,O.top=v<=0+(l.top||0),O.bottom=v+g.clientHeight>=g.scrollHeight-(l.bottom||0)-F,a.value=v,T.value=!0,V(c),s(c)};return I(e,"scroll",t?k(x,t,!0,!1):x,u),{x:d,y:p,isScrolling:T,arrivedState:O,directions:m}}var W;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(W||(W={}));var le=Object.defineProperty,j=Object.getOwnPropertySymbols,ue=Object.prototype.hasOwnProperty,ie=Object.prototype.propertyIsEnumerable,R=(e,n,t)=>n in e?le(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,ce=(e,n)=>{for(var t in n||(n={}))ue.call(n,t)&&R(e,t,n[t]);if(j)for(var t of j(n))ie.call(n,t)&&R(e,t,n[t]);return e};const fe={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};ce({linear:J},fe);export{ve as a,Z as b,me as c,de as p,_e as u};
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
import type { PictureComponentRemoteImageProps } from '@astrojs/image/components/';
|
|
3
|
-
import { join as joinPath } from 'node:path';
|
|
4
|
-
import { readFileSync } from 'node:fs';
|
|
5
|
-
import { getPicture } from './get-picture';
|
|
6
|
-
|
|
7
|
-
export type Props = Omit<PictureComponentRemoteImageProps, 'aspectRatio'> & {
|
|
8
|
-
aspectRatio?: PictureComponentRemoteImageProps['aspectRatio'],
|
|
9
|
-
fetchpriority?: 'high' | 'low' | 'auto',
|
|
10
|
-
hasImg?: boolean,
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
const { STOREFRONT_BASE_DIR } = process.env;
|
|
14
|
-
const baseDir = STOREFRONT_BASE_DIR || process.cwd();
|
|
15
|
-
type OriginalImage = { filepath: string, width: number, height: number };
|
|
16
|
-
const originalImages: OriginalImage[] = [];
|
|
17
|
-
const manifestFilepath = joinPath(baseDir, 'dist/server/images.src.csv');
|
|
18
|
-
readFileSync(manifestFilepath, 'utf-8').split(/\n/).forEach((line) => {
|
|
19
|
-
const [filepath, width, height] = line.split(',');
|
|
20
|
-
originalImages.push({
|
|
21
|
-
filepath,
|
|
22
|
-
width: Number(width),
|
|
23
|
-
height: Number(height),
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
const tryImageSize = (src: string) => {
|
|
28
|
-
let dimensions: { width?: number, height?: number } = {};
|
|
29
|
-
if (typeof src === 'string' && src.startsWith('/')) {
|
|
30
|
-
const originalImage = originalImages.find(({ filepath }) => {
|
|
31
|
-
return new RegExp(`^/${filepath}\\??.*`).test(src);
|
|
32
|
-
});
|
|
33
|
-
if (originalImage) {
|
|
34
|
-
const { width, height } = originalImage;
|
|
35
|
-
dimensions = { width, height };
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return dimensions;
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
const getAspectRatio = (src: string | { width?: number, height?: number }) => {
|
|
42
|
-
if (typeof src === 'string') {
|
|
43
|
-
src = tryImageSize(src);
|
|
44
|
-
}
|
|
45
|
-
if (src.width) {
|
|
46
|
-
return src.height ? src.width / src.height : 1;
|
|
47
|
-
}
|
|
48
|
-
return 0;
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
const {
|
|
52
|
-
src,
|
|
53
|
-
alt,
|
|
54
|
-
sizes,
|
|
55
|
-
widths,
|
|
56
|
-
aspectRatio: propAspectRatio,
|
|
57
|
-
fit,
|
|
58
|
-
background,
|
|
59
|
-
position,
|
|
60
|
-
formats = ['avif', 'webp'],
|
|
61
|
-
loading = 'lazy',
|
|
62
|
-
decoding = 'async',
|
|
63
|
-
hasImg = true,
|
|
64
|
-
...attrs
|
|
65
|
-
} = Astro.props;
|
|
66
|
-
|
|
67
|
-
let aspectRatio = propAspectRatio;
|
|
68
|
-
if ((!attrs.width || !attrs.height) && !aspectRatio && typeof src === 'string') {
|
|
69
|
-
const { width, height } = tryImageSize(src);
|
|
70
|
-
if (height) {
|
|
71
|
-
aspectRatio = getAspectRatio({ width, height });
|
|
72
|
-
attrs.width = width;
|
|
73
|
-
attrs.height = height;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
const { image, sources } = await getPicture({
|
|
78
|
-
src,
|
|
79
|
-
widths,
|
|
80
|
-
formats,
|
|
81
|
-
aspectRatio,
|
|
82
|
-
fit,
|
|
83
|
-
background,
|
|
84
|
-
position,
|
|
85
|
-
alt,
|
|
86
|
-
});
|
|
87
|
-
delete image.width;
|
|
88
|
-
delete image.height;
|
|
89
|
-
|
|
90
|
-
const pictureAttrs: Partial<typeof attrs & { alt: string }> = {};
|
|
91
|
-
if (!hasImg) {
|
|
92
|
-
pictureAttrs['data-alt'] = alt;
|
|
93
|
-
Object.assign(pictureAttrs, attrs);
|
|
94
|
-
delete pictureAttrs.width;
|
|
95
|
-
delete pictureAttrs.height;
|
|
96
|
-
}
|
|
97
|
-
---
|
|
98
|
-
|
|
99
|
-
<picture {...pictureAttrs}>
|
|
100
|
-
{sources.map((attrs) => <source {...attrs} sizes={sizes} />)}
|
|
101
|
-
{hasImg && <img {...image} loading={loading} decoding={decoding} {...attrs} />}
|
|
102
|
-
</picture>
|