/* Design tokens — tenant-specific file resolved via @tokens alias in vite.config.ts */
/* TENANT env var determines which token file Vite resolves (tokens-brk.css, tokens-imo.css, tokens-rad.css) */
/**
 * Do not edit directly, this file was auto-generated.
 */
:root {
  --blur-none: 0; /** No blur */
  --blur-xs: 0.25rem; /** 4px — subtle blur */
  --blur-sm: 0.5rem; /** 8px — light blur */
  --blur-md: 0.75rem; /** 12px — medium blur */
  --blur-lg: 1rem; /** 16px — standard blur */
  --blur-xl: 1.5rem; /** 24px — heavy blur */
  --blur-2xl: 2.5rem; /** 40px — intense blur */
  --blur-3xl: 4rem; /** 64px — maximum blur */
  --border-width-0: 0; /** No border — Tailwind border-0 */
  --border-width-1: 0.0625rem; /** 1px — default border — Tailwind border */
  --border-width-2: 0.125rem; /** 2px — Tailwind border-2 */
  --border-width-4: 0.25rem; /** 4px — Tailwind border-4 */
  --border-width-8: 0.5rem; /** 8px — Tailwind border-8 */
  --color-green-50: #f6fbef; /** Lightest wash */
  --color-green-100: #ebf5db; /** Light background */
  --color-green-200: #d9eeb4;
  --color-green-300: #c2e681; /** Brand default (neon-green) */
  --color-green-400: #a2d04d; /** Brand hover/pressed */
  --color-green-500: #88b332; /** Mid green */
  --color-green-600: #72932a; /** Large text safe (3.55:1 on white) */
  --color-green-700: #5a7321; /** AA text safe (5.37:1 on white) */
  --color-green-800: #45551b; /** AAA text safe (8.18:1 on white) */
  --color-green-900: #323c15;
  --color-green-950: #1c210d; /** Near black */
  --color-social-whatsapp-50: #f0fdf4; /** WhatsApp ramp lightest — Brand B (Light) button background */
  --color-social-whatsapp-100: #dcfce7; /** WhatsApp ramp light — Brand B (Light) button hover state */
  --color-social-whatsapp-200: #bbf7d0; /** WhatsApp ramp mid-light — Brand B (Light) button active/pressed state */
  --color-social-whatsapp-600: #16a34a; /** WhatsApp ramp mid-dark — Brand A (Solid) button hover state */
  --color-social-whatsapp-700: #15803d; /** WhatsApp ramp dark — Brand A (Solid) button background */
  --color-social-whatsapp-800: #166534; /** WhatsApp ramp darker — Brand A (Solid) button active/pressed state */
  --color-social-whatsapp-900: #14532d; /** WhatsApp ramp darkest — Brand B (Light) button text and icon color */
  --color-social-facebook-500: #1877f2; /** Facebook brand blue — original brand color (4.23:1 on white) */
  --color-social-facebook-600: #1672e9; /** Facebook ramp mid-dark — closest accessible shade (4.55:1 on white, passes AA normal text) */
  --color-social-facebook-700: #0c6be6; /** Facebook ramp dark — darkened step (4.93:1 on white) */
  --color-social-messenger-500: #01a9ff; /** Messenger brand blue — original brand color (2.59:1 on white) */
  --color-social-messenger-600: #007cbc; /** Messenger ramp mid-dark — closest accessible shade (4.56:1 on white, passes AA normal text) */
  --color-social-messenger-700: #0076b3; /** Messenger ramp dark — darkened step (4.95:1 on white) */
  --color-social-google: #4285f4; /** Google brand blue — used for social login buttons */
  --color-social-twitter: #1da1f2; /** Twitter/X brand blue — used for social share buttons */
  --color-utility-white: #ffffff; /** Pure white — default page background, text on dark surfaces */
  --color-utility-black: #000000; /** Pure black — brand-agnostic assets: SVG icons, logos, legal text, and print-safe elements that must remain true black regardless of brand or theme */
  --color-utility-transparent: rgba(0, 0, 0, 0); /** Fully transparent — used for invisible backgrounds, overlay resets, and transition start states */
  --color-navy-200: #c5d5dd;
  --color-navy-400: #7d9fb0;
  --color-navy-800: #004466; /** Imo Finance primary (7.40:1 on green-300, 5.78:1 on green-400) */
  --color-orange-500: #ff6a00;
  --color-orange-600: #f36501;
  --color-orange-800: #c15000;
  --color-dataviz-purple: #7e22ce; /** Tailwind purple-700 — data viz categorical */
  --color-dataviz-pink: #db2777; /** Tailwind pink-600 — data viz categorical */
  --color-dataviz-green: #1b7a3c; /** Deep green — data viz status positive-3 */
  --color-dataviz-lime: #6abf4b; /** Vivid lime-green — data viz status positive-2 */
  --color-dataviz-gold: #f5c800; /** Rich gold — data viz status positive-1 */
  --color-dataviz-orange: #f58b00; /** Orange — data viz status negative-1 */
  --color-dataviz-red: #cc1e1e; /** Dark red — data viz status negative-2 */
  --color-dataviz-crimson: #7b1030; /** Dark crimson — data viz status negative-3 */
  --color-neutral-50: #f9fafb;
  --color-neutral-100: #f3f4f6;
  --color-neutral-200: #e5e7eb;
  --color-neutral-300: #d1d5db;
  --color-neutral-400: #9ca3af;
  --color-neutral-500: #6b7280; /** Mid neutral */
  --color-neutral-600: #4b5563;
  --color-neutral-700: #374151;
  --color-neutral-800: #1f2937;
  --color-neutral-900: #111827;
  --color-neutral-950: #0b101d; /** Near black */
  --color-rose-50: #fef5f4;
  --color-rose-100: #fdebea;
  --color-rose-200: #fbcec9;
  --color-rose-300: #f8b0a9;
  --color-rose-400: #f27469;
  --color-rose-500: #ed3928; /** Mid rose */
  --color-rose-600: #d53324;
  --color-rose-700: #b22b1e;
  --color-rose-800: #8e2218;
  --color-rose-900: #7f1d1d;
  --color-rose-950: #641b1b;
  --color-lime-50: #f9fcf6;
  --color-lime-100: #f2f9ed;
  --color-lime-200: #e0f0d2;
  --color-lime-300: #cde6b7;
  --color-lime-400: #a7d481;
  --color-lime-500: #81c14b; /** Mid lime */
  --color-lime-600: #74ae44;
  --color-lime-700: #619138;
  --color-lime-800: #4d742d;
  --color-lime-900: #1b4a2f;
  --color-lime-950: #1d412b;
  --color-amber-50: #fef9f2;
  --color-amber-100: #fef4e6;
  --color-amber-200: #fce3c0;
  --color-amber-300: #f9d299;
  --color-amber-400: #f5b14d;
  --color-amber-500: #f18f01; /** Mid amber */
  --color-amber-600: #d98101;
  --color-amber-700: #b56b01;
  --color-amber-800: #915601;
  --color-amber-900: #6d4000;
  --color-amber-950: #5b3600;
  --color-red-50: #f9f3f4;
  --color-red-100: #f5e6e6;
  --color-red-200: #edc8c9;
  --color-red-300: #e59ea2;
  --color-red-400: #e14751;
  --color-red-500: #b81c24; /** Brand primary */
  --color-red-600: #a6171e;
  --color-red-700: #8a0f15;
  --color-red-800: #6e0a0d;
  --color-red-900: #520608;
  --color-red-950: #3c0304;
  --color-blue-50: #f0fafc;
  --color-blue-100: #dff2f7;
  --color-blue-200: #b4e0f0;
  --color-blue-300: #8acae6;
  --color-blue-400: #3f9ed1;
  --color-blue-500: #006fbc; /** Brand secondary */
  --color-blue-600: #005eab;
  --color-blue-700: #00488c;
  --color-blue-800: #003470;
  --color-blue-900: #002354;
  --color-blue-950: #00193e;
  --color-sky-50: #ebf5fa;
  --color-sky-100: #dceff8;
  --color-sky-200: #b7e0f5;
  --color-sky-300: #7dc9f0;
  --color-sky-400: #3da9e0;
  --color-sky-500: #128ecd; /** Mid sky */
  --color-sky-600: #056ca0;
  --color-sky-700: #055279;
  --color-sky-800: #053853;
  --color-sky-900: #041f2d;
  --color-sky-950: #03131b;
  --color-emerald-50: #f0f9f4;
  --color-emerald-100: #e1f5ea;
  --color-emerald-200: #c5f1d8;
  --color-emerald-300: #98ebbc;
  --color-emerald-400: #35e883;
  --color-emerald-500: #00a046; /** Mid emerald */
  --color-emerald-600: #017f38;
  --color-emerald-700: #03612c;
  --color-emerald-800: #044621;
  --color-emerald-900: #042d16;
  --color-emerald-950: #031e0f;
  --color-overlay-0: rgba(0, 25, 62, 0);
  --color-overlay-1: rgba(255, 255, 255, 0);
  --color-overlay-2: rgba(243, 244, 246, 0);
  --color-overlay-100: rgba(17, 24, 39, 0.1);
  --color-overlay-300: rgba(17, 24, 39, 0.3);
  --color-overlay-400: rgba(17, 24, 39, 0.45);
  --color-overlay-500: rgba(17, 24, 39, 0.5);
  --color-overlay-600: rgba(17, 24, 39, 0.6);
  --color-overlay-950: rgba(0, 25, 62, 0.8);
  --color-white-alpha-70: rgba(255, 255, 255, 0.7);
  --opacity-0: 0; /** 0% -- fully transparent */
  --opacity-5: 5; /** 5% -- near invisible, barely-there tints */
  --opacity-10: 10; /** 10% -- very subtle overlay */
  --opacity-25: 25; /** 25% -- subtle but perceivable */
  --opacity-40: 40; /** 40% -- clearly transparent */
  --opacity-50: 50; /** 50% -- half opacity */
  --opacity-60: 60; /** 60% -- more opaque than transparent */
  --opacity-75: 75; /** 75% -- mostly opaque */
  --opacity-100: 100; /** 100% -- fully opaque */
  --rounded-none: 0; /** 0px — sharp corners, no rounding */
  --rounded-xs: 0.125rem; /** 4px — checkboxes, small form controls, tight UI elements. BuyRentKenya: 0.25rem (4px — same). */
  --rounded-sm: 0.25rem; /** 6px — small buttons, tags, inline badges. BuyRentKenya: 0.25rem (4px — tighter than Imobiliare 6px; xs and sm collapse for tighter brand personality). */
  --rounded-md: 0.375rem; /** 6px */
  --rounded-lg: 0.5rem; /** 12px — cards, modals, hero containers, large surfaces. BuyRentKenya: 0.5rem (8px — proportionally tighter than Imobiliare 12px). */
  --rounded-2xl: 1rem; /** 16px */
  --rounded-3xl: 1.125rem; /** 18px */
  --rounded-4xl: 2rem; /** 32px */
  --rounded-full: 100%; /** 9999px — pills, badges, avatars, circular elements. BuyRentKenya: 100% (9999px — same). */
  --shadow-2xs: 0px 1px 0px 0px rgba(0, 0, 0, 0.05);
  --shadow-xs: 0px 1px 2px 0px rgba(0, 0, 0, 0.05);
  --shadow-sm: 0px 1px 2px 0px rgba(0, 0, 0, 0.06), 0px 1px 3px 0px rgba(0, 0, 0, 0.1);
  --shadow-md: 0px 2px 4px -1px rgba(0, 0, 0, 0.06), 0px 4px 6px -1px rgba(0, 0, 0, 0.1);
  --shadow-lg: 0px 4px 6px -2px rgba(0, 0, 0, 0.05), 0px 10px 15px -3px rgba(0, 0, 0, 0.1);
  --shadow-xl: 0px 10px 10px -5px rgba(0, 0, 0, 0.04), 0px 20px 25px -5px rgba(0, 0, 0, 0.1);
  --shadow-2xl: 0px 25px 50px -12px rgba(0, 0, 0, 0.25);
  --shadow-none: 0px 0px 0px 0px rgba(0, 0, 0, 1);
  --spacing-0: 0; /** 0px — no spacing */
  --spacing-1: 0.25rem; /** 4px */
  --spacing-2: 0.5rem; /** 8px */
  --spacing-3: 0.75rem; /** 12px */
  --spacing-4: 1rem; /** 16px */
  --spacing-5: 1.25rem; /** 20px */
  --spacing-6: 1.5rem; /** 24px */
  --spacing-7: 1.75rem; /** 28px */
  --spacing-8: 2rem; /** 32px */
  --spacing-9: 2.25rem; /** 36px */
  --spacing-10: 2.5rem; /** 40px */
  --spacing-11: 2.75rem; /** 44px */
  --spacing-12: 3rem; /** 48px */
  --spacing-14: 3.5rem; /** 56px */
  --spacing-16: 4rem; /** 64px */
  --spacing-20: 5rem; /** 80px */
  --spacing-24: 6rem; /** 96px */
  --spacing-28: 7rem; /** 112px */
  --spacing-32: 7.5rem; /** 120px */
  --spacing-px: 0.0625rem; /** 1px — hairline */
  --spacing-0-5: 0.125rem; /** 2px */
  --spacing-1-5: 0.375rem; /** 6px */
  --spacing-2-5: 0.625rem; /** 10px */
  --spacing-3-5: 0.875rem; /** 14px */
  --spacing-layout-page-margin-desktop: 100rem;
  --size-xxs: 0.5625rem;
  --size-xs: 0.75rem; /** 12px */
  --size-sm: 0.875rem; /** 14px */
  --size-base: 1rem; /** 16px — browser default */
  --size-lg: 1.125rem; /** 18px */
  --size-xl: 1.25rem; /** 20px */
  --size-2xl: 1.5rem; /** 24px */
  --size-3xl: 1.75rem; /** 28px */
  --size-4xl: 2.25rem; /** 36px */
  --size-5xl: 3rem; /** 48px */
  --size-6xl: 3.75rem; /** 60px */
  --size-7xl: 4.5rem; /** 72px */
  --size-8xl: 6rem; /** 96px */
  --size-9xl: 8rem; /** 128px */
  --leading-3: 0.75rem; /** 12px */
  --leading-4: 1rem; /** 16px */
  --leading-5: 1.25rem; /** 20px */
  --leading-6: 1.5rem; /** 24px */
  --leading-7: 1.75rem; /** 28px */
  --leading-8: 2rem; /** 32px */
  --leading-9: 2.25rem; /** 36px */
  --leading-10: 2.5rem; /** 40px */
  --leading-none-xxs: 0.5625rem; /** 12px — leading-none for size/xs */
  --leading-none-xs: 0.75rem; /** 12px — leading-none for size/xs */
  --leading-none-sm: 0.875rem; /** 14px — leading-none for size/sm */
  --leading-none-base: 1rem; /** 16px — leading-none for size/base */
  --leading-none-lg: 1.125rem; /** 18px — leading-none for size/lg */
  --leading-none-xl: 1.25rem; /** 20px — leading-none for size/xl */
  --leading-none-2xl: 1.5rem; /** 24px — leading-none for size/2xl */
  --leading-none-3xl: 1.75rem; /** 28px — leading-none for size/3xl */
  --leading-none-4xl: 2.25rem; /** 36px — leading-none for size/4xl */
  --leading-none-5xl: 3rem; /** 48px — leading-none for size/5xl */
  --leading-none-6xl: 3.75rem; /** 60px — leading-none for size/6xl */
  --leading-none-7xl: 4.5rem; /** 72px — leading-none for size/7xl */
  --leading-none-8xl: 6rem; /** 96px — leading-none for size/8xl */
  --leading-none-9xl: 8rem; /** 128px — leading-none for size/9xl */
  --tracking-tighter: -0.05000000074505806rem; /** Tailwind tracking-tighter */
  --tracking-tight: -0.02500000037252903rem; /** Tailwind tracking-tight */
  --tracking-normal: 0; /** Tailwind tracking-normal — default */
  --tracking-wide: 0.02500000037252903rem; /** Tailwind tracking-wide */
  --tracking-wider: 0.05000000074505806rem; /** Tailwind tracking-wider */
  --tracking-widest: 0.10000000149011612rem; /** Tailwind tracking-widest */
  --font-weight-thin: 100;
  --font-weight-extralight: 200;
  --font-weight-light: 300;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-extrabold: 800;
  --font-weight-black: 900;
  --text-font-family-display: Manrope; /** Display typeface — hero headlines, large promotional text */
  --text-font-family-heading: Manrope; /** Heading typeface — section titles, card headings */
  --text-font-family-body: Manrope; /** Body typeface — paragraph copy, form labels, UI text */
  --border-width-default: var(--border-width-1); /** Default border width — standard input outlines, card borders */
  --border-width-strong: var(--border-width-2); /** Strong/emphasis border — active state borders, highlighted elements */
  --border-width-bold: var(--border-width-4);
  --border-width-focus: var(--border-width-2); /** Focus ring border width — keyboard focus indicators */
  --border-width-none: var(--border-width-0); /** 0px — no border */
  --color-overlay-faint: var(--color-overlay-100); /** Faint overlay — barely visible scrim for subtle background dimming behind drawers or non-modal panels. */
  --color-overlay-subtle: var(--color-overlay-300); /** Lighter scrim overlay — used behind drawers, side panels, or less prominent overlays. Lower opacity than overlay-default. */
  --color-overlay-default: var(--color-overlay-500); /** Modal backdrop/scrim — semi-transparent dark overlay. Imobiliare: neutral-900. Imoradar24: slate-900. BuyRentKenya: neutral-900. */
  --color-overlay-dark: var(--color-overlay-600); /** Modal backdrop/scrim — semi-transparent dark overlay. Imobiliare: neutral-900. Imoradar24: slate-900. BuyRentKenya: neutral-900. */
  --color-overlay-image: var(--color-overlay-400); /** container fill for elements that overlay the thumbnail and gallery images */
  --color-overlay-gradient-start: var(--color-overlay-950); /** Used as a gradient overlay over images to help text remain accessible */
  --color-overlay-gradient-end: var(--color-overlay-0); /** Used as a gradient overlay over images to help text remain accessible */
  --color-overlay-fade-end: var(--color-overlay-1); /** Used as a gradient overlay over images to help text remain accessible */
  --color-surface-default: var(--color-utility-white); /** Default page/app background — primary canvas color. Imobiliare: white. Imoradar24: slate-50 (#F2F6F7). BuyRentKenya: white. WCAG: text-default on this surface is 17.74:1 AAA (Imobiliare/BRK) and 16.30:1 AAA (Imoradar24). */
  --color-surface-subtle: var(--color-neutral-100); /** Slightly tinted background — section backgrounds, sidebar. Imobiliare: neutral-50. Imoradar24: slate-100. BuyRentKenya: neutral-50. */
  --color-surface-raised: var(--color-utility-white); /** Elevated surface — cards, dropdowns, modals (may add shadow). Imobiliare: white. Imoradar24: slate-50. BuyRentKenya: white. */
  --color-surface-sunken: var(--color-neutral-200); /** Recessed input backgrounds, inset form areas. Imobiliare: neutral-50. Imoradar24: slate-100. BuyRentKenya: neutral-50. */
  --color-surface-inverse: var(--color-neutral-900); /** Dark inverse surface — dark mode panels, inverted sections. Imobiliare: neutral-900. Imoradar24: slate-900. BuyRentKenya: neutral-900. WCAG: text-inverse (white) on this surface is 17.74:1 AAA (Imobiliare/BRK) and 17.12:1 AAA (Imoradar24). */
  --color-fill-ghost: var(--color-white-alpha-70); /** Semi-transparent white surface — frosted glass effect for floating toolbars, overlaid controls. */
  --color-fill-brand-alt: var(--color-blue-500); /** Secondary brand surface — accent sections, promotional callouts. Pairs with text/inverse or brand-alt/on-fill for text. */
  --color-fill-none: var(--color-utility-transparent); /** Transparent surface — no visible background. Used for ghost containers that inherit parent background. */
  --color-fill-disabled: var(--color-neutral-200); /** Disabled element background — greyed-out buttons, inputs, controls. Exempt from WCAG contrast. */
  --color-fill-brand: var(--color-red-500); /** Brand-colored surface — hero sections, brand callout cards. Imobiliare: rose-500. Imoradar24: blue-500. BuyRentKenya: red-500. WCAG: use text-inverse (white) on this surface for AA compliance. */
  --color-fill-brand-dark: var(--color-red-800); /** Brand-colored surface — hero sections, brand callout cards. Imobiliare: rose-500. Imoradar24: blue-500. BuyRentKenya: red-500. WCAG: use text-inverse (white) on this surface for AA compliance. */
  --color-fill-subtle: var(--color-neutral-100); /** Subtle neutral fill — skeleton loaders, inactive toggle tracks, muted UI regions. */
  --color-fill-light: var(--color-utility-white);
  --color-fill-attention: var(--color-amber-500); /** Attention/warning element fill — promotional badges, highlighted listings. Imobiliare: amber-400. Imoradar24: yellow-400. BuyRentKenya: amber-400. */
  --color-fill-positive: var(--color-lime-500); /** Positive/success element fill — new listing badges, verification indicators. Imobiliare: lime-500. Imoradar24: green-400. BuyRentKenya: lime-500. */
  --color-fill-highlight: var(--color-sky-400); /** Highlight/featured element fill — promoted listing badges. Imoradar24: sky-400. Imobiliare and BuyRentKenya: TBD. */
  --color-fill-positive-subtle: var(--color-lime-100); /** Subtle positive element fill — commission badges, soft success backgrounds. Imobiliare: lime-100. Imoradar24 and BuyRentKenya: TBD. */
  --color-fill-neutral: var(--color-neutral-300);
  --color-fill-neutral-strong: var(--color-neutral-500);
  --color-text-headings: var(--color-neutral-900); /** Main body text — headings, paragraph copy. All brands: neutral-900. Imobiliare: 17.74:1 WCAG AAA. Imoradar24: 16.30:1 WCAG AAA (on slate-50). BuyRentKenya: 17.74:1 WCAG AAA. */
  --color-text-subtle: var(--color-neutral-600); /** Secondary/muted text — captions, helper text, metadata. All brands: neutral-600. Imobiliare: 7.56:1 WCAG AAA. Imoradar24: 6.95:1 WCAG AAA (on slate-50). BuyRentKenya: 7.56:1 WCAG AAA. */
  --color-text-disabled: var(--color-neutral-400); /** Disabled state text — non-interactive labels. All brands: neutral-400. 2.54:1 — Intentional low contrast, disabled elements are exempt from WCAG contrast requirements. */
  --color-text-inverse: var(--color-utility-white); /** Text on dark/colored backgrounds — white text on filled buttons or inverse surfaces. All brands: utility.white on surface-inverse. Imobiliare: 17.74:1 WCAG AAA. Imoradar24: 17.12:1 WCAG AAA. BuyRentKenya: 17.74:1 WCAG AAA. */
  --color-text-inverse-subtle: var(--color-neutral-100); /** Muted text on dark/inverse surfaces — reduced emphasis text on inverse backgrounds. */
  --color-text-brand: var(--color-red-600); /** Primary brand accent text — inline links, brand callouts. Imobiliare: rose-600 5.01:1 WCAG AA. Imoradar24: blue-600 7.91:1 WCAG AAA. BuyRentKenya: red-600 7.60:1 WCAG AAA. */
  --color-text-brand-alt: var(--color-blue-700); /** Secondary brand accent text — supporting brand color for two-tone expressions. Imobiliare: teal-700 6.39:1 WCAG AAA. Imoradar24: blue-800 13.07:1 WCAG AAA. BuyRentKenya: blue-700 9.11:1 WCAG AAA. */
  --color-text-brand-alt-on-fill: var(--color-utility-white); /** Secondary brand accent text — supporting brand color for two-tone expressions. Imobiliare: teal-700 6.39:1 WCAG AAA. Imoradar24: blue-800 13.07:1 WCAG AAA. BuyRentKenya: blue-700 9.11:1 WCAG AAA. */
  --color-text-link: var(--color-blue-500); /** Hyperlink text color — inline links within body copy. Imobiliare: rose-600 5.01:1 WCAG AA. Imoradar24: blue-600 7.91:1 WCAG AAA. BuyRentKenya: red-600 7.60:1 WCAG AAA. */
  --color-text-price: var(--color-neutral-900); /** Property price text — high-emphasis numeric values. All brands: neutral-900 17.74:1 WCAG AAA (max legibility for financial information). Imoradar24: 16.30:1 WCAG AAA. */
  --color-text-placeholder: var(--color-neutral-500); /** Placeholder text in form inputs — low-emphasis hint before user entry. */
  --color-text-fallback: var(--color-utility-white); /** Fallback text colour — initials on placeholder avatars, text on image-less cards. */
  --color-text-body: var(--color-neutral-700); /** Standard body text — main paragraph copy. All brands: neutral-900. Semantically reserved for content body text (vs text/headings which is used for heading copy). */
  --color-icon-light: var(--color-utility-white); /** Light icon colour — icons on dark or brand-coloured backgrounds. */
  --color-icon-brand: var(--color-red-500); /** Brand-coloured icon — primary brand accent for icon elements. */
  --color-icon-brand-alt: var(--color-blue-500); /** Secondary brand icon colour — brand-alt accent for icon elements. */
  --color-icon-brand-alt-hover: var(--color-blue-700); /** Secondary brand icon hover state — darkened icon on pointer hover. */
  --color-icon-subtle: var(--color-neutral-600); /** Default icon colour — standard icons in body content. */
  --color-icon-disabled: var(--color-neutral-400); /** Default icon colour — standard icons in body content. */
  --color-icon-dark: var(--color-neutral-900); /** Default icon colour — standard icons in body content. */
  --color-icon-positive: var(--color-lime-600);
  --color-icon-negative: var(--color-rose-500);
  --color-border-default: var(--color-neutral-500); /** Default border — input outlines, card borders, dividers. Imobiliare: neutral-200. Imoradar24: slate-200 (matches slate surface ramp). BuyRentKenya: neutral-200. Non-text UI — WCAG AA (UI) 3:1 threshold applies to border against adjacent surface. */
  --color-border-subtle: var(--color-neutral-100); /** Subtle border — light dividers, section separators. Imobiliare: neutral-100. Imoradar24: slate-100. BuyRentKenya: neutral-100. */
  --color-border-strong: var(--color-neutral-500); /** Strong border — emphasized outlines, active table rows. Imobiliare: neutral-400. Imoradar24: slate-400. BuyRentKenya: neutral-400. */
  --color-border-brand: var(--color-red-500); /** Brand-colored decorative border — brand accent underlines, callout borders. Imobiliare: rose-500. Imoradar24: blue-500. BuyRentKenya: red-500. */
  --color-border-brand-alt: var(--color-blue-600); /** Secondary brand border — accent dividers, brand-alt section outlines. */
  --color-border-inverse: var(--color-utility-white); /** Border on dark/inverse surfaces — light stroke for contrast on dark backgrounds. */
  --color-border-focus: var(--color-blue-500); /** Keyboard focus ring — visible outline for WCAG 2.4.11 Focus Appearance. Must be 3:1 against adjacent colors. Imobiliare: blue-500. Imoradar24: blue-400. BuyRentKenya: blue-500. */
  --color-border-focus-inverse: var(--color-utility-white); /** Focus ring on dark backgrounds — high-contrast outline for keyboard focus on inverse surfaces. */
  --color-border-none: var(--color-utility-transparent); /** Transparent/no border — removes visible border without layout shift. Use for borderless variants or active state transitions. */
  --color-brand-fill: var(--color-red-500); /** Primary CTA button background — main call-to-action. Imobiliare: rose-500 4.51:1 WCAG AA. Imoradar24: blue-500 6.51:1 WCAG AA. BuyRentKenya: red-500 6.50:1 WCAG AA. */
  --color-brand-fill-hover: var(--color-red-600); /** Primary button hover state — darker shade on pointer hover. Imobiliare: rose-700. Imoradar24: blue-600. BuyRentKenya: red-600. All darker than default — WCAG AA maintained or exceeded. */
  --color-brand-fill-active: var(--color-red-700); /** Primary button active/pressed state — darkest, momentary press feedback. Imobiliare: rose-800. Imoradar24: blue-700. BuyRentKenya: red-700. WCAG AA maintained. */
  --color-brand-on-fill: var(--color-utility-white); /** Text/icon color on primary button. Imobiliare: white on rose-600 5.01:1 WCAG AA. Imoradar24: white on blue-500 7.09:1 WCAG AAA. BuyRentKenya: white on red-500 6.50:1 WCAG AA. */
  --color-brand-alt-fill: var(--color-sky-100); /** Secondary CTA button background. Imobiliare: teal-600 5.19:1 WCAG AA. Imoradar24: blue-50 (outline pattern — border provides visual boundary; bg-vs-page 1.00:1). BuyRentKenya: blue-500 5.25:1 WCAG AA. */
  --color-brand-alt-fill-hover: var(--color-blue-500); /** Secondary button hover state. Imobiliare: teal-700. Imoradar24: blue-100. BuyRentKenya: blue-600. */
  --color-brand-alt-fill-active: var(--color-sky-200); /** Secondary button active/pressed state. Imobiliare: teal-800. Imoradar24: blue-200. BuyRentKenya: blue-700. */
  --color-brand-alt-border: var(--color-blue-500); /** Secondary button border — outline for brand-alt interactive elements. */
  --color-brand-alt-text: var(--color-blue-500); /** Text/icon color on secondary button. Imobiliare: white on teal-600 5.19:1 WCAG AA. Imoradar24: blue-500 on blue-50 6.50:1 WCAG AA (not white — outline pattern). BuyRentKenya: white on blue-500 5.25:1 WCAG AA. */
  --color-brand-alt-text-hover: var(--color-blue-700); /** Secondary button text hover state — darkened text on pointer hover. */
  --color-brand-alt-text-active: var(--color-blue-900); /** Secondary button text active/pressed state — darkest text for press feedback. */
  --color-brand-alt-on-fill: var(--color-utility-white); /** Text/icon color on brand-alt fill */
  --color-brand-subtle-fill: var(--color-blue-500); /** Tertiary/ghost button background — lowest-emphasis actions. Imobiliare: neutral-100. Imoradar24: slate-100. BuyRentKenya: neutral-100. WARNING: bg vs page bg ~1.1:1 — border/shadow distinguishes boundary (ghost button pattern; WCAG UI 3:1 achieved via border). */
  --color-brand-subtle-fill-hover: var(--color-blue-700); /** Tertiary button hover state. Imobiliare: neutral-200. Imoradar24: slate-200. BuyRentKenya: neutral-200. */
  --color-brand-subtle-fill-active: var(--color-blue-800); /** Tertiary button active/pressed state. Imobiliare: neutral-300. Imoradar24: slate-300. BuyRentKenya: neutral-300. */
  --color-brand-subtle-border: var(--color-blue-200); /** Tertiary button border — outline for brand-subtle interactive elements. */
  --color-brand-subtle-text: var(--color-utility-white); /** Text/icon colour on tertiary button — label colour for ghost/subtle actions. */
  --color-inverse-fill: var(--color-utility-white); /** Inverse button background — light fill for buttons on dark/brand surfaces. */
  --color-inverse-fill-hover: var(--color-red-200); /** Inverse button hover state — tinted fill on pointer hover. */
  --color-inverse-fill-active: var(--color-red-800); /** Inverse button active/pressed state — darkened fill for press feedback. */
  --color-inverse-border: var(--color-red-500); /** Inverse button border — outline for buttons on dark surfaces. */
  --color-inverse-text: var(--color-red-500); /** Inverse button text — label colour for buttons on dark/brand surfaces. */
  --color-destructive-fill: var(--color-rose-600); /** Destructive button background — delete, remove, cancel actions. */
  --color-destructive-fill-hover: var(--color-rose-700); /** Destructive button hover state — darker red on pointer hover. */
  --color-destructive-fill-active: var(--color-rose-900); /** Destructive button active/pressed state — darkest red for press feedback. */
  --color-destructive-border: var(--color-rose-600); /** Destructive button border — outline for destructive interactive elements. */
  --color-destructive-on-fill: var(--color-utility-white); /** Text/icon colour on destructive fill — used on color/destructive/fill backgrounds. */
  --color-destructive-text: var(--color-rose-600); /** Used for destructive text on a light background */
  --color-destructive-text-hover: var(--color-rose-700); /** Destructive text hover state — darkened text on pointer hover. */
  --color-destructive-text-active: var(--color-rose-900); /** Destructive text active/pressed state — darkest text for press feedback. */
  --color-feedback-success-surface: var(--color-lime-50); /** Success state icon fill or alert background — used at large sizes, WCAG large text/UI 3:1 applies. Imobiliare: lime-500. Imoradar24: green-500. BuyRentKenya: lime-500. */
  --color-feedback-success-text: var(--color-lime-800); /** Success state text — WCAG AA on surface-default. Imobiliare: lime-700 4.99:1 WCAG AA. Imoradar24: green-700 4.86:1 WCAG AA. BuyRentKenya: lime-800 5.45:1 WCAG AA (lime-700 = 3.74:1 — fails AA text). */
  --color-feedback-success: var(--color-lime-700); /** Success state border/outline on white. Imobiliare: lime-300. Imoradar24: green-300. BuyRentKenya: lime-300. */
  --color-feedback-success-border: var(--color-lime-600);
  --color-feedback-warning: var(--color-amber-400); /** Warning state icon fill or alert background — used at large sizes, WCAG large text/UI 3:1 applies. All brands: amber-400. */
  --color-feedback-warning-text: var(--color-amber-700); /** Warning state text — WCAG AA on surface-default. Imobiliare: amber-700 5.02:1 WCAG AA. Imoradar24: amber-700 4.62:1 WCAG AA. BuyRentKenya: amber-700 4.14:1 WARNING — below AA 4.5:1 for normal text. */
  --color-feedback-warning-surface: var(--color-amber-200); /** Warning state border/outline on white. All brands: amber-200. */
  --color-feedback-error: var(--color-rose-500); /** Error state icon fill or alert background — used at large sizes, WCAG large text/UI 3:1 applies. Imobiliare: red-500. Imoradar24: red-500. BuyRentKenya: rose-500 (brand error hue — red is the brand primary). */
  --color-feedback-error-surface: var(--color-rose-100);
  --color-feedback-error-text: var(--color-rose-700); /** Error state text — WCAG AA on surface-default. Imobiliare: red-700 6.47:1 WCAG AAA. Imoradar24: red-700 6.47:1 WCAG AAA. BuyRentKenya: rose-700 6.45:1 WCAG AAA. */
  --color-feedback-error-border: var(--color-rose-600); /** Error state border/outline on white. Imobiliare: red-200. Imoradar24: red-200. BuyRentKenya: rose-200. */
  --color-feedback-info: var(--color-sky-400); /** Informational state icon fill or alert background — used at large sizes, WCAG large text/UI 3:1 applies. Imobiliare: blue-400. Imoradar24: sky-400. BuyRentKenya: sky-400. */
  --color-feedback-info-text: var(--color-sky-700); /** Informational state text — WCAG AA on surface-default. Imobiliare: blue-700 6.70:1 WCAG AAA. Imoradar24: sky-700 5.45:1 WCAG AA. BuyRentKenya: sky-700 8.44:1 WCAG AAA. */
  --color-feedback-info-surface: var(--color-sky-200); /** Informational state border/outline on white. Imobiliare: blue-200. Imoradar24: sky-200. BuyRentKenya: sky-200. */
  --color-finance-finance-fill-dark: var(--color-navy-800); /** Imo Finance dark fill — navy (#004466) for button text and dark finance UI elements on green surfaces. 7.40:1 contrast on green-300. */
  --color-finance-finance-text-green: var(--color-green-700); /** Imo Finance green text — accessible green for finance-branded text on light backgrounds. */
  --color-finance-finance-fill: var(--color-green-300); /** Imo Finance button background — lime green (green-300, #C2E681) brand colour. */
  --color-finance-finance-fill-hover: var(--color-green-400); /** Imo Finance button hover state — green-400 (#A2D04D), darker on pointer hover. */
  --color-finance-finance-fill-active: var(--color-green-600); /** Imo Finance button active/pressed state — green-500 (#88B332), darkest for press feedback. */
  --color-finance-finance-orange: var(--color-orange-600); /** Imo Finance orange accent — used for secondary finance UI elements and charts. */
  --color-finance-finance-fill-mid: var(--color-navy-400); /** Imo Finance mid-tone fill — navy for secondary finance containers and card backgrounds. */
  --color-finance-finance-fill-light: var(--color-navy-200); /** Imo Finance light fill — light navy for subtle finance section backgrounds. */
  --color-finance-finance-green-light: var(--color-green-100); /** Imo Finance light green — subtle green for finance success/positive backgrounds. */
  --color-finance-finance-orange-mid: var(--color-orange-800); /** Imo Finance dark orange — emphasised finance warning or accent elements. */
  --color-data-categorical-1: var(--color-blue-500); /** Chart series 1 — hero (brand primary for dataviz) */
  --color-data-categorical-2: var(--color-red-500); /** Chart series 2 — hero */
  --color-data-categorical-3: var(--color-emerald-500); /** Chart series 3 — hero */
  --color-data-categorical-4: var(--color-amber-600); /** Chart series 4 — hero */
  --color-data-categorical-5: var(--color-lime-500); /** Chart series 5 — extended set */
  --color-data-categorical-6: var(--color-dataviz-purple); /** Chart series 6 — extended set */
  --color-data-categorical-7: var(--color-dataviz-pink); /** Chart series 7 — extended set */
  --color-data-categorical-8: var(--color-rose-500); /** Chart series 8 — extended set */
  --color-data-categorical-9: var(--color-blue-800); /** Chart series 9 — extended set */
  --color-data-categorical-neutral: var(--color-neutral-500); /** Chart 'no data' / 'other' / inconclusive category */
  --color-data-ramp-1: var(--color-red-500); /** Ramp warm endpoint (e.g. low value) */
  --color-data-ramp-2: var(--color-red-300); /** Ramp warm intermediate */
  --color-data-ramp-3: var(--color-red-100); /** Ramp warm light */
  --color-data-ramp-4: var(--color-neutral-100); /** Ramp neutral midpoint */
  --color-data-ramp-5: var(--color-blue-100); /** Ramp cool light */
  --color-data-ramp-6: var(--color-blue-300); /** Ramp cool intermediate */
  --color-data-ramp-7: var(--color-blue-500); /** Ramp cool endpoint (e.g. high value) */
  --color-data-status-positive-3: var(--color-dataviz-green); /** Best / Excellent (e.g. AQI 0-50) */
  --color-data-status-positive-2: var(--color-dataviz-lime); /** Good / Acceptable (e.g. AQI 51-100) */
  --color-data-status-positive-1: var(--color-dataviz-gold); /** Fair / Moderate (e.g. AQI 101-150) */
  --color-data-status-negative-1: var(--color-dataviz-orange); /** Poor (e.g. AQI 151-200) */
  --color-data-status-negative-2: var(--color-dataviz-red); /** Bad / Unhealthy (e.g. AQI 201-300) */
  --color-data-status-negative-3: var(--color-dataviz-crimson); /** Hazardous / Critical (e.g. AQI 300+) */
  --color-graphic-outline: var(--color-neutral-900); /** Stroke/outline colour for illustrations and iconography — brand-tinted line work. */
  --color-graphic-neutral: var(--color-neutral-50); /** Neutral fill for illustrations — mid-tone used in non-brand graphic elements. */
  --color-graphic-background: var(--color-utility-white); /** Background fill for illustration containers — subtle tint behind graphic elements. */
  --color-graphic-spot-1: var(--color-blue-500); /** Primary brand spot colour for illustrations — main brand accent in the illustration palette. */
  --color-graphic-spot-2: var(--color-blue-500); /** Secondary brand spot colour for illustrations — supporting accent in the illustration palette. */
  --opacity-disabled: var(--opacity-40); /** Greyed-out UI elements in disabled state -- buttons, inputs, form fields, icons */
  --opacity-overlay: var(--opacity-50); /** Modal/dialog backdrop scrim -- pairs with surface.overlay color token for full backdrop effect */
  --opacity-subtle: var(--opacity-10); /** Hover tints, light highlights, barely-there state indication -- subtle interaction feedback */
  --opacity-muted: var(--opacity-60); /** Secondary/de-emphasized content -- secondary copy, decorative elements, placeholder text */
  --opacity-image-overlay: var(--opacity-40); /** Photo overlay for text legibility -- price badges, labels on listing photos, map marker overlays */
  --rounded-xl: var(--rounded-2xl); /** only used when its a container around another container using rounded-lg - should be used subtly */
  --rounded-base: var(--rounded-md); /** 8px — standard interactive elements: buttons, inputs, selects. BuyRentKenya: 0.375rem (6px — proportionally tighter than Imobiliare 8px). */
  --spacing-none: var(--spacing-0); /** 0px — no internal spacing */
  --spacing-xxs: var(--spacing-0-5); /** Only used for very small elements like badges and like count pills */
  --spacing-xs: var(--spacing-1); /** 4px — icon padding, tight internal spacing */
  --spacing-sm: var(--spacing-1-5); /** 6px — button padding-y, form field internal padding */
  --spacing-md: var(--spacing-2); /** 8px — default component padding — cards, panels, list items */
  --spacing-lg: var(--spacing-3); /** 12px — large component padding — modal padding, sidebar content */
  --spacing-xl: var(--spacing-4); /** 16px — extra-large component padding — hero sections, spacious panels */
  --spacing-2xl: var(--spacing-5); /** 20px — maximum component padding — landing page blocks, full-width sections */
  --spacing-3xl: var(--spacing-6); /** 24px — large grid gaps, feature sections */
  --spacing-4xl: var(--spacing-8); /** 32px — large grid gaps, feature sections */
  --spacing-layout-block-mobile: var(--spacing-6);
  --spacing-layout-block-tablet: var(--spacing-8);
  --spacing-layout-block-desktop: var(--spacing-10);
  --spacing-layout-section-padding-mobile: var(--spacing-6);
  --spacing-layout-section-padding-tablet: var(--spacing-6);
  --spacing-layout-section-padding-desktop: var(--spacing-8);
  --spacing-layout-section-gap-mobile: var(--spacing-12);
  --spacing-layout-section-gap-tablet: var(--spacing-12);
  --spacing-layout-section-gap-desktop: var(--spacing-16);
  --spacing-layout-page-margin-mobile: var(--spacing-4);
  --spacing-layout-page-margin-tablet: var(--spacing-8);
  --text-display-font-weight: var(--font-weight-bold); /** 700 */
  --text-display-font-size-mobile: var(--size-3xl);
  --text-display-font-size-tablet: var(--size-4xl);
  --text-display-font-size-desktop: var(--size-5xl);
  --text-display-line-height-mobile: var(--leading-9);
  --text-display-line-height-tablet: var(--leading-none-4xl);
  --text-display-line-height-desktop: var(--leading-none-5xl);
  --text-display-letter-spacing: var(--tracking-tight); /** -0.025em */
  --text-heading-xl-font-weight: var(--font-weight-bold); /** 700 */
  --text-heading-xl-font-size-mobile: var(--size-2xl);
  --text-heading-xl-font-size-tablet: var(--size-3xl);
  --text-heading-xl-font-size-desktop: var(--size-4xl);
  --text-heading-xl-line-height-mobile: var(--leading-8);
  --text-heading-xl-line-height-tablet: var(--leading-9);
  --text-heading-xl-line-height-desktop: var(--leading-10);
  --text-heading-xl-letter-spacing: var(--tracking-tight); /** -0.025em */
  --text-heading-lg-font-weight: var(--font-weight-semibold); /** 600 */
  --text-heading-lg-font-size-mobile: var(--size-2xl);
  --text-heading-lg-font-size-tablet: var(--size-2xl);
  --text-heading-lg-font-size-desktop: var(--size-3xl);
  --text-heading-lg-line-height-mobile: var(--leading-7);
  --text-heading-lg-line-height-tablet: var(--leading-7);
  --text-heading-lg-line-height-desktop: var(--leading-8);
  --text-heading-lg-letter-spacing: var(--tracking-normal); /** 0em */
  --text-heading-md-font-weight: var(--font-weight-semibold); /** 600 */
  --text-heading-md-font-size-mobile: var(--size-xl);
  --text-heading-md-font-size-tablet: var(--size-xl);
  --text-heading-md-font-size-desktop: var(--size-2xl);
  --text-heading-md-line-height: var(--leading-7); /** 28px */
  --text-heading-md-letter-spacing: var(--tracking-normal); /** 0em */
  --text-heading-sm-font-weight: var(--font-weight-semibold); /** 600 */
  --text-heading-sm-font-size-mobile: var(--size-base);
  --text-heading-sm-font-size-tablet: var(--size-lg);
  --text-heading-sm-font-size-desktop: var(--size-xl);
  --text-heading-sm-line-height-mobile: var(--leading-6);
  --text-heading-sm-line-height-tablet: var(--leading-6);
  --text-heading-sm-line-height-desktop: var(--leading-7);
  --text-heading-sm-letter-spacing: var(--tracking-normal); /** 0em */
  --text-heading-md-strong-font-weight: var(--font-weight-bold); /** 700 */
  --text-heading-md-strong-font-size-mobile: var(--size-xl);
  --text-heading-md-strong-font-size-tablet: var(--size-xl);
  --text-heading-md-strong-font-size-desktop: var(--size-2xl);
  --text-heading-md-strong-line-height: var(--leading-7); /** 28px */
  --text-heading-md-strong-letter-spacing: var(--tracking-normal); /** 0em */
  --text-body-lg-font-weight: var(--font-weight-medium); /** 500 */
  --text-body-lg-font-size: var(--size-lg); /** 18px */
  --text-body-lg-line-height: var(--leading-6); /** 28px */
  --text-body-lg-letter-spacing: var(--tracking-normal); /** 0em */
  --text-body-md-font-weight: var(--font-weight-regular); /** 400 */
  --text-body-md-font-size: var(--size-base); /** 16px */
  --text-body-md-line-height: var(--leading-6); /** 24px */
  --text-body-md-letter-spacing: var(--tracking-normal); /** 0em */
  --text-body-sm-font-weight: var(--font-weight-regular); /** 400 */
  --text-body-sm-font-size: var(--size-sm); /** 14px */
  --text-body-sm-line-height: var(--leading-5); /** 20px */
  --text-body-sm-letter-spacing: var(--tracking-normal); /** 0em */
  --text-body-sm-strong-font-weight: var(--font-weight-semibold); /** 600 */
  --text-body-sm-strong-font-size: var(--size-sm); /** 14px */
  --text-body-sm-strong-line-height: var(--leading-5); /** 20px */
  --text-body-sm-strong-letter-spacing: var(--tracking-normal); /** 0em */
  --text-label-xl-font-weight: var(--font-weight-semibold); /** 600 */
  --text-label-xl-font-size: var(--size-lg); /** 18px */
  --text-label-xl-line-height: var(--leading-none-lg); /** 18px — leading-none */
  --text-label-xl-letter-spacing: var(--tracking-wide); /** 0.025em */
  --text-label-lg-font-weight: var(--font-weight-regular); /** 400 */
  --text-label-lg-font-size: var(--size-base); /** 16px */
  --text-label-lg-line-height: var(--leading-none-base); /** 16px — leading-none */
  --text-label-lg-letter-spacing: var(--tracking-normal); /** 0em */
  --text-label-lg-strong-font-weight: var(--font-weight-semibold); /** 600 */
  --text-label-lg-strong-font-size: var(--size-base); /** 16px */
  --text-label-lg-strong-line-height: var(--leading-none-base); /** 16px — leading-none */
  --text-label-lg-strong-letter-spacing: var(--tracking-normal); /** 0em */
  --text-label-md-font-weight: var(--font-weight-regular); /** 400 */
  --text-label-md-font-size: var(--size-sm); /** 14px */
  --text-label-md-line-height: var(--leading-none-sm); /** 14px — leading-none */
  --text-label-md-letter-spacing: var(--tracking-normal); /** 0em */
  --text-label-md-strong-font-weight: var(--font-weight-semibold); /** 600 */
  --text-label-md-strong-font-size: var(--size-sm); /** 14px */
  --text-label-md-strong-line-height: var(--leading-none-sm); /** 14px — leading-none */
  --text-label-md-strong-letter-spacing: var(--tracking-normal); /** 0em */
  --text-label-sm-font-weight: var(--font-weight-regular); /** 400 */
  --text-label-sm-font-size: var(--size-xs); /** 12px */
  --text-label-sm-line-height: var(--leading-none-xs); /** 12px — leading-none */
  --text-label-sm-letter-spacing: var(--tracking-normal); /** 0em */
  --text-label-sm-strong-font-weight: var(--font-weight-semibold); /** 600 */
  --text-label-sm-strong-font-size: var(--size-xs); /** 12px */
  --text-label-sm-strong-line-height: var(--leading-none-xs); /** 12px — leading-none */
  --text-label-sm-strong-letter-spacing: var(--tracking-normal); /** 0em */
  --text-caption-font-weight: var(--font-weight-regular); /** 400 */
  --text-caption-font-size: var(--size-xs); /** 12px */
  --text-caption-line-height: var(--leading-4); /** 16px */
  --text-caption-letter-spacing: var(--tracking-normal); /** 0em */
  --text-price-sm-font-size: var(--size-lg); /** 18px */
  --text-price-sm-line-height: var(--leading-none-lg); /** 18px — leading-none */
  --text-price-sm-font-weight: var(--font-weight-bold); /** 700 */
  --text-price-sm-letter-spacing: var(--tracking-normal); /** 0em */
  --text-price-md-font-size: var(--size-xl); /** 20px */
  --text-price-md-line-height: var(--leading-none-xl); /** 20px — leading-none */
  --text-price-md-font-weight: var(--font-weight-bold); /** 700 */
  --text-price-md-letter-spacing: var(--tracking-normal); /** 0em */
  --text-price-lg-font-size: var(--size-2xl); /** 24px */
  --text-price-lg-line-height: var(--leading-none-2xl); /** 24px — leading-none */
  --text-price-lg-font-weight: var(--font-weight-bold); /** 700 */
  --text-price-lg-letter-spacing: var(--tracking-normal); /** 0em */
  --text-price-lg-strong-font-size: var(--size-2xl); /** 24px */
  --text-price-lg-strong-line-height: var(--leading-none-2xl); /** 24px — leading-none */
  --text-price-lg-strong-font-weight: var(--font-weight-extrabold); /** 800 */
  --text-price-lg-strong-letter-spacing: var(--tracking-normal); /** 0em */
  --text-body-lg-strong-font-weight: var(--font-weight-semibold); /** 600 */
  --text-body-lg-strong-font-size: var(--size-lg); /** 18px */
  --text-body-lg-strong-line-height: var(--leading-6); /** 28px */
  --text-body-lg-strong-letter-spacing: var(--tracking-normal); /** 0em */
  --text-price-xs-font-size: var(--size-base); /** 16px */
  --text-price-xs-line-height: var(--leading-none-base); /** 18px — leading-none */
  --text-price-xs-font-weight: var(--font-weight-extrabold); /** 800 */
  --text-price-xs-letter-spacing: var(--tracking-normal); /** 0em */
  --text-body-md-strong-font-weight: var(--font-weight-semibold); /** 600 */
  --text-body-md-strong-font-size: var(--size-base); /** 16px */
  --text-body-md-strong-line-height: var(--leading-6); /** 24px */
  --text-body-md-strong-letter-spacing: var(--tracking-normal); /** 0em */
  --text-price-xl-strong-font-size: var(--size-3xl); /** 24px */
  --text-price-xl-strong-line-height: var(--leading-none-3xl); /** 24px — leading-none */
  --text-price-xl-strong-font-weight: var(--font-weight-extrabold); /** 800 */
  --text-price-xl-strong-letter-spacing: var(--tracking-normal); /** 0em */
  --text-label-xs-strong-font-weight: var(--font-weight-semibold); /** 600 */
  --text-label-xs-strong-font-size: var(--size-xxs); /** 12px */
  --text-label-xs-strong-line-height: var(--leading-none-xxs); /** 12px — leading-none */
  --text-label-xs-strong-letter-spacing: var(--tracking-normal); /** 0em */
  --badge-excellent: var(--color-fill-positive); /** Ai Match badge group colour */
  --badge-excellent-subtle: var(--color-fill-positive-subtle); /** Ai Match badge group colour */
  --badge-excellent-text: var(--color-feedback-success-text); /** Ai Match badge group colour */
  --badge-excellent-icon: var(--color-icon-dark); /** Ai Match badge group colour */
  --badge-good: var(--color-feedback-warning); /** Ai Match badge group colour */
  --badge-good-subtle: var(--color-feedback-warning-surface); /** Ai Match badge group colour */
  --badge-good-text: var(--color-feedback-warning-text); /** Ai Match badge group colour */
  --badge-mixed: var(--color-brand-alt-fill-active); /** Ai Match badge group colour */
  --badge-mixed-subtle: var(--color-data-ramp-5); /** Ai Match badge group colour */
  --badge-mixed-text: var(--color-feedback-info-text); /** Ai Match badge group colour */
  --badge-mixed-icon: var(--color-icon-dark); /** Ai Match badge group colour */
  --badge-weak: var(--color-fill-neutral); /** Ai Match badge group colour */
  --badge-weak-subtle: var(--color-fill-subtle); /** Ai Match badge group colour */
  --badge-default-fill: var(--color-fill-brand); /** Default badge fill — brand primary. */
  --badge-default-text: var(--color-brand-on-fill); /** Default badge text — white on brand fill. */
  --badge-admin-fill: var(--color-surface-default); /** Admin badge fill — neutral on white. */
  --badge-commission-fill: var(--color-fill-positive-subtle); /** Commission badge fill — subtle positive. */
  --badge-commission-text: var(--color-feedback-success-text); /** Commission badge text — default body text. */
  --badge-seller-type-fill: var(--color-fill-brand-alt); /** Seller type badge fill — secondary brand. */
  --badge-seller-type-text: var(--color-text-body); /** Seller type badge text — default body text. */
  --badge-aotd-fill: var(--color-fill-attention); /** Ad of the day badge fill — attention. */
  --badge-aotd-text: var(--color-text-headings); /** Ad of the day badge text — default body text. */
  --badge-new-fill: var(--color-fill-positive); /** New listing badge fill — positive. */
  --badge-new-text: var(--color-text-headings); /** New listing badge text — dark on positive fill. */
  --badge-promoted-fill: var(--color-fill-highlight); /** Promoted listing badge fill — highlight. */
  --badge-promoted-text: var(--color-text-headings); /** Promoted badge text — TBD. */
  --badge-tag-bg: var(--color-fill-neutral);
  --badge-tag-hover: var(--color-fill-neutral-strong);
  --footer-text-subtle: var(--color-text-subtle); /** Muted text on dark footer — copyright, metadata, secondary info */
  --footer-divider: var(--color-border-default); /** Divider line on dark footer — separates main footer from sub-footer */
  --footer-text-heading: var(--color-text-headings); /** Footer section headings on dark bg */
  --footer-text-link: var(--color-text-brand-alt); /** Footer link text on dark bg — readable but secondary to headings */
  --footer-background: var(--color-surface-subtle); /** Footer container background colour — base fill for the footer section across all brands. */
  --navigation-icon: var(--color-icon-brand-alt); /** Hamburger menu and utility icon colour — white on brand surfaces (IMMO/RDR), brand-alt on light surfaces (BRK). */
  --navigation-icon-hover: var(--color-icon-brand-alt-hover); /** Navigation icon hover state — tinted fill on pointer hover. */
  --navigation-background: var(--color-surface-default); /** Navigation bar background — brand surface (IMMO/RDR), white (BRK). */
  --navigation-link-fill-hover: var(--color-fill-none); /** Nav link background on hover — transparent (IMMO/BRK), tinted fill (RDR). */
  --navigation-link-text-hover: var(--color-text-brand); /** Nav link text hover state — inverse (IMMO), brand-coloured (RDR/BRK). */
  --navigation-link-text: var(--color-text-brand-alt); /** Nav link default text colour — inverse on brand bar (IMMO/RDR), brand-alt on light bar (BRK). */
  --navigation-focus-ring: var(--color-border-focus); /** Focus ring for nav links and interactive elements — inverse on brand bar, standard on light bar. */
  --navigation-link-underline-hover: var(--color-border-brand); /** Nav link underline on hover — inverse stroke (IMMO), hidden (RDR), brand stroke (BRK). */
  --navigation-button1-fill: var(--color-brand-fill); /** Primary nav button background — inverse/white on brand bar (IMMO/RDR), brand fill on light bar (BRK). */
  --navigation-button1-fill-hover: var(--color-brand-fill-hover); /** Primary nav button hover state — darkened fill on pointer hover. */
  --navigation-button1-fill-active: var(--color-brand-fill-active); /** Primary nav button active/pressed state — darkest fill for press feedback. */
  --navigation-button1-text: var(--color-brand-on-fill); /** Primary nav button label colour — brand-coloured on white button (IMMO/RDR), white on brand button (BRK). */
  --navigation-button1-text-active: var(--color-brand-on-fill); /** Primary nav button text on press — inverts to white (IMMO/RDR), stays on-fill (BRK). */
  --navigation-button2-fill: var(--color-brand-subtle-fill); /** Secondary nav button background — inverse/white (IMMO/RDR), subtle fill (BRK). */
  --navigation-button2-fill-hover: var(--color-brand-subtle-fill-hover); /** Secondary nav button hover state — darkened fill on pointer hover. */
  --navigation-button2-fill-active: var(--color-brand-subtle-fill-active); /** Secondary nav button active/pressed state — darkest fill for press feedback. */
  --navigation-button2-text: var(--color-text-inverse); /** Secondary nav button label colour — brand-coloured on white (IMMO/RDR), on-fill (BRK). */
  --navigation-button2-text-active: var(--color-brand-on-fill); /** Secondary nav button text on press — inverts to white on all brands. */
}
/* Tenant-specific CSS variable overrides — resolves to themes/{tenant}/css/overrides.css.
 * Loaded after @tokens so it can patch chain-collision values per tenant.
 * NOT inside tokens/ so Figma syncs never touch these files. */
/* BRK tenant overrides — add tenant-specific CSS variable patches here.
 * NOT inside tokens/ so Figma token syncs never touch this file. */
:root {
    --section-lazy-height: 500px;
    --color-finance-fill: transparent;
    --color-finance-fill-hover: transparent;
    --color-finance-fill-active: transparent;
    --color-finance-fill-dark: currentColor;
}
/* Home layout: sections own their vertical padding here, so cancel the
 * parent-level space-y-layout-block gap on Home/Index. Specificity (0,4,0)
 * beats Tailwind's utility (0,3,0) so source-order doesn't matter. */
.portal-homepage.space-y-layout-block > :not([hidden]) ~ :not([hidden]) {
    margin-top: 0;
}
/* Opt-in padding for Home sections that don't already bring py of their own.
 * IMO leaves this undefined so the class is a no-op there. */
.home-section-py {
    padding-top: var(--spacing-section-padding);
    padding-bottom: var(--spacing-section-padding);
}
/*
 * Search-map pin / cluster styles for the Inertia search page.
 *
 * Self-contained raw CSS — does NOT use @apply because the portal Tailwind
 * preset uses semantic tokens (e.g. `bg-primary-default`) that differ from
 * the legacy preset (`bg-primary`). Colors are inlined as literal IMO brand
 * values; if RAD/BRK rolls in later, they get tenant-scoped overrides.
 *
 * Mirrors the visual contract of `resources/css/theme/imo/leaflet-map.css`
 * (the legacy Livewire/Alpine map). Popup styles land in Phase 2.
 */
/*
 * Search-map pin / cluster styles for the Inertia search page.
 *
 * Portal preset reuses raw CSS (no @apply) because Tailwind utilities for
 * leaflet-injected DOM nodes don't survive class-list rewrites in Leaflet's
 * `_initIcon`. Brand-mapped colors come from portal semantic tokens (exposed
 * via Tailwind config as `var(--color-fill-brand)` etc.). Map-only colors
 * with no semantic equivalent (project-pin teal, hover green, personal-listing
 * orange, cluster bubble) live as scoped custom properties on `:root` so a
 * future tenant override only swaps the variables.
 */
:root {
    /*
     * Map-specific brand decisions that don't have a semantic token yet.
     * Tracking the legacy IMO theme verbatim until tokens grow to cover them.
     */
    --map-pin-personal-fill: #f5a623;
    --map-pin-project-fill: #29759b;
    --map-pin-project-fill-hover: #4196c2;
    --map-pin-hover-fill: #81c14b;
    --map-cluster-fill: rgba(6, 91, 109, 0.7);
}
/* ── Container ─────────────────────────────────────────────── */
.leaflet-container,
.leaflet-rrose-content,
.leaflet-bottom {
    font-family: Manrope, Roboto, system-ui, BlinkMacSystemFont, -apple-system, 'Segoe UI', Oxygen,
        Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif !important;
}
.leaflet-container {
    z-index: 40;
}
.leaflet-container:focus,
.leaflet-container:focus-visible {
    outline: none;
}
/* Hide Leaflet's tile-server attribution ribbon. Brand decision matches legacy. */
.leaflet-control-attribution.leaflet-control {
    display: none !important;
}
/* ── Listing pins ─────────────────────────────────────────────
 * Each pin is a DivIcon: an anchored block with `.icon-wp` inside as the
 * visible bubble. The `:before` pseudo paints the pointer triangle below.
 *
 * Width is set inline by the marker factory (text-length scaled). Height,
 * background, color, and triangle live here.
 */
.listing-icon,
.project-icon {
    pointer-events: none;
    display: flex !important;
    justify-content: center !important;
    align-items: flex-end !important;
}
.listing-icon .icon-wp,
.project-icon .icon-wp {
    pointer-events: none;
}
.listing-icon .icon-wp {
    background: var(--color-fill-brand);
    color: var(--color-text-inverse);
    border-radius: 6px;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60%;
    height: calc(70% - 6px);
    margin-bottom: 4px;
    font-size: 80%;
}
/*
 * Triangle pointer — anchors to the Leaflet marker wrapper's bottom edge
 * (NOT icon-wp's). Because icon-wp has no `position: relative`, the `:before`
 * pseudo's `position: absolute` resolves up to the Leaflet marker wrapper,
 * which is the iconSize box. icon-wp sits in the upper portion of that box
 * (height < 100%, plus mb-4px), and the pointer fills the gap below.
 */
.listing-icon .icon-wp:before {
    content: '';
    display: block;
    width: 0;
    height: 0;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    border-style: solid;
    border-color: var(--color-fill-brand) transparent transparent transparent;
    border-width: 6px 4px 0 4px;
}
.listing-icon .icon-wp .dot {
    width: 8px;
    height: 8px;
    background: var(--color-text-inverse);
    border-radius: 9999px;
}
/* Agency (personal) — orange tint to distinguish own listings on the map */
.listing-icon.personal .icon-wp {
    background: var(--map-pin-personal-fill);
}
.listing-icon.personal .icon-wp:before {
    border-top-color: var(--map-pin-personal-fill);
}
/* ── Tier z-index helpers ─────────────────────────────────────
 * The marker factory bakes z-index via `zIndexOffset` on the L.marker
 * options, so these tier classes only carry visual variants. Background
 * stays the same brand red across regular/starter/top/promoted; we keep
 * the classnames so future tier-specific styling can grow here.
 */
.pin-regular,
.pin-starter,
.pin-top-listing,
.pin-top-listing-s,
.pin-ad-of-the-day {
    /* shared — no-op today, hook for future variants */
}
/* Hover state — toggled by `.hover` class in marker factory + Phase 2 sync. */
.listing-icon.hover,
.leaflet-container .listing-icon:focus {
    color: var(--color-text-inverse);
    z-index: 9999 !important;
}
.listing-icon.hover .icon-wp,
.leaflet-container .listing-icon:focus .icon-wp {
    background: var(--map-pin-hover-fill);
    color: var(--color-text-inverse);
}
.listing-icon.hover .icon-wp:before,
.leaflet-container .listing-icon:focus .icon-wp:before {
    border-top-color: var(--map-pin-hover-fill);
}
@media (min-width: 1024px) {
    .leaflet-container .listing-icon:hover {
        color: var(--color-text-inverse);
        z-index: 9999 !important;
    }

    .leaflet-container .listing-icon:hover .icon-wp {
        background: var(--map-pin-hover-fill);
        color: var(--color-text-inverse);
    }

    .leaflet-container .listing-icon:hover .icon-wp:before {
        border-top-color: var(--map-pin-hover-fill);
    }
}
/* ── Project pins ─────────────────────────────────────────────
 * Larger blue rounded marker — `.icon-wp` holds the SVG building icon.
 */
.project-icon .icon-wp {
    background: var(--map-pin-project-fill);
    color: var(--color-text-inverse);
    padding: 5px;
    border-radius: 9999px;
    text-align: center;
    display: flex !important;
    justify-content: center;
    align-items: center;
    width: 75%;
    height: 60%;
    margin-bottom: 7px;
}
.project-icon .icon-wp:before {
    content: '';
    display: block;
    width: 0;
    height: 0;
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    border-style: solid;
    border-color: var(--map-pin-project-fill) transparent transparent transparent;
    border-width: 14px 11px 0 11px;
}
.project-icon.hover,
.leaflet-container .project-icon:hover {
    z-index: 9999 !important;
}
.project-icon.hover .icon-wp,
.leaflet-container .project-icon:hover .icon-wp {
    background: var(--map-pin-project-fill-hover);
}
.project-icon.hover .icon-wp:before,
.leaflet-container .project-icon:hover .icon-wp:before {
    border-top-color: var(--map-pin-project-fill-hover);
}
/* ── Cluster bubbles ──────────────────────────────────────────
 * Server clusters render as a count circle. Three sizes by `cluster_dimension`.
 */
.cluster {
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
    z-index: 0 !important;
    border-radius: 9999px;
    color: var(--color-text-inverse);
    font-size: 12px;
    font-weight: 700;
    display: flex;
    justify-content: center;
    align-items: center;
    background: var(--map-cluster-fill);
    cursor: pointer;
    transition: transform 0.15s ease;
}
.cluster:hover {
    transform: scale(1.15);
}
.cluster,
.cluster.small {
    width: 38px;
    height: 38px;
    margin-left: -19px;
    margin-top: -19px;
}
.cluster.medium {
    width: 40px;
    height: 40px;
    margin-left: -20px;
    margin-top: -20px;
    font-size: 12px;
}
.cluster.large {
    width: 56px;
    height: 56px;
    margin-left: -28px;
    margin-top: -28px;
    font-size: 14px;
}
/* ── Zoom controls ─────────────────────────────────────────── */
.leaflet-control-zoom.leaflet-bar {
    margin-right: 1rem;
    margin-bottom: 7rem;
    padding: 0 0.25rem;
    border-radius: 0.5rem;
    border: 1px solid var(--color-border-default);
    background: var(--color-surface-default);
    overflow: hidden;
}
@media (min-width: 1280px) {
    .leaflet-control-zoom.leaflet-bar {
        margin-right: 0.75rem;
        margin-bottom: 1.25rem;
        border: 0;
        background: transparent;
    }
}
.leaflet-control-zoom.leaflet-bar a,
.leaflet-touch .leaflet-control-zoom.leaflet-bar a {
    width: 26px;
    height: 40px;
    color: var(--color-text-brand-alt);
    font-weight: 600;
    background: var(--color-surface-default) !important;
    border-bottom: 1px solid var(--color-border-default);
    border-radius: 0 !important;
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 0;
}
.leaflet-control-zoom.leaflet-bar a::before,
.leaflet-touch .leaflet-control-zoom.leaflet-bar a::before {
    display: block;
    width: 1rem;
    height: 1rem;
    background-color: currentColor;
    content: '';
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}
.leaflet-control-zoom.leaflet-bar .leaflet-control-zoom-in::before {
    -webkit-mask-image: url('/theme/brk/portal/assets/map-plus-p7vPoidc.svg');
    mask-image: url('/theme/brk/portal/assets/map-plus-p7vPoidc.svg');
}
.leaflet-control-zoom.leaflet-bar .leaflet-control-zoom-out::before {
    -webkit-mask-image: url('/theme/brk/portal/assets/map-minus-BUjfzGAF.svg');
    mask-image: url('/theme/brk/portal/assets/map-minus-BUjfzGAF.svg');
}
@media (min-width: 1280px) {
    .leaflet-control-zoom.leaflet-bar a,
    .leaflet-touch .leaflet-control-zoom.leaflet-bar a {
        width: 50px;
        height: 50px;
        border: 0;
        border-radius: 0.375rem !important;
    }

    /*
     * Visually separate the + and − pills at desktop breakpoints. Leaflet
     * stacks them inside `.leaflet-bar` without a gap; rather than pulling
     * in flex (which would require restructuring the control), space them
     * with a margin on the upper button.
     */
    .leaflet-control-zoom.leaflet-bar .leaflet-control-zoom-in {
        margin-bottom: 0.5rem;
    }
}
.leaflet-control-zoom.leaflet-bar a.leaflet-disabled {
    color: var(--color-text-disabled);
}
@media (min-width: 1280px) {
    .leaflet-control-zoom.leaflet-bar a.leaflet-disabled {
        background: var(--color-fill-disabled) !important;
    }
}
/* ── Rrose popup chrome ───────────────────────────────────────
 * Direction-aware popup; wrapper holds the content, tip-container holds the
 * triangle. Phase 2 Vue popups (MapListingPopup, MapProjectPopup) provide the
 * inner card chrome — these styles only set the popup positioning shell.
 */
.leaflet-rrose {
    position: absolute;
    text-align: center;
}
.leaflet-rrose-content-wrapper {
    background: var(--color-surface-default);
    border-radius: 12px;
    box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4);
    overflow: hidden;
}
.leaflet-rrose-content {
    margin: 0;
    line-height: 1.4;
    text-align: left;
}
.leaflet-rrose-tip-container {
    width: 40px;
    height: 16px;
    position: relative;
    overflow: hidden;
    margin: 0 auto;
}
.leaflet-rrose-tip {
    width: 16px;
    height: 16px;
    background: var(--color-surface-default);
    box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4);
    transform: rotate(45deg);
    /* `n` default — pull the rotated diamond up so its lower triangle peeks
       below the wrapper, pointing DOWN to the pin. */
    margin: -8px auto 0;
}
/*
 * Tip-container layout per popup direction.
 *
 * `n*`: tip-container is appended after the wrapper (renders BELOW). Pull it
 * up by half the tip's height so the diamond's lower triangle overlaps the
 * wrapper bottom edge — the visible apex points DOWN to the pin.
 *
 * `s*`: tip-container is appended before the wrapper (renders ABOVE). It
 * already sits at the popup top with no overlap needed; the visible triangle
 * is produced by pushing the rotated diamond DOWN within the 16px clip box
 * (see `.leaflet-rrose-tip-s*` overrides below) so the upper triangle peeks
 * out — apex points UP to the pin.
 */
.leaflet-rrose-tip-container-n,
.leaflet-rrose-tip-container-ne,
.leaflet-rrose-tip-container-nw {
    margin-top: -8px;
}
/*
 * Corner-anchored popups (`ne`, `nw`, `se`, `sw`): the popup pivots from
 * one of its bottom/top corners, not its center, so the tip-container has
 * to align with that corner instead of the default `margin: 0 auto`. Pin
 * sits at the popup's near corner — the tip points toward it.
 *
 *   nw  → popup extends LEFT, pin at bottom-RIGHT → tip pinned to RIGHT.
 *   ne  → popup extends RIGHT, pin at bottom-LEFT → tip pinned to LEFT.
 *   sw  → popup extends LEFT, pin at top-RIGHT    → tip pinned to RIGHT.
 *   se  → popup extends RIGHT, pin at top-LEFT    → tip pinned to LEFT.
 */
.leaflet-rrose-tip-container-nw,
.leaflet-rrose-tip-container-sw {
    margin-left: auto;
    margin-right: 0;
}
.leaflet-rrose-tip-container-ne,
.leaflet-rrose-tip-container-se {
    margin-left: 0;
    margin-right: auto;
}
.leaflet-rrose-tip-s,
.leaflet-rrose-tip-se,
.leaflet-rrose-tip-sw {
    margin: 8px auto 0;
}
.leaflet-rrose-close-button {
    position: absolute;
    /*
     * Anchor outside the popup wrapper's top-right corner so it doesn't
     * collide with in-popup chrome (favourite button, agency logo). The
     * vertical position is mode-aware: in `n*` the wrapper is the
     * container's top child (`top: -8px` lifts the badge just above the
     * corner); in `s*` the tip-container takes 16px above the wrapper, so
     * the badge slides down to sit at the same visible offset.
     */
    top: -8px;
    right: -12px;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-surface-default);
    color: var(--color-text-subtle);
    border-radius: 9999px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
    text-decoration: none;
    z-index: 10;
    font-size: 18px;
    line-height: 1;
}
/* `s*` close-button override (`top: 8px`) was here to compensate for the
 * 16px tip-container that sits above the wrapper in south-anchored
 * popups. Now that the tip-container is `display: none` for both popup
 * types, the wrapper top IS the rrose container top in every position,
 * so the default `top: -8px` from `.leaflet-rrose-close-button` works
 * uniformly — no override needed. */
.leaflet-rrose-close-button:hover {
    color: var(--color-text-body);
}
/* Anchor wrappers for the Vue popups so Rrose's inner shadow doesn't double
 * up. The wrapper's bg/border-radius/shadow are all zeroed out because
 * Leaflet's `_updateLayout` adds 1px to the wrapper width — if the
 * wrapper had its own white bg, that 1px would peek through the right
 * edge of the gray project popup header. The inner Vue popup component
 * owns the rounded bg + drop shadow. */
.listing-popup__main-container .leaflet-rrose-content-wrapper,
.project-card__listings__main-container .leaflet-rrose-content-wrapper {
    padding: 0;
    background: transparent;
    border-radius: 0;
    box-shadow: none;
}
.listing-popup__main-container .leaflet-rrose-content,
.project-card__listings__main-container .leaflet-rrose-content {
    margin: 0;
    width: auto;
}
/* Drop the Rrose down/up tip on both listing and project popups — the
 * popup hugs the pin at the corner closest to it (border-radius: 0 on
 * that corner, see below) so the arrow would just be visual noise. */
.listing-popup__main-container .leaflet-rrose-tip-container,
.listing-popup__main-container .leaflet-rrose-tip,
.project-card__listings__main-container .leaflet-rrose-tip-container,
.project-card__listings__main-container .leaflet-rrose-tip {
    display: none;
}
/* Edge-anchored listing popups visually merge with the pin: the corner of
 * the popup nearest the pin has its border-radius zeroed out so the
 * popup chrome flows into the pin instead of leaving a gap. Mirrors the
 * legacy listing-popup design. */
.leaflet-rrose-nw .map-popup--listing,
.leaflet-rrose-nw .map-popup--loading {
    border-bottom-right-radius: 0;
}
.leaflet-rrose-ne .map-popup--listing,
.leaflet-rrose-ne .map-popup--loading {
    border-bottom-left-radius: 0;
}
.leaflet-rrose-sw .map-popup--listing,
.leaflet-rrose-sw .map-popup--loading {
    border-top-right-radius: 0;
}
.leaflet-rrose-se .map-popup--listing,
.leaflet-rrose-se .map-popup--loading {
    border-top-left-radius: 0;
}
/* Position the close button half-overlapping the popup's top-right corner
 * — the circle reads as a badge floating off the corner. Earlier this
 * caused a white seam against the gray header, but with the wrapper bg
 * now transparent and the inner Vue popup carrying its own bg, the button
 * sits cleanly over the rounded corner without bleeding. */
.listing-popup__main-container .leaflet-rrose-close-button,
.project-card__listings__main-container .leaflet-rrose-close-button {
    right: -12px;
}
/* Listing pin hover tooltip — "Locație exactă" / "Locație aproximativă".
 * Bound via Leaflet's `bindTooltip` in `usePinPipeline.attachListingClick`.
 * Mirrors the legacy `.marker_tooltip` rule from
 * `resources/css/theme/imo/leaflet-map.css:63`. */
.marker_tooltip {
    padding: 0.75rem 1rem;
    font-size: 0.75rem;
    line-height: 1rem;
    color: #54646e;
}
/* ── Cards-pane hover highlight ──────────────────────────────
 * Companion to map → card hover sync. The map drops a transient marker into
 * `activeLayerGroup`; here we give the card a matching outline.
 */
.is-hovered-from-map {
    outline: 2px solid var(--map-pin-hover-fill);
    outline-offset: 2px;
    border-radius: 1rem;
}
/* ── Polygon draw cursor ─────────────────────────────────────
 * leaflet-freedraw adds the `mode-create` class to the map container while
 * in CREATE mode but does NOT add Leaflet's own `leaflet-crosshair` class —
 * so the default `cursor: crosshair` rule from leaflet.css doesn't kick in.
 * We pin the cursor directly off `mode-create` to match the legacy site,
 * where the cursor flips to crosshair the moment the user clicks "Draw area".
 */
.leaflet-container.mode-create,
.leaflet-container.mode-create .leaflet-interactive {
    cursor: crosshair;
}
/* ── Polygon edit handles ────────────────────────────────────
 * leaflet-editable renders vertex + midpoint handles as `.leaflet-div-icon`
 * with the `.leaflet-vertex-icon` / `.leaflet-middle-icon` modifier classes.
 * Defaults are a 12px white square with a 1px border; we override to match
 * the legacy site's solid teal 16px circles (resources/css/main.css:848).
 * The negative margins center the handle on its lat/lng anchor (half the
 * 16px width/height). Midpoint markers keep their inline `opacity: 0.5`
 * (set by leaflet-editable) so they read as faded insertion handles.
 */
.leaflet-div-icon.leaflet-vertex-icon,
.leaflet-div-icon.leaflet-middle-icon {
    background-color: #048ba8;
    border-radius: 100%;
    border: none;
    width: 16px !important;
    height: 16px !important;
    margin-left: -8px !important;
    margin-top: -8px !important;
}
/*
 * CSS-only design primitives (links, …) — see the file header. Kept separate
 * from this file's typography / button / input component classes so the
 * "elements" infrastructure has one obvious home to grow into.
 */
/*
 * ── Elements ───────────────────────────────────────────────────────────────
 * CSS-only design primitives: things whose entire job is a handful of token
 * utilities + a couple of state rules, with a DOM so trivial that a Vue
 * component (props, slots, an init cost) would be pure overhead.
 *
 * Consume them as a class on a plain element — `<a class="link">`,
 * `<a class="link-brand link-brand-md">` — exactly like Tailwind's own
 * component utilities. No import, no registration, no runtime.
 *
 * Rules for this file:
 *   • Compose ONLY token-backed utilities via @apply (never raw var(--…)).
 *   • Keep each element a single, self-contained block with its state rules.
 *   • If an element needs slots, conditional markup, or JS state, it does NOT
 *     belong here — promote it to components/base/ as a Vue component.
 *
 * Loaded via @import from main.css; the @layer components wrapper lets Tailwind
 * sort these into the components layer regardless of import position.
 */
/*
 * Back-compat token var for upstream Search/ui components authored before the
 * surface→fill rename. A handful of raw `var(--color-surface-brand)` refs (focus
 * rings) survive in merged upstream code; the token repo no longer emits that var,
 * so we alias it onto the renamed brand-fill var. Resolves per-tenant. Tailwind
 * utility equivalents live in packages/theme/tailwind.config.ts (surface.*).
 */
:root {
    --color-surface-brand: var(--color-brand-fill);
}
/*
 * NOTE: the semantic rounded.* tokens shadow same-named primitives in IMO/RAD.
 * Fixed at build time (2026-06-12): fixSelfReferences in packages/theme pins
 * shadowed primitive references to their values, so --rounded-base/-xs/-lg
 * resolve per the designer descriptions (8/4/12px) on every brand.
 */
/*
 * NOTE: --shadow-sm primitive differs from Figma.
 * Generated: 0px 1px 2px rgba(0,0,0,0.06), 0px 1px 3px rgba(0,0,0,0.1)
 * Figma:     0px 1px 2px rgba(0,0,0,0.04), 0px 2px 6px rgba(0,0,0,0.06)
 * TODO: fix upstream in the token primitives.
 */
:root {
    --shadow-sm: 0px 1px 2px 0px rgba(0, 0, 0, 0.04), 0px 2px 6px 0px rgba(0, 0, 0, 0.06);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;

    /*
     * Inject Manrope-Fallback into heading and body stacks so the browser swaps
     * from a size-adjusted Arial to Manrope without any layout shift.
     * Overrides the token values (which contain only 'Manrope') set by @import '@tokens'.
     * --text-font-family-display is intentionally excluded: IMO overrides it to
     * Unbounded via @tenant-overrides, and that declaration must not be clobbered.
     */
    --text-font-family-heading: 'Manrope', 'Manrope-Fallback';
    --text-font-family-body: 'Manrope', 'Manrope-Fallback';

    /*
     * Style Dictionary strips the alpha channel from rgba(0,0,0,0), outputting
     * #000000 instead of transparent. All three tenants are affected.
     * TODO: fix upstream in the Style Dictionary pipeline.
     */
    --color-utility-transparent: transparent;

    /*
     * Responsive page gutter: maps to the page-margin design token at each
     * breakpoint (16px mobile, 32px tablet). At desktop the container's
     * max-width + auto-margins provide the 120px inset, so 32px is enough.
     * Consumed via Tailwind utility: px-page-gutter.
     */
    --spacing-page-gutter: var(--spacing-layout-page-margin-mobile, 1rem);

    /*
     * Responsive section padding: maps to the section-padding design token
     * (24px mobile/tablet, 32px desktop). Consumed via Tailwind: py-layout-section-padding.
     */
    --spacing-section-padding: var(--spacing-layout-section-padding-mobile, 1.5rem);

    /*
     * Responsive section gap: maps to the section-gap design token
     * (48px mobile/tablet, 64px desktop). Consumed via Tailwind: pb-layout-section-gap.
     */
    --spacing-section-gap: var(--spacing-layout-section-gap-mobile, 3rem);
}
/* Responsive layout variable breakpoints */
@media (min-width: 768px) {
    :root {
        --spacing-page-gutter: var(--spacing-layout-page-margin-tablet, 2rem);
    }
}
@media (min-width: 1024px) {
    :root {
        --spacing-section-padding: var(--spacing-layout-section-padding-desktop, 2rem);
        --spacing-section-gap: var(--spacing-layout-section-gap-desktop, 4rem);
    }
}
*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}
::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}
/* ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com */
/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/
*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}
::before,
::after {
  --tw-content: '';
}
/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/
html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}
/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/
body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}
/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/
hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}
/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/
abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}
/*
Remove the default font size and weight for headings.
*/
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}
/*
Reset links to optimize for opt-in styling instead of opt-out.
*/
a {
  color: inherit;
  text-decoration: inherit;
}
/*
Add the correct font weight in Edge and Safari.
*/
b,
strong {
  font-weight: bolder;
}
/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}
/*
Add the correct font size in all browsers.
*/
small {
  font-size: 80%;
}
/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/
table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}
/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/
button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}
/*
Remove the inheritance of text transform in Edge and Firefox.
*/
button,
select {
  text-transform: none;
}
/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/
button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}
/*
Use the modern Firefox focus style for all focusable elements.
*/
:-moz-focusring {
  outline: auto;
}
/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/
:-moz-ui-invalid {
  box-shadow: none;
}
/*
Add the correct vertical alignment in Chrome and Firefox.
*/
progress {
  vertical-align: baseline;
}
/*
Correct the cursor style of increment and decrement buttons in Safari.
*/
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}
/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/
[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}
/*
Remove the inner padding in Chrome and Safari on macOS.
*/
::-webkit-search-decoration {
  -webkit-appearance: none;
}
/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}
/*
Add the correct display in Chrome and Safari.
*/
summary {
  display: list-item;
}
/*
Removes the default spacing and border for appropriate elements.
*/
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;
}
/*
Reset default styling for dialogs.
*/
dialog {
  padding: 0;
}
/*
Prevent resizing textareas horizontally by default.
*/
textarea {
  resize: vertical;
}
/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/
input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}
input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}
/*
Set the default cursor for buttons.
*/
button,
[role="button"] {
  cursor: pointer;
}
/*
Make sure disabled buttons don't get the pointer cursor.
*/
:disabled {
  cursor: default;
}
/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/
img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}
/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/
img,
video {
  max-width: 100%;
  height: auto;
}
/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}
* {
  scrollbar-color: initial;
  scrollbar-width: initial;
}
.\!container {
  width: 100% !important;
}
.container {
  width: 100%;
}
@media (min-width: 640px) {
  .\!container {
    max-width: 640px !important;
  }
  .container {
    max-width: 640px;
  }
}
@media (min-width: 768px) {
  .\!container {
    max-width: 768px !important;
  }
  .container {
    max-width: 768px;
  }
}
@media (min-width: 1024px) {
  .\!container {
    max-width: 1024px !important;
  }
  .container {
    max-width: 1024px;
  }
}
@media (min-width: 1280px) {
  .\!container {
    max-width: 1280px !important;
  }
  .container {
    max-width: 1280px;
  }
}
@media (min-width: 1536px) {
  .\!container {
    max-width: 1536px !important;
  }
  .container {
    max-width: 1536px;
  }
}
/* ── Link · simple (Figma: SimpleLinks 6215:8814) ───────────────────────
     * Plain text link. Underlines on hover, darkens to the headings colour
     * while pressed, and shows a visible focus ring for keyboard users
     * (WCAG 2.4.7). `.simple-link` is the original alias and stays identical.
     *
     * Figma → token utility:
     *   text       text/label-md, color/text/body        → text-label-md text-text-body
     *   hover      underline (colour unchanged)           → hover:underline
     *   pressed    color/text/headings                    → active:text-text-headings
     *   focus      2px color/border/focus, rounded/base   → ring-2 ring-border-focus + rounded-base
     */
.\!link {
        font-weight: var(--text-label-md-font-weight);
        font-size: var(--text-label-md-font-size);
        line-height: var(--text-label-md-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-md-letter-spacing);
        color: var(--color-text-body);
        transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 200ms;
    }
.\!link:hover {
  -webkit-text-decoration-line: underline;
          text-decoration-line: underline;
}
.\!link:active {
  color: var(--color-text-headings);
}
.link,
    .simple-link {
        font-weight: var(--text-label-md-font-weight);
        font-size: var(--text-label-md-font-size);
        line-height: var(--text-label-md-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-md-letter-spacing);
        color: var(--color-text-body);
        transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 200ms;
    }
.link:hover,
    .simple-link:hover {
  -webkit-text-decoration-line: underline;
          text-decoration-line: underline;
}
.link:active,
    .simple-link:active {
  color: var(--color-text-headings);
}
.\!link:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: var(--color-border-focus);
  --tw-ring-offset-width: 2px;
}
.link:focus-visible,
    .simple-link:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: var(--color-border-focus);
  --tw-ring-offset-width: 2px;
}
.\!link:focus-visible {
        border-radius: var(--rounded-base) !important;
    }
.link:focus-visible,
    .simple-link:focus-visible {
        border-radius: var(--rounded-base);
    }
/* ── Link · brand (Figma: BrandLinks 6225:9578) ─────────────────────────
     * Teal SemiBold link. Two sizes: default = sm (label-md-strong / 14px);
     * add `.link-brand-md` for the 16px size (label-lg-strong). Colour shifts
     * through the brand-alt text scale on hover / pressed; same focus ring.
     *
     * Figma → token utility:
     *   text sm    text/label-md-strong                   → text-label-md-strong
     *   text md    text/label-lg-strong                   → .link-brand-md → text-label-lg-strong
     *   default    color/brand-alt/text     #0b778e       → text-brand-alt-text
     *   hover      color/brand-alt/text-hover #03687e     → hover:text-brand-alt-text-hover
     *   pressed    color/brand-alt/text-active #145065    → active:text-brand-alt-text-active
     *   focus      2px color/border/focus, rounded/base   → ring-2 ring-border-focus + rounded-base
     */
.link-brand {
        font-weight: var(--text-label-md-strong-font-weight);
        font-size: var(--text-label-md-strong-font-size);
        line-height: var(--text-label-md-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-md-strong-letter-spacing);
        color: var(--color-brand-alt-text);
        transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 200ms;
    }
.link-brand:hover {
  color: var(--color-brand-alt-text-hover);
}
.link-brand:active {
  color: var(--color-brand-alt-text-active);
}
.link-brand-md {
        font-weight: var(--text-label-lg-strong-font-weight);
        font-size: var(--text-label-lg-strong-font-size);
        line-height: var(--text-label-lg-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-lg-strong-letter-spacing);
    }
.link-brand:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: var(--color-border-focus);
  --tw-ring-offset-width: 2px;
        border-radius: var(--rounded-base);
}
/* ── Link · brand, colour-only (legacy companion) ───────────────────────
     * The brand-alt colour + state scale WITHOUT baked typography, so callers
     * can pair it with any label size (`text-label-lg-strong link-secondary`).
     * Pre-dates `.link-brand`; kept for the existing call sites. Reach for
     * `.link-brand` for new self-contained links.
     */
.link-secondary {
  color: var(--color-brand-alt-text);
}
.link-secondary:hover {
  color: var(--color-brand-alt-text-hover);
}
.link-secondary:focus-visible {
  border-radius: var(--rounded-base);
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: var(--color-border-focus);
  --tw-ring-offset-width: 2px;
}
.link-secondary:active {
  color: var(--color-brand-alt-text-active);
}
/* ── Badge (Figma: Badge 6683:21800 · Recommendation 7118:4175 ·
     *          Calculator 7197:4722) ─────────────────────────────────────────
     * A static pill label. `.badge` is the shape + SemiBold-12 typography;
     * a colour modifier sets the fill + text. An optional icon is supplied by
     * the consumer as a direct <svg> child — auto-sized to 16px — placed BEFORE
     * the label (icon-left) or AFTER it (icon-right). The icon side tightens its
     * padding to spacing/sm automatically (see the :has rules below).
     *
     * Figma → token utility (all variants share py-xs, rounded-full, gap-sm,
     * text/label-sm-strong; px-md, tightened to pl/pr-sm on the icon side):
     *   new       bg badge/new-fill, badge/new-text       → bg-badge-new-fill text-badge-new-text
     *   neutral   bg badge/tag-bg, text/headings          → bg-badge-tag-bg text-text-headings
     *   brand     bg fill/brand #e71e41, text/inverse     → bg-fill-brand text-text-inverse
     *   finance          bg finance/finance-fill #c2e681, finance-fill-dark #046 text → bg-finance-finance-fill text-finance-finance-fill-dark (icon: check-circle)
     *   finance-eligible white fill, finance-fill-dark #046 text → bg-surface-default text-finance-finance-fill-dark (icon: shield-tick)
     *   energy    bg badge/default-fill #e71e41, badge/default-text white → bg-badge-default-fill text-badge-default-text (trailing icon: lightning-01)
     *   outline   white fill, border/default, text/subtle, Regular-12 (listing info pill)
     */
/* min-h-6 (24px) pins every badge to the Figma badge height (all ListingBadge
     * variants are 24px — metadata 6683:21777) so a text-only pill and an
     * icon-bearing pill (e.g. the AI-match badge, whose 16px glyph would
     * otherwise make it taller) line up on the same row. The two 17px-tall
     * variants (.badge-new, .badge-admin) opt back out below. */
.badge {
        font-weight: var(--text-label-sm-strong-font-weight);
        font-size: var(--text-label-sm-strong-font-size);
        line-height: var(--text-label-sm-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-sm-strong-letter-spacing);
        display: inline-flex;
        min-height: 1.5rem;
        align-items: center;
        justify-content: center;
        gap: var(--spacing-sm);
        border-radius: 9999px;
        padding-left: var(--spacing-md);
        padding-right: var(--spacing-md);
        padding-top: var(--spacing-xs);
        padding-bottom: var(--spacing-xs);
    }
.badge > svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}
/* Icon-side padding (Figma Pill): the side carrying an icon tightens to
     * spacing/sm (6px); the text side stays spacing/md (8px). A leading <svg>
     * (icon-left) tightens the left, a trailing <svg> (icon-right) the right —
     * driven by :has, so the consumer only controls markup order. */
.badge:has(> svg:first-child) {
  padding-left: var(--spacing-sm);
}
.badge:has(> svg:last-child) {
  padding-right: var(--spacing-sm);
}
.badge-new {
  min-height: 0px;
  background-color: var(--badge-new-fill);
  color: var(--badge-new-text);
}
.badge-neutral {
  background-color: var(--badge-tag-bg);
  color: var(--color-text-headings);
}
.badge-brand {
  background-color: var(--color-fill-brand);
  color: var(--color-text-inverse);
}
/* Finance / mortgage-calculator badges (Figma BadgeFinance 8172:64810):
     *   finance           "În Buget" — green finance fill, navy finance text, leading check-circle.
     *   finance-eligible  "Eligibil" — white fill, navy finance text, leading shield-tick (8180:70534).
     * Fill/text use the double-prefixed finance-finance-* utilities: the Figma group is
     * `finance/finance-*`, and ONLY those resolve in the token pipeline — the single-prefix
     * `--color-finance-fill*` vars are not generated (an old alias), so the previous
     * `bg-finance-fill`/`text-finance-fill-dark` here resolved to nothing. */
.badge-finance {
  background-color: var(--color-finance-finance-fill);
  color: var(--color-finance-finance-fill-dark);
}
.badge-finance-eligible {
  background-color: var(--color-surface-default);
  color: var(--color-finance-finance-fill-dark);
}
/* Energy / top-listing badge (Figma BadgeEnergy 8178:69973) — brand-default fill
     * + white text, with a TRAILING lightning-01 icon (icon-right): "Anunț Top"
     * (top listing) and "Energie A" (energy rating). */
.badge-energy {
  background-color: var(--badge-default-fill);
  color: var(--badge-default-text);
}
/* Outlined metadata pill (Figma: ListingInfoPill 5939:20) — white fill, 1px
     * border/default, subtle text. Only the weight is dropped to Regular (quiet
     * metadata); the base badge's min-h-6 holds it at the same 24px height as a
     * sibling badge so they align on a card. Used for room count / surface / project. */
.badge-outline {
  border-width: var(--border-width-default);
  border-color: var(--color-border-default);
  background-color: var(--color-surface-default);
  font-weight: 400;
  color: var(--color-text-subtle);
}
/* ── Listing badges (Figma: ListingBadge 6683:21777) ────────────────────
     * The badge variants that appear on listing cards, each backed by a
     * `--badge-*` component token (tokens/component-tokens/{brand}/components/
     * badge.tokens.json) so the fill/text resolve per brand. Same `.badge`
     * shape; only the colour pair changes.
     *
     * Figma → token utility:
     *   promoted     bg badge/promoted-fill, badge/promoted-text   (highlight)
     *   aotd         bg badge/aotd-fill, badge/aotd-text           (attention gold)
     *   commission   bg badge/commission-fill, badge/commission-text
     *   seller-type  bg badge/seller-type-fill, badge/seller-type-text
     */
.badge-promoted {
  background-color: var(--badge-promoted-fill);
  color: var(--badge-promoted-text);
}
.badge-aotd {
  background-color: var(--badge-aotd-fill);
  color: var(--badge-aotd-text);
}
.badge-commission {
  background-color: var(--badge-commission-fill);
  color: var(--badge-commission-text);
}
.badge-seller-type {
  background-color: var(--badge-seller-type-fill);
  color: var(--badge-seller-type-text);
}
/* admin/SLA badge (Figma BadgeAdmin 8172:64873) — white fill over the image,
     * brand-alt text ("000000000 SLA"). border is color/border/none (transparent).
     * 17px-tall in Figma, so min-h-0 opts out of the base .badge 24px floor. */
.badge-admin {
  min-height: 0px;
  background-color: var(--badge-admin-fill);
  color: var(--color-text-brand-alt);
}
/* ── AI match badge (Figma: BadgeAiMatch 8248:101465) ───────────────────
     * The AI "match quality" pill shown over the listing image (BadgeSlotA).
     * Same `.badge` shape (rounded-full, px-md py-xs, gap-md, label-sm-strong)
     * plus a left→right gradient, a 1px white (border/inverse) ring and
     * UPPERCASE copy. The leading stars-02 glyph is a consumer-supplied <svg>
     * child — auto-sized to 16px and inherits the tier's text colour. Tiers:
     *   good   warning → warning-surface,        text warning-text   (amber)
     *   mixed  brand-alt/fill-active → data-ramp-5, text info-text    (teal)
     *   weak   fill/neutral → fill/subtle,        text headings       (grey)
     * NOTE (Figma↔token gap): color/feedback/warning-surface (#fef4e6) is NOT
     * in the token pipeline — only feedback/success-surface exists, and no
     * semantic warm-light token resolves to it. The "good" light stop uses
     * surface-default as a token-clean stand-in until a theme:pull adds
     * warning-surface; the dominant warning hue + warning-text are exact.
     *
     * The gradient/ring/uppercase base is applied to BOTH `.badge-ai-match` and
     * each tier, so a tier class is self-sufficient on its own (`badge badge-ai-match-good`)
     * — that lets the card's generic `badge-${variant}` slot carry the whole style with
     * a single `ai-match-good` variant, while the explicit `badge-ai-match badge-ai-match-good`
     * pairing still works.
     */
/* The white ring is an INSET ring, not a border: a 1px border would add 2px
     * to the box and push this past the base .badge 24px height (the 16px glyph
     * already fills it exactly), so the AI pill would sit taller than its row
     * siblings. ring-inset paints inside the edge and costs no layout height. */
.badge-ai-match,
    .badge-ai-match-good,
    .badge-ai-match-mixed,
    .badge-ai-match-weak {
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
  text-transform: uppercase;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-inset: inset;
  --tw-ring-color: var(--color-border-inverse);
}
.badge-ai-match-good {
  --tw-gradient-from: var(--color-feedback-warning) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: var(--color-surface-default) var(--tw-gradient-to-position);
  color: var(--color-feedback-warning-text);
}
.badge-ai-match-mixed {
  --tw-gradient-from: var(--color-brand-alt-fill-active) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: var(--color-data-ramp-5) var(--tw-gradient-to-position);
  color: var(--color-feedback-info-text);
}
.badge-ai-match-weak {
  --tw-gradient-from: var(--color-fill-neutral) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: var(--color-fill-subtle) var(--tw-gradient-to-position);
  color: var(--color-text-headings);
}
/* ── Promo Developments badge (Figma: BadgeProject 8180:70004, "Promo
     *    ansambluri") ──────────────────────────────────────────────────────
     * The promoted-development project badge: brand-default fill + white text,
     * carrying a TRAILING info-circle that opens a tooltip (rendered by the
     * BadgeWithTooltip interactive component). Same badge/default token pair as
     * .badge-energy — named distinctly to mirror the Figma "Promo Developments"
     * variant (the kit already aliases sibling project tiers to one fill).
     */
.badge-promo-developments {
  background-color: var(--badge-default-fill);
  color: var(--badge-default-text);
}
/* ── Project tier badge (Figma: BadgeProject 8180:70024) ────────────────
     * The project-tier pill in a Project Card's top-left image slot
     * ("Standard" / "Professional" / "Premium"). Figma backs ALL tiers with the generic
     * badge/default-fill (#e71e41 = brand) + badge/default-text (white) — there
     * is NO dedicated badge/professional|premium component token. So both alias
     * the existing brand fill (same utilities as .badge-brand). If design ever
     * differentiates the tiers visually, that is a MISSING token to add upstream
     * (yarn theme:pull) — do not invent a value here; only this mapping changes.
     */
.badge-standard,
    .badge-professional,
    .badge-premium {
  background-color: var(--color-fill-brand);
  color: var(--color-text-inverse);
}
/* ── Delivery / handover badge (Figma: BadgeDelivery 8224:76133) ────────
     * The project "Predare" (handover) tag in a Project Card's content slot
     * (BadgeSlotE, below the location line). Two variants:
     *   finalised  bg feedback/success-surface, text feedback/success-text  (green — "Predare: Finalizat")
     *   upcoming   bg feedback/warning-surface,  text feedback/warning-text   (amber — "Predare: August 2026")
     * Same `.badge` shape (rounded-full, px-md py-xs, label-sm-strong); only the colour pair changes.
     * NOTE: feedback/warning-surface has no upstream token yet — `bg-feedback-warning-surface` is
     * bridged to --color-amber-100 in tailwind.config.ts (the exact Figma value); see the TODO there.
     */
.badge-delivery-finalised {
  background-color: var(--color-feedback-success-surface);
  color: var(--color-feedback-success-text);
}
.badge-delivery-upcoming {
  background-color: var(--color-feedback-warning-surface);
  color: var(--color-feedback-warning-text);
}
/* ── Location group heading (Figma: LocationTypeHeading 6683:21839) ─────
     * The small heading that labels a group of location search results by
     * type (counties / cities / sectors / zones / streets). Purely static —
     * a type icon + a SemiBold-12 label — so it is a CSS element, not a Vue
     * component. A direct <svg> child (PortalSvg) is auto-sized to 16px:
     *
     *   <p class="location-group-heading">
     *       <PortalSvg name="location-type-city" aria-hidden="true" />
     *       Orașe
     *   </p>
     *
     * Figma → token utility:
     *   layout  pt-md pb-xs pl-xl gap-xs
     *   icon    16px (location-type-*)                  → > svg size-4
     *   text    label-sm-strong, color/text/headings    → text-label-sm-strong text-text-headings
     */
.location-group-heading {
        font-weight: var(--text-label-sm-strong-font-weight);
        font-size: var(--text-label-sm-strong-font-size);
        line-height: var(--text-label-sm-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-sm-strong-letter-spacing);
        display: flex;
        align-items: center;
        gap: var(--spacing-xs);
        padding-bottom: var(--spacing-xs);
        padding-left: var(--spacing-xl);
        padding-top: var(--spacing-md);
        color: var(--color-text-headings);
    }
.location-group-heading > svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}
/* ── Location return header (Figma: ReturnHeader 6669:20135) ────────────
     * The "back" row at the top of the drilldown panel: chevron-left + a
     * SemiBold label. The whole row is the button; keyboard focus draws a 2px
     * ring around the icon+label group (not the full-width row), per Figma —
     * hence the inner `-group` span. Canonical markup:
     *
     *   <button type="button" class="location-return-header" @click="back">
     *       <span class="location-return-header-group">
     *           <PortalSvg name="chevron-left" aria-hidden="true" />
     *           Selectează locații
     *       </span>
     *   </button>
     *
     * Figma → token utility:
     *   row    px-xl py-md, bg surface/subtle           → px-xl py-md bg-surface-subtle
     *   hover  bg surface/sunken, text/brand-alt        → hover:bg-surface-sunken hover:text-text-brand-alt
     *   focus  2px border/focus on icon+label, rounded/sm → :focus-visible …-group ring
     *   icon   chevron-left 20px                        → > svg size-5
     *   label  label-lg-strong (colour inherits from row)
     */
.location-return-header {
        font-weight: var(--text-label-lg-strong-font-weight);
        font-size: var(--text-label-lg-strong-font-size);
        line-height: var(--text-label-lg-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-lg-strong-letter-spacing);
        display: flex;
        width: 100%;
        align-items: center;
        background-color: var(--color-surface-subtle);
        padding-left: var(--spacing-xl);
        padding-right: var(--spacing-xl);
        padding-top: var(--spacing-md);
        padding-bottom: var(--spacing-md);
        color: var(--color-text-headings);
        transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms;
    }
.location-return-header:hover {
  background-color: var(--color-surface-sunken);
  color: var(--color-text-brand-alt);
}
.location-return-header:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.location-return-header-group {
  display: flex;
  align-items: center;
  gap: var(--spacing-md);
  border-radius: var(--rounded-sm);
}
.location-return-header-group > svg {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
}
.location-return-header:focus-visible .location-return-header-group {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-inset: inset;
  --tw-ring-color: var(--color-border-focus);
}
/* ── Location popular item (Figma: Popular Location item 6669:19722) ────
     * A popular-location quick pick: search glyph + SemiBold label, used in a
     * wrapping row under the "Popular Locations" heading. Canonical markup:
     *
     *   <button type="button" class="location-popular-item" @click="pick">
     *       <PortalSvg name="search" aria-hidden="true" />
     *       București
     *   </button>
     *
     * Figma → token utility:
     *   gap-xs; icon search 20px               → > svg size-5
     *   label  label-lg-strong, text/subtle    → text-label-lg-strong text-text-subtle
     *   hover  text/brand-alt #0b778e          → hover:text-text-brand-alt
     *   focus  2px border/focus, rounded-sm    → focus-visible ring, inset
     */
.location-popular-item {
        font-weight: var(--text-label-lg-strong-font-weight);
        font-size: var(--text-label-lg-strong-font-size);
        line-height: var(--text-label-lg-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-lg-strong-letter-spacing);
        display: inline-flex;
        align-items: center;
        gap: var(--spacing-xs);
        white-space: nowrap;
        border-radius: var(--rounded-sm);
        padding-left: 0.25rem;
        padding-right: 0.25rem;
        padding-top: 0.125rem;
        padding-bottom: 0.125rem;
        color: var(--color-text-subtle);
        transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms;
    }
.location-popular-item:hover {
  color: var(--color-text-brand-alt);
}
.location-popular-item:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-inset: inset;
  --tw-ring-color: var(--color-border-focus);
}
.location-popular-item > svg {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
}
/* ── Location recent item (Figma: RecentSearchItem 6683:23044/23193) ────
     * A recalled previous search: body text + a re-run (refresh) glyph, used
     * under the "Recent Searches" heading. Render as <a> when there is a URL
     * (middle-click / cmd-click work), <button> otherwise — the class is
     * tag-agnostic. `.location-recent-item-divider` adds the bottom border
     * between stacked items (off on the last one). Canonical markup:
     *
     *   <a :href="search.url" class="location-recent-item location-recent-item-divider">
     *       <span class="truncate">Apartamente de vânzare în Cluj</span>
     *       <PortalSvg name="refresh-cw-01" aria-hidden="true" />
     *   </a>
     *
     * Figma → token utility:
     *   h-11 (44px) py-lg, justify-between
     *   text   body-md, text/body #565e68      → text-body-md text-text-body
     *   hover  text/brand-alt                  → hover:text-text-brand-alt
     *   icon   refresh-cw-01 20px              → > svg size-5
     *   focus  2px border/focus, rounded-xs    → ring on focus only — a resting
     *          radius would round the divider border
     */
.location-recent-item {
        font-weight: var(--text-body-md-font-weight);
        font-size: var(--text-body-md-font-size);
        line-height: var(--text-body-md-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-body-md-letter-spacing);
        display: flex;
        height: 2.75rem;
        min-height: 2.75rem;
        width: 100%;
        align-items: center;
        justify-content: space-between;
        padding-top: var(--spacing-lg);
        padding-bottom: var(--spacing-lg);
        text-align: left;
        color: var(--color-text-body);
        transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms;
    }
.location-recent-item:hover {
  color: var(--color-text-brand-alt);
}
.location-recent-item:focus-visible {
  border-radius: var(--rounded-xs);
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-inset: inset;
  --tw-ring-color: var(--color-border-focus);
}
.location-recent-item > svg {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
}
.location-recent-item-divider {
  border-bottom-width: var(--border-width-default);
  border-color: var(--color-border-default);
}
/* ── Location tag overflow (Figma: Multiselect input · overflow pill) ───
     * The "+N more" / "show less" toggle rendered next to the selected-location
     * tags in the multiselect input — sibling of the gray LocationTag, same
     * 32px pill geometry, teal brand-alt outline so it reads as an action
     * rather than a value. The host formats the label. Canonical markup:
     *
     *   <button type="button" class="location-tag-overflow" @click="expand">
     *       +4 mai mult
     *   </button>
     *
     * Figma → token utility:
     *   shape  h-8 rounded-full px-lg py-md, 1px brand-alt border
     *   text   label-sm-strong, brand-alt/text → text-label-sm-strong text-brand-alt-text
     *   fill   brand-alt/fill #e6f3f6          → bg-brand-alt-fill
     *   hover  brand-alt/fill-hover + on-fill  → hover:bg-brand-alt-fill-hover hover:text-brand-alt-on-fill
     *   focus  2px border/focus ring, offset   → ring-2 ring-border-focus ring-offset-2
     */
.location-tag-overflow {
        font-weight: var(--text-label-sm-strong-font-weight);
        font-size: var(--text-label-sm-strong-font-size);
        line-height: var(--text-label-sm-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-sm-strong-letter-spacing);
        display: inline-flex;
        height: 2rem;
        flex-shrink: 0;
        align-items: center;
        white-space: nowrap;
        border-radius: 9999px;
        border-width: var(--border-width-default);
        border-color: var(--color-brand-alt-border);
        background-color: var(--color-brand-alt-fill);
        padding-left: var(--spacing-lg);
        padding-right: var(--spacing-lg);
        padding-top: var(--spacing-md);
        padding-bottom: var(--spacing-md);
        color: var(--color-brand-alt-text);
        transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms;
    }
.location-tag-overflow:hover {
  background-color: var(--color-brand-alt-fill-hover);
  color: var(--color-brand-alt-on-fill);
}
.location-tag-overflow:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: var(--color-border-focus);
  --tw-ring-offset-width: 2px;
  --tw-ring-offset-color: var(--color-surface-default);
}
/* ── Search tip (Figma: SearchTip 6683:22821) ───────────────────────────
     * Promo banner at the top of the location dropdown ("Search smarter, by
     * street" + a green NEW badge). Purely static, so it is a CSS element.
     * Canonical markup:
     *
     *   <div class="search-tip search-tip-divider">
     *       <p class="flex items-center gap-md">
     *           <span class="search-tip-title">Search smarter, by street</span>
     *           <span class="badge badge-new">NEW</span>
     *       </p>
     *       <p class="search-tip-description">Find properties exactly…</p>
     *   </div>
     *
     * `.search-tip-divider` adds the bottom border — on when stacked above
     * panel content, off when the tip stands alone.
     *
     * Figma → token utility:
     *   bg surface/subtle, bottom border/default → bg-surface-subtle + .search-tip-divider
     *   layout pt-xl pb-lg px-2xl
     *   title  body-sm-strong, text/brand  → text-body-sm-strong text-text-brand
     *   description body-sm, text/headings → text-body-sm text-text-headings
     */
.search-tip {
  display: flex;
  flex-direction: column;
  background-color: var(--color-surface-subtle);
  padding-left: var(--spacing-2xl);
  padding-right: var(--spacing-2xl);
  padding-bottom: var(--spacing-lg);
  padding-top: var(--spacing-xl);
}
.search-tip-divider {
  border-bottom-width: var(--border-width-default);
  border-color: var(--color-border-default);
}
.search-tip-title {
        font-weight: var(--text-body-sm-strong-font-weight);
        font-size: var(--text-body-sm-strong-font-size);
        line-height: var(--text-body-sm-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-body-sm-strong-letter-spacing);
        color: var(--color-text-brand);
    }
.search-tip-description {
        font-weight: var(--text-body-sm-font-weight);
        font-size: var(--text-body-sm-font-size);
        line-height: var(--text-body-sm-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-body-sm-letter-spacing);
        color: var(--color-text-headings);
    }
/* ── Logo (Figma: Logo 5740:12606) ──────────────────────────────────────
     * Tenant logo link. The image file is resolved at build time by the
     * `@logo` Vite alias (resources/images/tenant/{TENANT}/logo.svg), so call
     * sites stay tenant-agnostic. Purely static, so it is a CSS element.
     *
     * Sizing is wrapper-driven — the anchor fills the parent's height, the
     * image width derives from the SVG's natural aspect ratio:
     *
     *   <div class="h-7">                       \3c !-- 28px tall (Navbar default) -->
     *       <a href="/" aria-label="Home" class="logo">
     *           <img :src="logoUrl" alt="" />   \3c !-- import logoUrl from '@logo' -->
     *       </a>
     *   </div>
     *
     * alt stays empty when the anchor carries its own label — the image is
     * decorative there.
     */
.logo {
  display: inline-flex;
  height: 100%;
  align-items: center;
}
.logo > img {
  height: 100%;
  width: auto;
}
/* ── Close button (Figma: X close — desktop 8382:26126 / mobile 8379:24201) ──
     * The dismiss (×) control for sheets, popovers and map cards. A rounded-xs
     * chip that HUGS the close glyph: the consumer supplies the icon as a direct
     * <svg> child (PortalSvg, auto-sized below). Subtle at rest, an overlay/subtle
     * fill on hover + pressed, and a 2px border/focus ring for keyboard users —
     * the three states Figma defines. Two sizes mirror the Figma breakpoint set:
     *
     *   .close-button        desktop — 20px glyph in a 24px box (8382:26126, hover/focus inset-[-10%])
     *   .close-button-touch  mobile  — 24px glyph centred in a 44px WCAG touch frame
     *                                  (8379:24201). The close in a sheet header is
     *                                  laid out at the full 44px, so the row height and
     *                                  the glyph's inset from the edge come for free.
     *
     * Canonical markup:
     *   <button type="button" class="close-button" aria-label="Închide" @click="…">
     *       <PortalSvg name="close" aria-hidden="true" />
     *   </button>
     *
     * Figma → token utility:
     *   icon rest    color/icon/subtle  #4b5563        → text-icon-subtle
     *   hover/press  color/overlay/subtle              → hover/active:bg-overlay-subtle
     *   focus        2px color/border/focus, rounded/xs → focus-visible ring-2 ring-border-focus (rounded-xs)
     *   compact pad  ~2px around the glyph (Figma inset) → p-xxs (2px)
     *
     * The focus affordance is a ring (box-shadow), not a border, so it adds no
     * layout box and never shifts the row — no transparent-border reservation
     * needed. transition-colors animates only the fill; the ring pops instantly.
     *
     * Touch variant: the 44px frame is layout/tap only — the hover/pressed fill
     * and focus ring are a centred 28px chip (Figma 8379:24201, inset-[-8.33%]
     * around the 24px glyph), NOT the full frame. So the base class's full-box
     * fill/ring are cancelled and redrawn on ::before, with the glyph riding above
     * the chip (relative z-10).
     */
.close-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--rounded-xs);
  padding: var(--spacing-xxs);
  color: var(--color-icon-subtle);
}
.close-button:hover {
  background-color: var(--color-overlay-subtle);
}
.close-button:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: var(--color-border-focus);
}
.close-button:active {
  background-color: var(--color-overlay-subtle);
}
.close-button > svg {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
}
.close-button-touch {
  position: relative;
  width: 2.75rem;
  height: 2.75rem;
}
.close-button-touch > svg {
  position: relative;
  z-index: 10;
  width: 1.5rem;
  height: 1.5rem;
  flex-shrink: 0;
}
.close-button-touch:hover,
    .close-button-touch:active {
  background-color: transparent;
}
.close-button-touch:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.close-button-touch::before {
  pointer-events: none;
  position: absolute;
  left: 50%;
  top: 50%;
  width: 1.75rem;
  height: 1.75rem;
  --tw-translate-x: -50%;
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  border-radius: var(--rounded-xs);
  --tw-content: '';
  content: var(--tw-content);
}
.close-button-touch:hover::before,
    .close-button-touch:active::before {
  background-color: var(--color-overlay-subtle);
}
.close-button-touch:focus-visible::before {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: var(--color-border-focus);
}
/* ════════════════════════════════════════════════════════════════════
     * Listing-card atoms (Figma: 🟡 Listing Cards 8085:473)
     * Static, stateless pieces composed by ListingImage / ListingCard. Each
     * is token-only; the card/gallery positions them.
     * ════════════════════════════════════════════════════════════════════ */
/* ── Listing title (Figma: ListingTitle 8184:70706) ─────────────────────
     * The card heading (mobile + vertical, inline). A SINGLE line then ellipsis
     * (Figma 8136:57991 — body-md-strong, lh 24, overflow-hidden text-ellipsis,
     * whitespace-nowrap). lh 24 (not leading-none) so the ellipsis clip clears
     * Manrope/RO descenders without padding tricks. No hover colour change
     * (Figma: the title keeps its style on hover).
     *   text   text/body-md-strong, color/text/headings → text-body-md-strong text-text-headings
     */
.listing-title {
        font-weight: var(--text-body-md-strong-font-weight);
        font-size: var(--text-body-md-strong-font-size);
        line-height: var(--text-body-md-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-body-md-strong-letter-spacing);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        color: var(--color-text-headings);
    }
/* ── Listing title bar (Figma: ListingTitle 8224:76102, "standard") ─────
     * The DESKTOP listing-card header: a full-width bar that sits ABOVE the
     * image+content row (horizontal card, md+), single-line ellipsis with a
     * bottom divider and a trailing slot (badge / developer logo). The mobile
     * & vertical title stays inline in the content via `.listing-title`.
     *   bar      surface/default already on the card; border-b color/border/subtle,
     *            min-h 40, pl lg / pr xl / py md → border-b border-border-subtle …
     *   text     text/label-lg-strong (leading-none), color/text/headings, ellipsis
     * No hover colour change (Figma: the title keeps its style on hover).
     * label-lg-strong is leading-none → the truncating link needs py-1 -my-1 so
     * `truncate` clips at the padding edge, not through Manrope/RO descenders.
     * pr is `xl` (not Figma's 2xl) so the trailing developer badge's right edge
     * lines up with the content column / CTAs below it (both `p-xl`).
     */
.listing-title-bar {
  display: flex;
  min-height: 2.5rem;
  align-items: center;
  justify-content: space-between;
  gap: var(--spacing-md);
  border-bottom-width: var(--border-width-default);
  border-color: var(--color-border-subtle);
  padding-top: var(--spacing-md);
  padding-bottom: var(--spacing-md);
  padding-left: var(--spacing-lg);
  padding-right: var(--spacing-xl);
}
.listing-title-bar-label {
        font-weight: var(--text-label-lg-strong-font-weight);
        font-size: var(--text-label-lg-strong-font-size);
        line-height: var(--text-label-lg-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-lg-strong-letter-spacing);
        margin-top: -0.25rem;
        margin-bottom: -0.25rem;
        min-width: 0px;
        flex: 1 1 0%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        padding-top: 0.25rem;
        padding-bottom: 0.25rem;
        color: var(--color-text-headings);
    }
/* ── Project logo tile (Figma: DeveloperLogo I8243:90764;8230:77097) ────
     * The project / developer logo over a Project Card's gallery, top-left
     * (sits beside the tier badge). A white 60×40 tile holding a contained logo
     * image. Static, so it is a CSS element; ProjectCard positions it absolutely.
     *   tile   60×40, color/surface/default, 1px border/subtle, rounded/xs, p xs
     *   image  52×32 (60−8 / 40−8), object-contain, fills the tile
     * The 1px edge is an INSET RING, not a `border`: a border-box border would
     * subtract 2px from the content box (→ 50×30 image), but Figma's stroke is
     * an inside stroke that doesn't reduce the 52×32 child. ring-inset is drawn
     * via box-shadow (zero layout impact), so the 4px padding alone defines the
     * 52×32 image while the tile stays exactly 60×40.
     */
.project-logo {
  display: inline-flex;
  height: 2.5rem;
  width: 60px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: var(--rounded-xs);
  background-color: var(--color-surface-default);
  padding: var(--spacing-xs);
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-inset: inset;
  --tw-ring-color: var(--color-border-subtle);
}
.project-logo > img {
  height: 100%;
  width: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
/* ── Listing attribute (Figma: ListingAttribute 8232:77827) ─────────────
     * One spec item in the attributes row: a subtle icon + a SemiBold-14 value
     * ("4 camere", "654 m²"). No pill — plain icon+label.
     *   text   text/label-md-strong, color/text/body  → text-label-md-strong text-text-body
     *   icon   16px, color/icon/subtle               → > svg size-4 text-icon-subtle
     */
.listing-attribute {
        font-weight: var(--text-label-md-strong-font-weight);
        font-size: var(--text-label-md-strong-font-size);
        line-height: var(--text-label-md-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-md-strong-letter-spacing);
        display: inline-flex;
        flex-shrink: 0;
        align-items: center;
        gap: var(--spacing-xs);
        white-space: nowrap;
        color: var(--color-text-body);
    }
.listing-attribute > svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  color: var(--color-icon-subtle);
}
/* ── Listing tag (Figma: ListingTag 8133:55113) ─────────────────────────
     * One bullet-prefixed tag in the tags row ("• Locație verificată"). The
     * bullet is supplied in markup; an optional per-tag colour class may
     * override the text colour.
     *   text   text/label-md, color/text/body  → text-label-md text-text-body
     */
.listing-tag {
        font-weight: var(--text-label-md-font-weight);
        font-size: var(--text-label-md-font-size);
        line-height: var(--text-label-md-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-md-letter-spacing);
        display: inline-flex;
        flex-shrink: 0;
        align-items: center;
        gap: var(--spacing-xs);
        white-space: nowrap;
        color: var(--color-text-body);
    }
/* ── Card pill (Figma: CardAttribute 8334:26467, variant=pill) ──────────
     * The pill rendering of a listing attribute — the same icon+value as
     * .listing-attribute (variant=default) but on a translucent white chip for
     * laying OVER a card image (Figma note: "md pill on top of images; sm pill
     * on top of images on small cards such as carousel cards"). The plain
     * .listing-attribute stays the card-body rendering.
     *   shape  rounded-full, px-md py-xs, min-h-6, color/fill/ghost (white α70),
     *          backdrop-blur, 1px transparent border (border-width/default +
     *          color/border/none — reserved per the Figma component) → bg-fill-ghost
     *   text   md: text/label-md-strong · sm: text/label-sm-strong, color/text/body
     *   icon   16px, color/icon/subtle → > svg size-4 text-icon-subtle (optional, in markup)
     * Icon presence is markup-driven (include a <PortalSvg> or not), like
     * .listing-attribute; size is the only axis carried by the -sm modifier.
     */
.card-pill {
        font-weight: var(--text-label-md-strong-font-weight);
        font-size: var(--text-label-md-strong-font-size);
        line-height: var(--text-label-md-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-md-strong-letter-spacing);
        display: inline-flex;
        min-height: 1.5rem;
        flex-shrink: 0;
        align-items: center;
        gap: var(--spacing-xs);
        white-space: nowrap;
        border-radius: 9999px;
        border-width: var(--border-width-default);
        border-color: transparent;
        background-color: var(--color-fill-ghost);
        padding-left: var(--spacing-md);
        padding-right: var(--spacing-md);
        padding-top: var(--spacing-xs);
        padding-bottom: var(--spacing-xs);
        color: var(--color-text-body);
        --tw-backdrop-blur: blur(4px);
        backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
    }
.card-pill-sm {
        font-weight: var(--text-label-sm-strong-font-weight);
        font-size: var(--text-label-sm-strong-font-size);
        line-height: var(--text-label-sm-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-sm-strong-letter-spacing);
    }
.card-pill > svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  color: var(--color-icon-subtle);
}
/* ── Image / logo placeholders (Figma: System / Graphics —
     *    property_image_placeholder 8420:66607, logo_placeholder 8420:67297) ──
     * Empty-state graphics for a missing listing photo / developer logo. A
     * background-image on a plain div — deliberately a PNG, NOT inline SVG: the
     * listing card renders 20-40× per page, so an inline-SVG placeholder would
     * multiply DOM nodes; a CSS background paints with ZERO extra nodes and the
     * browser caches the single asset. The PNG (palette, ~3KB) bakes in the
     * surface-subtle background, so background-size:cover fills any aspect ratio
     * and the asset's built-in margin absorbs the crop — the house / logo is
     * never clipped, and there is no adjacent token-bg to mismatch per brand.
     * Wrapper-driven: fills whatever box the consumer gives it.
     */
.image-placeholder {
  display: block;
  height: 100%;
  width: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
        background-image: url('/theme/brk/portal/assets/property-image-placeholder-DUNl07Ol.png');
}
.logo-placeholder {
  display: block;
  height: 100%;
  width: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
        background-image: url('/theme/brk/portal/assets/logo-placeholder-BBJuIOkf.png');
}
/* Wide variant (Figma logo_placeholder 8420:67299) — the same two-houses glyph on
     * a ~2.3:1 canvas, for WIDE logo tiles (e.g. ProjectCardMap's 118×60 desktop tile)
     * where the ~1.6:1 .logo-placeholder would crop the houses on the sides. */
.logo-placeholder-wide {
  display: block;
  height: 100%;
  width: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
        background-image: url('/theme/brk/portal/assets/logo-placeholder-wide-h2gUn_Kc.png');
}
/* ── Image skeleton (Figma: System / Graphics — property_image_skeleton
     *    8420:66738 / 8420:66733) ──────────────────────────────────────────
     * The LOADING / FAILED state, distinct from .image-placeholder (the permanent
     * NO-image fallback): the image-03 glyph on surface-subtle. Painted as a card
     * image's BACKGROUND with the <img> layered over it — while the photo loads it is
     * unpainted so the skeleton shows; once loaded the opaque object-cover image covers
     * it; on @error the consumer hides the broken img and the skeleton shows again.
     * Static (no pulse): it sits behind the photo, so an opacity pulse would fade the
     * photo too, and the design (8420:66733) is static. Same PNG technique as
     * .image-placeholder (palette ~4KB, no inline-SVG DOM cost).
     */
.image-skeleton {
  display: block;
  height: 100%;
  width: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
        background-image: url('/theme/brk/portal/assets/property-image-skeleton-qca2XeL8.png');
}
/* 16:9 variant (Figma 8420:66733) — the same image-03 glyph re-centred on a
     * 16:9 canvas, for wide image boxes where cover-cropping the 3:2 .image-skeleton
     * would over-scale the glyph. Mirrors the .logo-placeholder-wide pattern. */
.image-skeleton-16x9 {
  display: block;
  height: 100%;
  width: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
        background-image: url('/theme/brk/portal/assets/property-image-skeleton-16x9-DJp7iqqq.png');
}
/* ── Image counter (Figma: ImageCounter 8111:14400) ─────────────────────
     * "1 / 20" pill over the image, bottom-right. Dark image-overlay scrim,
     * white text, blurred backdrop.
     *   shape  rounded-xs, px-md py-xs, image-overlay, backdrop-blur
     *   text   text/label-sm-strong, color/icon/light → text-label-sm-strong text-text-inverse
     *   icon   16px image glyph                        → > svg size-4
     */
.image-counter {
        font-weight: var(--text-label-sm-strong-font-weight);
        font-size: var(--text-label-sm-strong-font-size);
        line-height: var(--text-label-sm-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-sm-strong-letter-spacing);
        display: inline-flex;
        align-items: center;
        gap: var(--spacing-xs);
        border-radius: var(--rounded-xs);
        background-color: var(--color-overlay-image);
        padding-left: var(--spacing-md);
        padding-right: var(--spacing-md);
        padding-top: var(--spacing-xs);
        padding-bottom: var(--spacing-xs);
        color: var(--color-text-inverse);
        --tw-backdrop-blur: blur(4px);
        backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
    }
.image-counter > svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}
/* ── Media-type pill (Figma: MediaTypePill 8111:14343, 96×24) ───────────
     * Row of media-availability glyphs (floor-plan / street-view / 360 / video)
     * over the image, bottom-left. Same dark scrim as the counter.
     * Figma lays the 16px icons at x=0/32/64 inside an 80px slot → 16px gaps,
     * px-md sides → 96px total for 3 icons.
     *   shape  rounded-xs, px-md py-xs, image-overlay, backdrop-blur, gap-xl(16)
     *   icon   16px white                              → > svg size-4
     */
.media-type-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--spacing-xl);
  border-radius: var(--rounded-xs);
  background-color: var(--color-overlay-image);
  padding-left: var(--spacing-md);
  padding-right: var(--spacing-md);
  padding-top: var(--spacing-xs);
  padding-bottom: var(--spacing-xs);
  color: var(--color-text-inverse);
  --tw-backdrop-blur: blur(4px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.media-type-pill > svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}
/* ── Posted at (Figma: postedAt 8130:54664) ─────────────────────────────
     * Recency pill ("23 ore în urmă") next to the price. Light brand-alt fill,
     * dark brand-alt text.
     *   shape  rounded-xs, px-xs py-xxs, brand-alt/fill
     *   text   text/label-sm-strong, brand-alt/text-active → text-brand-alt-text-active
     */
.posted-at {
        font-weight: var(--text-label-sm-strong-font-weight);
        font-size: var(--text-label-sm-strong-font-size);
        line-height: var(--text-label-sm-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-sm-strong-letter-spacing);
        display: inline-flex;
        align-items: center;
        white-space: nowrap;
        border-radius: var(--rounded-xs);
        background-color: var(--color-brand-alt-fill);
        padding-left: var(--spacing-xs);
        padding-right: var(--spacing-xs);
        padding-top: var(--spacing-xxs);
        padding-bottom: var(--spacing-xxs);
        color: var(--color-brand-alt-text-active);
    }
/* ── Gallery arrow (Figma: GalleryArrow 8102:9977) ──────────────────────
     * Circular prev/next control over the image gallery. Dark image-overlay
     * scrim, white chevron, darkens on hover/active; white keyboard ring.
     * Direction is the consumer's job: use `chevron-right`, add `rotate-180`
     * on the svg for the left arrow.
     *   shape  30×30, rounded-full, image-overlay, backdrop-blur → size-[30px]
     *   hover/active  color/overlay/dark              → hover/active:bg-overlay-dark
     *   pressed  scales to 0.93 (→ ~28px)             → active:scale-[0.93]
     *   icon   14px frame, color/icon/light           → > svg size-3.5
     *   focus  2px border/focus-inverse               → ring-2 ring-border-focus-inverse
     */
.gallery-arrow {
  display: inline-flex;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  background-color: var(--color-overlay-image);
  color: var(--color-text-inverse);
  --tw-backdrop-blur: blur(4px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  transition-property: color, background-color, border-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.gallery-arrow:hover {
  background-color: var(--color-overlay-dark);
}
.gallery-arrow:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: var(--color-border-focus-inverse);
}
.gallery-arrow:active {
  --tw-scale-x: 0.93;
  --tw-scale-y: 0.93;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  background-color: var(--color-overlay-dark);
}
.gallery-arrow > svg {
  width: 0.875rem;
  height: 0.875rem;
  flex-shrink: 0;
}
/* ── Listing thumbnail (Figma: Thumbnail 8329:15841, thumbnailStrip
     *    8297:25602) ───────────────────────────────────────────────────────
     * One image tile in the thumbnail strip under the gallery on featured /
     * promo cards (NOT the standard 30-per-page card). The strip shows ~3 at a
     * time (each tile is a third of the row, the rest scroll); the active tile
     * carries a teal bar across the TOP of its image. Click→jump / scroll-sync
     * behaviour lives in ListingImage — this class is styling only.
     *   tile    3-up fill ((100% − 2·gap-xs)/3), 3:2, image absolutely filled
     *   active  aria-current="true" → a ::after bar painted OVER the top of the
     *           image (not a top border, which would sit above the photo and
     *           shift it down). color/border/focus (#048ba8). Figma marks it 4px
     *           (border-width/bold); the vendored tokens expose only
     *           default/focus/strong (1/2/2px), so the 4px uses stock h-1 while
     *           the colour stays the real border-focus token.
     */
.listing-thumbnail {
  position: relative;
  aspect-ratio: 3/2;
  width: calc((100% - 8px) / 3);
  flex-shrink: 0;
  cursor: pointer;
  overflow: hidden;
}
.listing-thumbnail:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-inset: inset;
  --tw-ring-color: var(--color-border-focus);
}
.listing-thumbnail > img {
  pointer-events: none;
  position: absolute;
  inset: 0px;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.listing-thumbnail[aria-current='true']::after {
  position: absolute;
  left: 0px;
  right: 0px;
  top: 0px;
  height: 0.25rem;
  background-color: var(--color-border-focus);
  --tw-content: '';
  content: var(--tw-content);
}
/* ── Section toggle (Figma: AvailablePropertiesButton 8230:77533 — same
     *    family as PriceHistoryButton 8133:56049) ──────────────────────────
     * Full-width brand-alt bar that expands a card section (available
     * properties, price history): a top divider, a leading glyph, a centred
     * label and a trailing caret. State is the consumer's — set
     * aria-expanded="true" to pin the dark fill and flip the caret. Pure
     * presentation; the click is a native <button>.
     *   bar    bg brand-alt/fill, border-t border/subtle, h 40, pl xl/pr sm/py 1
     *   text   text/label-md-strong, brand-alt/text
     *   hover  light intermediate fill + brand-alt/text-hover (only while collapsed)
     *   open   persistent brand-alt/fill-hover + on-fill (aria-expanded="true")
     *   icons  16px leading + caret; the caret flips instantly (no motion)
     * NOTE: Figma's hover fill is the teal/200 primitive (no semantic alias); the
     * nearest brand-alt interactive token is fill-active (teal/300) — used here to
     * stay token-pure. ~1 step darker than the mock; surfaced, not "fixed".
     */
.section-toggle {
        font-weight: var(--text-label-md-strong-font-weight);
        font-size: var(--text-label-md-strong-font-size);
        line-height: var(--text-label-md-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-md-strong-letter-spacing);
        display: inline-flex;
        height: 2.5rem;
        width: 100%;
        align-items: center;
        justify-content: center;
        gap: var(--spacing-sm);
        border-top-width: var(--border-width-default);
        border-color: var(--color-border-subtle);
        background-color: var(--color-brand-alt-fill);
        padding-top: 0.25rem;
        padding-bottom: 0.25rem;
        padding-left: var(--spacing-xl);
        padding-right: var(--spacing-sm);
        color: var(--color-brand-alt-text);
        transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms;
    }
.section-toggle:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-inset: inset;
  --tw-ring-color: var(--color-border-focus);
}
.section-toggle:not([aria-expanded='true']):hover {
  background-color: var(--color-brand-alt-fill-active);
  color: var(--color-brand-alt-text-hover);
}
.section-toggle[aria-expanded='true'] {
  background-color: var(--color-brand-alt-fill-hover);
  color: var(--color-brand-alt-on-fill);
}
.section-toggle > svg {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}
.section-toggle[aria-expanded='true'] .section-toggle-caret {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
/* ── Special offer indicator (Figma: SpecialOfferIndicator 8280:116982) ──
     * A promoted-developer strip on a listing card: a brand-fill band carrying
     * the development name (right-aligned), with the developer's logo card
     * absolutely anchored bottom-left and OVERHANGING UPWARD into the image
     * above it, a "presents" caption beneath the logo. Static markup only — the
     * consumer supplies the logo <img> and the two text nodes — so it is a CSS
     * element. ListingCard positions it (between image and body when stacked, a
     * full-width band when horizontal) and raises the overhanging logo over the
     * image (z-20 + pointer-events-none so a click still navigates the card).
     *
     * Figma → token utility:
     *   strip     bg color/fill/brand, justify-end, px 2xl / py md, gap lg, min-h 40
     *             → bg-fill-brand justify-end px-2xl py-md gap-lg min-h-10
     *   name      text/label-md-strong (desktop; mobile label-sm-strong is set by the
     *             card's stacked spot), color/text/inverse, right-aligned
     *   logo box  118×60, color/fill/white, 1px color/border/brand, rounded/base, p md
     *             → h-[60px] w-[118px] bg-fill-light border border-border-brand rounded-base p-md
     *   presents  text/label-sm, color/text/inverse, centred → text-label-sm text-text-inverse
     *
     * The developer group (logo + caption) is bottom-anchored (bottom-md left-lg)
     * and taller than the strip, so the logo overhangs ~40px above into the image
     * — the design's "logo bridges the image and the strip". The strip must NOT
     * clip it, hence no overflow on the strip (only the logo box clips its image).
     * The name keeps flex-1 with the logo absolute (out of flow), so it spans the
     * band and right-aligns exactly as Figma (min-w-px flex-1, justify-end).
     */
.special-offer-indicator {
  position: relative;
  display: flex;
  min-height: 2.5rem;
  width: 100%;
  align-items: center;
  justify-content: flex-end;
  gap: var(--spacing-lg);
  background-color: var(--color-fill-brand);
  padding-left: var(--spacing-2xl);
  padding-right: var(--spacing-2xl);
  padding-top: var(--spacing-md);
  padding-bottom: var(--spacing-md);
}
.special-offer-indicator-developer {
  position: absolute;
  bottom: var(--spacing-md);
  left: var(--spacing-lg);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--spacing-xxs);
}
.special-offer-indicator-logo {
  display: flex;
  height: 60px;
  width: 118px;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: var(--rounded-base);
  border-width: var(--border-width-default);
  border-color: var(--color-border-brand);
  background-color: var(--color-fill-light);
  padding: var(--spacing-md);
}
.special-offer-indicator-logo > img {
  height: 100%;
  width: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.special-offer-indicator-presents {
        font-weight: var(--text-label-sm-font-weight);
        font-size: var(--text-label-sm-font-size);
        line-height: var(--text-label-sm-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-sm-letter-spacing);
        min-width: 100%;
        text-align: center;
        color: var(--color-text-inverse);
    }
.special-offer-indicator-name {
        font-weight: var(--text-label-md-strong-font-weight);
        font-size: var(--text-label-md-strong-font-size);
        line-height: var(--text-label-md-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-md-strong-letter-spacing);
        min-width: 0px;
        flex: 1 1 0%;
        text-align: right;
        color: var(--color-text-inverse);
    }
/* ── Layout ─────────────────────────────────────────────
     * The shared page shell: 1240px content + the responsive page gutter
     * ALWAYS on (16px mobile / 32px ≥768px), so content can never touch
     * the viewport edge — including 1024–1304px, where the old
     * px-page-gutter+lg:px-0 pattern collapsed the inset to zero.
     * max-width includes the gutter so the content box still reaches the
     * full 1240px at desktop (1304px shell). Same geometry as
     * PortalFooter's max-w-[1304px] + always-on gutter.
     * Consumers use a bare `container` — never pair it with horizontal
     * padding utilities. (Excludes the fixed nav header, which is
     * full-width and does not use .container.)
     * Overrides Tailwind's breakpoint-stepped container max-widths
     * — declared after @tailwind components so source order wins.
     */
.\!container {
        width: 100% !important;
        margin-right: auto !important;
        margin-left: auto !important;
        padding-right: var(--spacing-page-gutter) !important;
        padding-left: var(--spacing-page-gutter) !important;
        max-width: calc(1240px + 2 * var(--spacing-page-gutter)) !important;
    }
.container {
        width: 100%;
        margin-right: auto;
        margin-left: auto;
        padding-right: var(--spacing-page-gutter);
        padding-left: var(--spacing-page-gutter);
        max-width: calc(1240px + 2 * var(--spacing-page-gutter));
    }
/* Homepage content sections cap at 1200px (hero + everything below it),
     * so they read as one aligned column. Full-width sections opt out by not
     * using .container (city carousel uses edge-inset; footer is page chrome
     * outside .portal-homepage). Higher specificity than .container, so it
     * wins regardless of source order. */
.portal-homepage .container {
        max-width: calc(1200px + 2 * var(--spacing-page-gutter));
    }
.portal-homepage .\!container {
        max-width: calc(1200px + 2 * var(--spacing-page-gutter)) !important;
    }
/* ── Typography ──────────────────────────────────────────
     * Semantic classes wired to design-token CSS custom properties.
     * Responsive styles (display, heading-*) use mobile-first breakpoints:
     *   default = mobile, md = tablet, lg = desktop.
     * Static styles (body-*, label-*, caption, price-*) have no breakpoints.
     * Usage: <h1 class="text-display"> or <p class="text-body-md">
     */
/* ─ Display ─ */
.text-display {
        font-weight: var(--text-display-font-weight);
        font-size: var(--text-display-font-size-mobile);
        line-height: var(--text-display-line-height-mobile);
        font-family: var(--text-font-family-display), sans-serif;
        letter-spacing: var(--text-display-letter-spacing);
    }
/* ─ Heading XL ─ */
.text-heading-xl {
        font-weight: var(--text-heading-xl-font-weight);
        font-size: var(--text-heading-xl-font-size-mobile);
        line-height: var(--text-heading-xl-line-height-mobile);
        font-family: var(--text-font-family-heading), sans-serif;
        letter-spacing: var(--text-heading-xl-letter-spacing);
    }
/* ─ Heading LG ─ */
.text-heading-lg {
        font-weight: var(--text-heading-lg-font-weight);
        font-size: var(--text-heading-lg-font-size-mobile);
        line-height: var(--text-heading-lg-line-height-mobile);
        font-family: var(--text-font-family-heading), sans-serif;
        letter-spacing: var(--text-heading-lg-letter-spacing);
    }
/* ─ Heading MD ─ */
.text-heading-md {
        font-weight: var(--text-heading-md-font-weight);
        font-size: var(--text-heading-md-font-size-mobile);
        line-height: var(--text-heading-md-line-height-mobile);
        font-family: var(--text-font-family-heading), sans-serif;
        letter-spacing: var(--text-heading-md-letter-spacing);
    }
/* ─ Heading SM ─ */
.text-heading-sm {
        font-weight: var(--text-heading-sm-font-weight);
        font-size: var(--text-heading-sm-font-size-mobile);
        line-height: var(--text-heading-sm-line-height-mobile);
        font-family: var(--text-font-family-heading), sans-serif;
        letter-spacing: var(--text-heading-sm-letter-spacing);
    }
/* ─ Body ─ */
.text-body-lg {
        font-weight: var(--text-body-lg-font-weight);
        font-size: var(--text-body-lg-font-size);
        line-height: var(--text-body-lg-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-body-lg-letter-spacing);
    }
.text-body-lg-strong {
        font-family: var(--text-font-family-body), sans-serif;
        font-weight: var(--text-body-lg-strong-font-weight);
        font-size: var(--text-body-lg-strong-font-size);
        line-height: var(--text-body-lg-strong-line-height);
        letter-spacing: var(--text-body-lg-strong-letter-spacing);
    }
.text-body-md {
        font-weight: var(--text-body-md-font-weight);
        font-size: var(--text-body-md-font-size);
        line-height: var(--text-body-md-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-body-md-letter-spacing);
    }
.text-body-md-strong {
        font-weight: var(--text-body-md-strong-font-weight);
        font-size: var(--text-body-md-strong-font-size);
        line-height: var(--text-body-md-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-body-md-strong-letter-spacing);
    }
.\!text-body-sm {
        font-weight: var(--text-body-sm-font-weight) !important;
        font-size: var(--text-body-sm-font-size) !important;
        line-height: var(--text-body-sm-line-height) !important;
        font-family: var(--text-font-family-body), sans-serif !important;
        letter-spacing: var(--text-body-sm-letter-spacing) !important;
    }
.text-body-sm {
        font-weight: var(--text-body-sm-font-weight);
        font-size: var(--text-body-sm-font-size);
        line-height: var(--text-body-sm-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-body-sm-letter-spacing);
    }
.text-body-sm-strong {
        font-weight: var(--text-body-sm-strong-font-weight);
        font-size: var(--text-body-sm-strong-font-size);
        line-height: var(--text-body-sm-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-body-sm-strong-letter-spacing);
    }
/* ─ Labels ─ */
.text-label-xl {
        font-weight: var(--text-label-xl-font-weight);
        font-size: var(--text-label-xl-font-size);
        line-height: var(--text-label-xl-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-xl-letter-spacing);
    }
.text-label-lg {
        font-weight: var(--text-label-lg-font-weight);
        font-size: var(--text-label-lg-font-size);
        line-height: var(--text-label-lg-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-lg-letter-spacing);
    }
.text-label-lg-strong {
        font-weight: var(--text-label-lg-strong-font-weight);
        font-size: var(--text-label-lg-strong-font-size);
        line-height: var(--text-label-lg-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-lg-strong-letter-spacing);
    }
.text-label-md {
        font-weight: var(--text-label-md-font-weight);
        font-size: var(--text-label-md-font-size);
        line-height: var(--text-label-md-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-md-letter-spacing);
    }
.text-label-md-strong {
        font-weight: var(--text-label-md-strong-font-weight);
        font-size: var(--text-label-md-strong-font-size);
        line-height: var(--text-label-md-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-md-strong-letter-spacing);
    }
.text-label-sm {
        font-weight: var(--text-label-sm-font-weight);
        font-size: var(--text-label-sm-font-size);
        line-height: var(--text-label-sm-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-sm-letter-spacing);
    }
.text-label-sm-strong {
        font-weight: var(--text-label-sm-strong-font-weight);
        font-size: var(--text-label-sm-strong-font-size);
        line-height: var(--text-label-sm-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-sm-strong-letter-spacing);
    }
.text-label-xs-strong {
        font-weight: var(--text-label-xs-strong-font-weight);
        font-size: var(--text-label-xs-strong-font-size);
        line-height: var(--text-label-xs-strong-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-xs-strong-letter-spacing);
    }
/* ─ Caption ─ */
.text-caption {
        font-weight: var(--text-caption-font-weight);
        font-size: var(--text-caption-font-size);
        line-height: var(--text-caption-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-caption-letter-spacing);
    }
/* ─ Price ─ */
/* price-xs (16px / ExtraBold, Figma text/price-xs) — the project map-card
     * header price range. The --text-price-xs-* vars ship in the generated tokens
     * (size-base 16px / extrabold / leading-none 18px); only this composite class
     * was missing. Heading family, mirroring the other Bold/ExtraBold price ramps. */
.text-price-xs {
        font-weight: var(--text-price-xs-font-weight);
        font-size: var(--text-price-xs-font-size);
        line-height: var(--text-price-xs-line-height);
        font-family: var(--text-font-family-heading), sans-serif;
        letter-spacing: var(--text-price-xs-letter-spacing);
    }
.text-price-sm {
        font-weight: var(--text-price-sm-font-weight);
        font-size: var(--text-price-sm-font-size);
        line-height: var(--text-price-sm-line-height);
        font-family: var(--text-font-family-heading), sans-serif;
        letter-spacing: var(--text-price-sm-letter-spacing);
    }
.text-price-md {
        font-weight: var(--text-price-md-font-weight);
        font-size: var(--text-price-md-font-size);
        line-height: var(--text-price-md-line-height);
        font-family: var(--text-font-family-heading), sans-serif;
        letter-spacing: var(--text-price-md-letter-spacing);
    }
.text-price-lg {
        font-weight: var(--text-price-lg-font-weight);
        font-size: var(--text-price-lg-font-size);
        line-height: var(--text-price-lg-line-height);
        font-family: var(--text-font-family-heading), sans-serif;
        letter-spacing: var(--text-price-lg-letter-spacing);
    }
.text-price-xl-strong {
        font-weight: var(--text-price-xl-strong-font-weight);
        font-size: var(--text-price-xl-strong-font-size);
        line-height: var(--text-price-xl-strong-line-height);
        font-family: var(--text-font-family-heading), sans-serif;
        letter-spacing: var(--text-price-xl-strong-letter-spacing);
    }
/* ─ Responsive overrides: tablet (md) ─ */
@media (min-width: 768px) {
        .text-display {
            font-size: var(--text-display-font-size-tablet);
            line-height: var(--text-display-line-height-tablet);
        }
        .text-heading-xl {
            font-size: var(--text-heading-xl-font-size-tablet);
            line-height: var(--text-heading-xl-line-height-tablet);
        }
        .text-heading-lg {
            font-size: var(--text-heading-lg-font-size-tablet);
            line-height: var(--text-heading-lg-line-height-tablet);
        }
        .text-heading-md {
            font-size: var(--text-heading-md-font-size-tablet);
            line-height: var(--text-heading-md-line-height-tablet);
        }
        .text-heading-sm {
            font-size: var(--text-heading-sm-font-size-tablet);
            line-height: var(--text-heading-sm-line-height-tablet);
        }
    }
/* ─ Responsive overrides: desktop (lg) ─ */
@media (min-width: 1024px) {
        .text-display {
            font-size: var(--text-display-font-size-desktop);
            line-height: var(--text-display-line-height-desktop);
        }
        .text-heading-xl {
            font-size: var(--text-heading-xl-font-size-desktop);
            line-height: var(--text-heading-xl-line-height-desktop);
        }
        .text-heading-lg {
            font-size: var(--text-heading-lg-font-size-desktop);
            line-height: var(--text-heading-lg-line-height-desktop);
        }
        .text-heading-md {
            font-size: var(--text-heading-md-font-size-desktop);
            line-height: var(--text-heading-md-line-height-desktop);
        }
        .text-heading-sm {
            font-size: var(--text-heading-sm-font-size-desktop);
            line-height: var(--text-heading-sm-line-height-desktop);
        }
    }
.input-main-state {
        font-weight: var(--text-label-lg-font-weight);
        font-size: var(--text-label-lg-font-size);
        line-height: var(--text-label-lg-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-lg-letter-spacing);
        border-width: var(--border-width-default);
        border-color: var(--color-border-default);
        background-color: var(--color-surface-default);
        color: var(--color-text-body);
        transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 200ms;
    }
.input-main-state:hover {
  border-color: var(--color-border-focus);
}
.input-main-state:focus {
  border-color: var(--color-border-focus);
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: var(--color-border-focus);
  --tw-ring-offset-width: 0px;
}
.input-main-state::-moz-placeholder {
  color: var(--color-text-placeholder);
}
.input-main-state::placeholder {
  color: var(--color-text-placeholder);
}
.input-main-state-within {
        font-weight: var(--text-label-lg-font-weight);
        font-size: var(--text-label-lg-font-size);
        line-height: var(--text-label-lg-line-height);
        font-family: var(--text-font-family-body), sans-serif;
        letter-spacing: var(--text-label-lg-letter-spacing);
        border-width: var(--border-width-default);
        border-color: var(--color-border-default);
        background-color: var(--color-surface-default);
        color: var(--color-text-body);
        transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 200ms;
    }
.input-main-state-within:focus-within {
  border-color: var(--color-border-focus);
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: var(--color-border-focus);
  --tw-ring-offset-width: 0px;
}
.input-main-state-within:hover {
  border-color: var(--color-border-focus);
}
.\!button {
  display: inline-flex;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  border-radius: var(--rounded-md);
  transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}
.\!button:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.\!button:disabled {
  cursor: not-allowed;
}
.button {
  display: inline-flex;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  border-radius: var(--rounded-md);
  transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}
.button:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.button:disabled {
  cursor: not-allowed;
}
.button-primary {
  border-width: var(--border-width-default);
  border-color: transparent;
  background-color: var(--color-brand-fill);
  color: var(--color-brand-on-fill);
  transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}
.button-primary:hover {
  background-color: var(--color-brand-fill-hover);
}
.button-primary:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: var(--color-border-focus);
  --tw-ring-offset-width: 2px;
}
.button-primary:active {
  background-color: var(--color-brand-fill-active);
}
.button-primary:disabled {
  cursor: not-allowed;
  background-color: var(--color-fill-disabled);
  color: var(--color-text-disabled);
}
.button-secondary-light {
  border-width: var(--border-width-default);
  border-color: var(--color-border-brand-alt);
  background-color: var(--color-brand-alt-fill);
  color: var(--color-text-brand-alt);
}
.button-secondary-light:hover {
  border-color: var(--color-border-focus);
  background-color: var(--color-brand-alt-fill-hover);
  color: var(--color-brand-alt-on-fill);
}
.button-secondary-light:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: var(--color-border-focus);
  --tw-ring-offset-width: 2px;
}
.button-secondary-light:active {
  background-color: var(--color-brand-alt-fill-active);
}
.button-secondary-light:disabled {
  cursor: not-allowed;
  border-color: var(--color-fill-disabled);
  background-color: var(--color-fill-disabled);
  color: var(--color-text-disabled);
}
.button-tertiary {
  border-width: var(--border-width-default);
  border-color: var(--color-brand-subtle-border);
  background-color: var(--color-brand-subtle-fill);
  color: var(--color-brand-subtle-text);
}
.button-tertiary:hover {
  background-color: var(--color-brand-subtle-fill-hover);
}
.button-tertiary:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: var(--color-border-focus);
  --tw-ring-offset-width: 1px;
}
.button-tertiary:active {
  background-color: var(--color-brand-subtle-fill-active);
}
.button-tertiary:disabled {
  cursor: not-allowed;
  background-color: var(--color-fill-disabled);
  color: var(--color-text-disabled);
}
/* Link elements (.link, .simple-link, .link-brand, .link-secondary)
     * live in ./elements.css — the CSS-only elements home. */
.input-checkbox {
  height: 1.5rem;
  width: 1.5rem;
  cursor: pointer;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border-radius: 0.25rem;
  border-width: var(--border-width-default);
  border-color: var(--color-border-default);
  background-color: var(--color-surface-default);
  transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.input-checkbox:checked {
  border-color: transparent;
  background-color: var(--color-icon-brand-alt);
}
.input-checkbox:hover {
  border-color: var(--color-border-focus);
}
.input-checkbox:hover:checked {
  background-color: var(--color-brand-alt-text-hover);
}
.input-checkbox:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: var(--color-border-focus);
}
.input-checkbox {
        background-position: center;
        background-size: 100% 100%;
        background-repeat: no-repeat;
    }
.input-checkbox:checked:focus {
        box-shadow:
            0 0 0 1px var(--color-surface-default),
            0 0 0 2px var(--color-border-focus);
    }
.input-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");
    }
/* .simple-link / .link live in ./elements.css — the CSS-only elements home. */
.listing-results-container {
        container: listing-results / inline-size;
    }
@container listing-results (max-width: 719px) {
        .listing-results-container .listing-card {
    min-height: 0px;
  }

        .listing-results-container .listing-card__shell {
    border-radius: 0.75rem;
  }

        .listing-results-container .listing-card__layout {
    min-height: 0px;
    flex-direction: column;
  }

        .listing-results-container .listing-card__mobile-special-header {
    display: flex;
  }

        .listing-results-container .listing-card__media {
    height: 220px;
    width: 100%;
  }

        .listing-results-container .listing-card__image-slider {
    position: static;
  }

        .listing-results-container .listing-card__details {
    width: 100%;
    gap: 0.75rem;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }

        .listing-results-container .listing-card__desktop-title,
        .listing-results-container .listing-card__desktop-agency-logo,
        .listing-results-container .listing-card__desktop-meta,
        .listing-results-container .listing-card__desktop-price,
        .listing-results-container .listing-card__desktop-phone-label {
    display: none;
  }

        .listing-results-container .listing-card__mobile-price {
    display: flex;
  }

        .listing-results-container .listing-card__mobile-title,
        .listing-results-container .listing-card__mobile-agency-logo,
        .listing-results-container .listing-card__price-history {
    display: block;
  }

        .listing-results-container .listing-card__footer {
    margin-top: auto;
    height: auto;
    flex-direction: column;
    align-items: stretch;
    gap: var(--spacing-md);
    padding-top: 0.75rem;
  }

        .listing-results-container .listing-card__contact-buttons {
    width: 100%;
    gap: 0.5rem;
  }

        .listing-results-container .listing-card__contact-button {
    height: 3rem;
    flex: 1 1 0%;
    border-radius: var(--rounded-2xl);
    padding-left: var(--spacing-2xl);
    padding-right: var(--spacing-2xl);
  }

        .listing-results-container .listing-card__contact-label {
    display: inline;
  }
    }
.segmented-control {
  display: flex;
  height: 3rem;
  overflow: hidden;
  white-space: nowrap;
  border-radius: var(--rounded-lg);
  border-width: var(--border-width-default);
  border-color: var(--color-border-strong);
}
.segmented-control:focus-within {
  border-color: var(--color-border-focus);
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: var(--color-border-focus);
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}
.pointer-events-none {
  pointer-events: none;
}
.pointer-events-auto {
  pointer-events: auto;
}
.visible {
  visibility: visible;
}
.invisible {
  visibility: hidden;
}
.collapse {
  visibility: collapse;
}
.static {
  position: static;
}
.fixed {
  position: fixed;
}
.absolute {
  position: absolute;
}
.relative {
  position: relative;
}
.sticky {
  position: sticky;
}
.inset-0 {
  inset: 0px;
}
.inset-x-0 {
  left: 0px;
  right: 0px;
}
.inset-y-0 {
  top: 0px;
  bottom: 0px;
}
.-bottom-2 {
  bottom: -0.5rem;
}
.-bottom-4 {
  bottom: -1rem;
}
.-bottom-\[5px\] {
  bottom: -5px;
}
.-bottom-\[8px\] {
  bottom: -8px;
}
.-bottom-md {
  bottom: calc(var(--spacing-md) * -1);
}
.-left-5 {
  left: -1.25rem;
}
.-right-2 {
  right: -0.5rem;
}
.-right-4 {
  right: -1rem;
}
.-top-2 {
  top: -0.5rem;
}
.-top-3 {
  top: -0.75rem;
}
.-top-4 {
  top: -1rem;
}
.-top-md {
  top: calc(var(--spacing-md) * -1);
}
.bottom-0 {
  bottom: 0px;
}
.bottom-11 {
  bottom: 2.75rem;
}
.bottom-2 {
  bottom: 0.5rem;
}
.bottom-3 {
  bottom: 0.75rem;
}
.bottom-4 {
  bottom: 1rem;
}
.bottom-\[124px\] {
  bottom: 124px;
}
.bottom-full {
  bottom: 100%;
}
.left-0 {
  left: 0px;
}
.left-1 {
  left: 0.25rem;
}
.left-1\/2 {
  left: 50%;
}
.left-2 {
  left: 0.5rem;
}
.left-3 {
  left: 0.75rem;
}
.left-3\.5 {
  left: 0.875rem;
}
.left-3xl {
  left: var(--spacing-3xl);
}
.left-4 {
  left: 1rem;
}
.left-\[0\.6px\] {
  left: 0.6px;
}
.left-\[55px\] {
  left: 55px;
}
.left-\[82px\] {
  left: 82px;
}
.right-0 {
  right: 0px;
}
.right-1 {
  right: 0.25rem;
}
.right-1\.5 {
  right: 0.375rem;
}
.right-14 {
  right: 3.5rem;
}
.right-2 {
  right: 0.5rem;
}
.right-3 {
  right: 0.75rem;
}
.right-4 {
  right: 1rem;
}
.right-5 {
  right: 1.25rem;
}
.right-lg {
  right: var(--spacing-lg);
}
.right-md {
  right: var(--spacing-md);
}
.right-xl {
  right: var(--spacing-xl);
}
.top-0 {
  top: 0px;
}
.top-0\.5 {
  top: 0.125rem;
}
.top-1 {
  top: 0.25rem;
}
.top-1\/2 {
  top: 50%;
}
.top-10 {
  top: 2.5rem;
}
.top-15 {
  top: 3.75rem;
}
.top-16 {
  top: 4rem;
}
.top-2 {
  top: 0.5rem;
}
.top-3 {
  top: 0.75rem;
}
.top-4 {
  top: 1rem;
}
.top-\[0\.6px\] {
  top: 0.6px;
}
.top-\[108px\] {
  top: 108px;
}
.top-\[34px\] {
  top: 34px;
}
.top-full {
  top: 100%;
}
.top-lg {
  top: var(--spacing-lg);
}
.top-md {
  top: var(--spacing-md);
}
.top-xl {
  top: var(--spacing-xl);
}
.isolate {
  isolation: isolate;
}
.-z-10 {
  z-index: -10;
}
.z-0 {
  z-index: 0;
}
.z-10 {
  z-index: 10;
}
.z-100 {
  z-index: 100;
}
.z-20 {
  z-index: 20;
}
.z-200 {
  z-index: 200;
}
.z-30 {
  z-index: 30;
}
.z-40 {
  z-index: 40;
}
.z-50 {
  z-index: 50;
}
.z-75 {
  z-index: 75;
}
.z-\[1000\] {
  z-index: 1000;
}
.z-\[100\] {
  z-index: 100;
}
.z-\[11\] {
  z-index: 11;
}
.z-\[1\] {
  z-index: 1;
}
.z-\[200\] {
  z-index: 200;
}
.z-\[2147483000\] {
  z-index: 2147483000;
}
.z-\[300\] {
  z-index: 300;
}
.z-\[400\] {
  z-index: 400;
}
.z-\[500\] {
  z-index: 500;
}
.z-\[550\] {
  z-index: 550;
}
.z-\[600\] {
  z-index: 600;
}
.order-1 {
  order: 1;
}
.order-2 {
  order: 2;
}
.float-left {
  float: left;
}
.m-0 {
  margin: 0px;
}
.m-2 {
  margin: 0.5rem;
}
.m-md {
  margin: var(--spacing-md);
}
.-mx-3 {
  margin-left: -0.75rem;
  margin-right: -0.75rem;
}
.-mx-4 {
  margin-left: -1rem;
  margin-right: -1rem;
}
.-mx-5 {
  margin-left: -1.25rem;
  margin-right: -1.25rem;
}
.-my-1 {
  margin-top: -0.25rem;
  margin-bottom: -0.25rem;
}
.mx-1 {
  margin-left: 0.25rem;
  margin-right: 0.25rem;
}
.mx-4 {
  margin-left: 1rem;
  margin-right: 1rem;
}
.mx-6 {
  margin-left: 1.5rem;
  margin-right: 1.5rem;
}
.mx-auto {
  margin-left: auto;
  margin-right: auto;
}
.my-3 {
  margin-top: 0.75rem;
  margin-bottom: 0.75rem;
}
.my-4 {
  margin-top: 1rem;
  margin-bottom: 1rem;
}
.my-5 {
  margin-top: 1.25rem;
  margin-bottom: 1.25rem;
}
.my-lg {
  margin-top: var(--spacing-lg);
  margin-bottom: var(--spacing-lg);
}
.my-md {
  margin-top: var(--spacing-md);
  margin-bottom: var(--spacing-md);
}
.my-xl {
  margin-top: var(--spacing-xl);
  margin-bottom: var(--spacing-xl);
}
.\!mt-0 {
  margin-top: 0px !important;
}
.-mb-3 {
  margin-bottom: -0.75rem;
}
.-mb-px {
  margin-bottom: -1px;
}
.-ml-1 {
  margin-left: -0.25rem;
}
.-ml-md {
  margin-left: calc(var(--spacing-md) * -1);
}
.-ml-px {
  margin-left: -1px;
}
.-ml-xxs {
  margin-left: calc(var(--spacing-xxs) * -1);
}
.-mr-0\.5 {
  margin-right: -0.125rem;
}
.-mr-px {
  margin-right: -1px;
}
.-mr-xs {
  margin-right: calc(var(--spacing-xs) * -1);
}
.-mt-1 {
  margin-top: -0.25rem;
}
.-mt-16 {
  margin-top: -4rem;
}
.-mt-2 {
  margin-top: -0.5rem;
}
.-mt-4 {
  margin-top: -1rem;
}
.-mt-5 {
  margin-top: -1.25rem;
}
.-mt-lg {
  margin-top: calc(var(--spacing-lg) * -1);
}
.-mt-px {
  margin-top: -1px;
}
.mb-0 {
  margin-bottom: 0px;
}
.mb-1 {
  margin-bottom: 0.25rem;
}
.mb-10 {
  margin-bottom: 2.5rem;
}
.mb-2 {
  margin-bottom: 0.5rem;
}
.mb-2xl {
  margin-bottom: var(--spacing-2xl);
}
.mb-3 {
  margin-bottom: 0.75rem;
}
.mb-3xl {
  margin-bottom: var(--spacing-3xl);
}
.mb-4 {
  margin-bottom: 1rem;
}
.mb-5 {
  margin-bottom: 1.25rem;
}
.mb-8 {
  margin-bottom: 2rem;
}
.mb-layout-block {
  margin-bottom: var(--spacing-layout-block-mobile);
}
.mb-layout-section-padding {
  margin-bottom: var(--spacing-section-padding, 1.5rem);
}
.mb-lg {
  margin-bottom: var(--spacing-lg);
}
.mb-md {
  margin-bottom: var(--spacing-md);
}
.mb-sm {
  margin-bottom: var(--spacing-sm);
}
.mb-xl {
  margin-bottom: var(--spacing-xl);
}
.mb-xs {
  margin-bottom: var(--spacing-xs);
}
.me-0 {
  margin-inline-end: 0px;
}
.ml-0 {
  margin-left: 0px;
}
.ml-0\.5 {
  margin-left: 0.125rem;
}
.ml-1 {
  margin-left: 0.25rem;
}
.ml-2 {
  margin-left: 0.5rem;
}
.ml-3 {
  margin-left: 0.75rem;
}
.ml-4 {
  margin-left: 1rem;
}
.ml-auto {
  margin-left: auto;
}
.ml-lg {
  margin-left: var(--spacing-lg);
}
.ml-md {
  margin-left: var(--spacing-md);
}
.ml-xs {
  margin-left: var(--spacing-xs);
}
.mr-0 {
  margin-right: 0px;
}
.mr-1 {
  margin-right: 0.25rem;
}
.mr-2xl {
  margin-right: var(--spacing-2xl);
}
.mr-3 {
  margin-right: 0.75rem;
}
.mr-4 {
  margin-right: 1rem;
}
.mr-6 {
  margin-right: 1.5rem;
}
.mr-\[57px\] {
  margin-right: 57px;
}
.mr-auto {
  margin-right: auto;
}
.mr-xs {
  margin-right: var(--spacing-xs);
}
.ms-0 {
  margin-inline-start: 0px;
}
.mt-0 {
  margin-top: 0px;
}
.mt-0\.5 {
  margin-top: 0.125rem;
}
.mt-1 {
  margin-top: 0.25rem;
}
.mt-1\.5 {
  margin-top: 0.375rem;
}
.mt-10 {
  margin-top: 2.5rem;
}
.mt-15 {
  margin-top: 3.75rem;
}
.mt-2 {
  margin-top: 0.5rem;
}
.mt-20 {
  margin-top: 5rem;
}
.mt-2xl {
  margin-top: var(--spacing-2xl);
}
.mt-3 {
  margin-top: 0.75rem;
}
.mt-3xl {
  margin-top: var(--spacing-3xl);
}
.mt-4 {
  margin-top: 1rem;
}
.mt-5 {
  margin-top: 1.25rem;
}
.mt-6 {
  margin-top: 1.5rem;
}
.mt-8 {
  margin-top: 2rem;
}
.mt-auto {
  margin-top: auto;
}
.mt-lg {
  margin-top: var(--spacing-lg);
}
.mt-md {
  margin-top: var(--spacing-md);
}
.mt-sm {
  margin-top: var(--spacing-sm);
}
.mt-xl {
  margin-top: var(--spacing-xl);
}
.mt-xs {
  margin-top: var(--spacing-xs);
}
.box-border {
  box-sizing: border-box;
}
.line-clamp-1 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}
.line-clamp-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.line-clamp-3 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.line-clamp-4 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}
.block {
  display: block;
}
.inline-block {
  display: inline-block;
}
.inline {
  display: inline;
}
.flex {
  display: flex;
}
.inline-flex {
  display: inline-flex;
}
.table {
  display: table;
}
.grid {
  display: grid;
}
.inline-grid {
  display: inline-grid;
}
.contents {
  display: contents;
}
.hidden {
  display: none;
}
.aspect-\[268\/151\] {
  aspect-ratio: 268/151;
}
.aspect-\[3\/2\] {
  aspect-ratio: 3/2;
}
.aspect-\[320\/100\] {
  aspect-ratio: 320/100;
}
.aspect-\[344\/230\] {
  aspect-ratio: 344/230;
}
.aspect-\[4\/3\] {
  aspect-ratio: 4/3;
}
.aspect-square {
  aspect-ratio: 1 / 1;
}
.aspect-video {
  aspect-ratio: 16 / 9;
}
.size-10 {
  width: 2.5rem;
  height: 2.5rem;
}
.size-11 {
  width: 2.75rem;
  height: 2.75rem;
}
.size-14 {
  width: 3.5rem;
  height: 3.5rem;
}
.size-16 {
  width: 4rem;
  height: 4rem;
}
.size-20 {
  width: 5rem;
  height: 5rem;
}
.size-3 {
  width: 0.75rem;
  height: 0.75rem;
}
.size-3\.5 {
  width: 0.875rem;
  height: 0.875rem;
}
.size-3\/4 {
  width: 75%;
  height: 75%;
}
.size-4 {
  width: 1rem;
  height: 1rem;
}
.size-5 {
  width: 1.25rem;
  height: 1.25rem;
}
.size-6 {
  width: 1.5rem;
  height: 1.5rem;
}
.size-7 {
  width: 1.75rem;
  height: 1.75rem;
}
.size-8 {
  width: 2rem;
  height: 2rem;
}
.size-9 {
  width: 2.25rem;
  height: 2.25rem;
}
.size-\[11px\] {
  width: 11px;
  height: 11px;
}
.size-\[17px\] {
  width: 17px;
  height: 17px;
}
.size-\[22px\] {
  width: 22px;
  height: 22px;
}
.size-full {
  width: 100%;
  height: 100%;
}
.\!h-0 {
  height: 0px !important;
}
.\!h-4 {
  height: 1rem !important;
}
.h-0 {
  height: 0px;
}
.h-0\.5 {
  height: 0.125rem;
}
.h-1 {
  height: 0.25rem;
}
.h-1\.5 {
  height: 0.375rem;
}
.h-1\/2 {
  height: 50%;
}
.h-10 {
  height: 2.5rem;
}
.h-11 {
  height: 2.75rem;
}
.h-12 {
  height: 3rem;
}
.h-14 {
  height: 3.5rem;
}
.h-15 {
  height: 3.75rem;
}
.h-16 {
  height: 4rem;
}
.h-2 {
  height: 0.5rem;
}
.h-2\.5 {
  height: 0.625rem;
}
.h-20 {
  height: 5rem;
}
.h-24 {
  height: 6rem;
}
.h-3 {
  height: 0.75rem;
}
.h-3\.5 {
  height: 0.875rem;
}
.h-32 {
  height: 8rem;
}
.h-36 {
  height: 9rem;
}
.h-4 {
  height: 1rem;
}
.h-44 {
  height: 11rem;
}
.h-5 {
  height: 1.25rem;
}
.h-56 {
  height: 14rem;
}
.h-6 {
  height: 1.5rem;
}
.h-7 {
  height: 1.75rem;
}
.h-7\.5 {
  height: 1.875rem;
}
.h-8 {
  height: 2rem;
}
.h-9 {
  height: 2.25rem;
}
.h-\[100dvh\] {
  height: 100dvh;
}
.h-\[100px\] {
  height: 100px;
}
.h-\[104px\] {
  height: 104px;
}
.h-\[134px\] {
  height: 134px;
}
.h-\[147px\] {
  height: 147px;
}
.h-\[14px\] {
  height: 14px;
}
.h-\[16px\] {
  height: 16px;
}
.h-\[170px\] {
  height: 170px;
}
.h-\[18px\] {
  height: 18px;
}
.h-\[212px\] {
  height: 212px;
}
.h-\[220px\] {
  height: 220px;
}
.h-\[250px\] {
  height: 250px;
}
.h-\[268px\] {
  height: 268px;
}
.h-\[270px\] {
  height: 270px;
}
.h-\[30px\] {
  height: 30px;
}
.h-\[340px\] {
  height: 340px;
}
.h-\[352px\] {
  height: 352px;
}
.h-\[36px\] {
  height: 36px;
}
.h-\[38px\] {
  height: 38px;
}
.h-\[480px\] {
  height: 480px;
}
.h-\[48px\] {
  height: 48px;
}
.h-\[49px\] {
  height: 49px;
}
.h-\[50px\] {
  height: 50px;
}
.h-\[52px\] {
  height: 52px;
}
.h-\[57px\] {
  height: 57px;
}
.h-\[59px\] {
  height: 59px;
}
.h-\[60px\] {
  height: 60px;
}
.h-\[62px\] {
  height: 62px;
}
.h-\[70\%\] {
  height: 70%;
}
.h-\[72px\] {
  height: 72px;
}
.h-\[760px\] {
  height: 760px;
}
.h-\[84px\] {
  height: 84px;
}
.h-\[86px\] {
  height: 86px;
}
.h-\[90\%\] {
  height: 90%;
}
.h-\[calc\(\(100\%-8px\)\/3\)\] {
  height: calc((100% - 8px) / 3);
}
.h-\[calc\(100dvh-60px\)\] {
  height: calc(100dvh - 60px);
}
.h-\[calc\(50\%\+theme\(spacing\.md\)\)\] {
  height: calc(50% + var(--spacing-md));
}
.h-auto {
  height: auto;
}
.h-full {
  height: 100%;
}
.h-px {
  height: 1px;
}
.h-screen {
  height: 100vh;
}
.max-h-0 {
  max-height: 0px;
}
.max-h-120 {
  max-height: 30rem;
}
.max-h-60 {
  max-height: 15rem;
}
.max-h-9 {
  max-height: 2.25rem;
}
.max-h-96 {
  max-height: 24rem;
}
.max-h-\[100px\] {
  max-height: 100px;
}
.max-h-\[340px\] {
  max-height: 340px;
}
.max-h-\[400px\] {
  max-height: 400px;
}
.max-h-\[480px\] {
  max-height: 480px;
}
.max-h-\[58vh\] {
  max-height: 58vh;
}
.max-h-\[640px\] {
  max-height: 640px;
}
.max-h-\[80\%\] {
  max-height: 80%;
}
.max-h-\[900px\] {
  max-height: 900px;
}
.max-h-\[min\(85vh\2c 800px\)\] {
  max-height: min(85vh, 800px);
}
.max-h-full {
  max-height: 100%;
}
.min-h-0 {
  min-height: 0px;
}
.min-h-11 {
  min-height: 2.75rem;
}
.min-h-12 {
  min-height: 3rem;
}
.min-h-16 {
  min-height: 4rem;
}
.min-h-7 {
  min-height: 1.75rem;
}
.min-h-8 {
  min-height: 2rem;
}
.min-h-9 {
  min-height: 2.25rem;
}
.min-h-\[100dvh\] {
  min-height: 100dvh;
}
.min-h-\[380px\] {
  min-height: 380px;
}
.min-h-\[390px\] {
  min-height: 390px;
}
.min-h-\[391px\] {
  min-height: 391px;
}
.min-h-\[44px\] {
  min-height: 44px;
}
.min-h-\[48px\] {
  min-height: 48px;
}
.min-h-\[50px\] {
  min-height: 50px;
}
.min-h-\[55px\] {
  min-height: 55px;
}
.min-h-\[60px\] {
  min-height: 60px;
}
.min-h-\[62px\] {
  min-height: 62px;
}
.min-h-\[700px\] {
  min-height: 700px;
}
.min-h-full {
  min-height: 100%;
}
.\!w-4 {
  width: 1rem !important;
}
.w-0 {
  width: 0px;
}
.w-1 {
  width: 0.25rem;
}
.w-1\.5 {
  width: 0.375rem;
}
.w-1\/2 {
  width: 50%;
}
.w-1\/4 {
  width: 25%;
}
.w-10 {
  width: 2.5rem;
}
.w-11 {
  width: 2.75rem;
}
.w-12 {
  width: 3rem;
}
.w-14 {
  width: 3.5rem;
}
.w-16 {
  width: 4rem;
}
.w-2\/3 {
  width: 66.666667%;
}
.w-2\/5 {
  width: 40%;
}
.w-20 {
  width: 5rem;
}
.w-24 {
  width: 6rem;
}
.w-28 {
  width: 7rem;
}
.w-3 {
  width: 0.75rem;
}
.w-3\.5 {
  width: 0.875rem;
}
.w-3\/4 {
  width: 75%;
}
.w-3\/5 {
  width: 60%;
}
.w-32 {
  width: 8rem;
}
.w-36 {
  width: 9rem;
}
.w-4 {
  width: 1rem;
}
.w-4\/5 {
  width: 80%;
}
.w-40 {
  width: 10rem;
}
.w-48 {
  width: 12rem;
}
.w-5 {
  width: 1.25rem;
}
.w-50 {
  width: 12.5rem;
}
.w-56 {
  width: 14rem;
}
.w-6 {
  width: 1.5rem;
}
.w-64 {
  width: 16rem;
}
.w-7 {
  width: 1.75rem;
}
.w-72 {
  width: 18rem;
}
.w-8 {
  width: 2rem;
}
.w-8\/12 {
  width: 66.666667%;
}
.w-9 {
  width: 2.25rem;
}
.w-9\/12 {
  width: 75%;
}
.w-96 {
  width: 24rem;
}
.w-\[104px\] {
  width: 104px;
}
.w-\[110\%\] {
  width: 110%;
}
.w-\[118px\] {
  width: 118px;
}
.w-\[137px\] {
  width: 137px;
}
.w-\[145px\] {
  width: 145px;
}
.w-\[160px\] {
  width: 160px;
}
.w-\[170px\] {
  width: 170px;
}
.w-\[190px\] {
  width: 190px;
}
.w-\[200px\] {
  width: 200px;
}
.w-\[210px\] {
  width: 210px;
}
.w-\[220px\] {
  width: 220px;
}
.w-\[240px\] {
  width: 240px;
}
.w-\[248px\] {
  width: 248px;
}
.w-\[268px\] {
  width: 268px;
}
.w-\[298px\] {
  width: 298px;
}
.w-\[302px\] {
  width: 302px;
}
.w-\[320px\] {
  width: 320px;
}
.w-\[336px\] {
  width: 336px;
}
.w-\[340px\] {
  width: 340px;
}
.w-\[344px\] {
  width: 344px;
}
.w-\[360px\] {
  width: 360px;
}
.w-\[36px\] {
  width: 36px;
}
.w-\[375px\] {
  width: 375px;
}
.w-\[38px\] {
  width: 38px;
}
.w-\[406px\] {
  width: 406px;
}
.w-\[44px\] {
  width: 44px;
}
.w-\[50px\] {
  width: 50px;
}
.w-\[520px\] {
  width: 520px;
}
.w-\[52px\] {
  width: 52px;
}
.w-\[57px\] {
  width: 57px;
}
.w-\[60px\] {
  width: 60px;
}
.w-\[68px\] {
  width: 68px;
}
.w-\[70\%\] {
  width: 70%;
}
.w-\[784px\] {
  width: 784px;
}
.w-\[85\%\] {
  width: 85%;
}
.w-\[88px\] {
  width: 88px;
}
.w-\[90px\] {
  width: 90px;
}
.w-auto {
  width: auto;
}
.w-fit {
  width: -moz-fit-content;
  width: fit-content;
}
.w-full {
  width: 100%;
}
.w-max {
  width: -moz-max-content;
  width: max-content;
}
.min-w-0 {
  min-width: 0px;
}
.min-w-16 {
  min-width: 4rem;
}
.min-w-2 {
  min-width: 0.5rem;
}
.min-w-64 {
  min-width: 16rem;
}
.min-w-72 {
  min-width: 18rem;
}
.min-w-\[18px\] {
  min-width: 18px;
}
.min-w-\[256px\] {
  min-width: 256px;
}
.min-w-\[286px\] {
  min-width: 286px;
}
.min-w-\[300px\] {
  min-width: 300px;
}
.min-w-\[320px\] {
  min-width: 320px;
}
.min-w-\[44px\] {
  min-width: 44px;
}
.min-w-\[500px\] {
  min-width: 500px;
}
.min-w-\[56px\] {
  min-width: 56px;
}
.min-w-\[856px\] {
  min-width: 856px;
}
.min-w-\[860px\] {
  min-width: 860px;
}
.min-w-\[936px\] {
  min-width: 936px;
}
.min-w-full {
  min-width: 100%;
}
.min-w-max {
  min-width: -moz-max-content;
  min-width: max-content;
}
.min-w-px {
  min-width: 1px;
}
.max-w-2xl {
  max-width: 42rem;
}
.max-w-3xl {
  max-width: 48rem;
}
.max-w-\[1040px\] {
  max-width: 1040px;
}
.max-w-\[1140px\] {
  max-width: 1140px;
}
.max-w-\[1229px\] {
  max-width: 1229px;
}
.max-w-\[126px\] {
  max-width: 126px;
}
.max-w-\[1304px\] {
  max-width: 1304px;
}
.max-w-\[320px\] {
  max-width: 320px;
}
.max-w-\[340px\] {
  max-width: 340px;
}
.max-w-\[360px\] {
  max-width: 360px;
}
.max-w-\[375px\] {
  max-width: 375px;
}
.max-w-\[404px\] {
  max-width: 404px;
}
.max-w-\[420px\] {
  max-width: 420px;
}
.max-w-\[467px\] {
  max-width: 467px;
}
.max-w-\[480px\] {
  max-width: 480px;
}
.max-w-\[520px\] {
  max-width: 520px;
}
.max-w-\[60\%\] {
  max-width: 60%;
}
.max-w-\[640px\] {
  max-width: 640px;
}
.max-w-\[714px\] {
  max-width: 714px;
}
.max-w-\[784px\] {
  max-width: 784px;
}
.max-w-\[800px\] {
  max-width: 800px;
}
.max-w-\[860px\] {
  max-width: 860px;
}
.max-w-\[92px\] {
  max-width: 92px;
}
.max-w-\[calc\(100\%-1\.75rem\)\] {
  max-width: calc(100% - 1.75rem);
}
.max-w-\[min\(20rem\2c calc\(100vw-1\.5rem\)\)\] {
  max-width: min(20rem, calc(100vw - 1.5rem));
}
.max-w-full {
  max-width: 100%;
}
.max-w-md {
  max-width: 28rem;
}
.max-w-none {
  max-width: none;
}
.max-w-screen-2xl {
  max-width: 1536px;
}
.max-w-screen-xl {
  max-width: 1280px;
}
.max-w-sm {
  max-width: 24rem;
}
.max-w-xl {
  max-width: 36rem;
}
.max-w-xs {
  max-width: 20rem;
}
.flex-1 {
  flex: 1 1 0%;
}
.flex-\[0\.3\] {
  flex: 0.3;
}
.flex-\[0\.7\] {
  flex: 0.7;
}
.flex-none {
  flex: none;
}
.flex-shrink {
  flex-shrink: 1;
}
.flex-shrink-0 {
  flex-shrink: 0;
}
.shrink {
  flex-shrink: 1;
}
.shrink-0 {
  flex-shrink: 0;
}
.flex-grow {
  flex-grow: 1;
}
.grow {
  flex-grow: 1;
}
.basis-0 {
  flex-basis: 0px;
}
.border-collapse {
  border-collapse: collapse;
}
.origin-center {
  transform-origin: center;
}
.origin-top-right {
  transform-origin: top right;
}
.-translate-x-1\/2 {
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-1 {
  --tw-translate-y: -0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-1\/2 {
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-\[60\%\] {
  --tw-translate-y: -60%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-\[calc\(100\%\+12px\)\] {
  --tw-translate-y: calc(calc(100% + 12px) * -1);
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-full {
  --tw-translate-y: -100%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-\[60\%\] {
  --tw-translate-x: 60%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-0 {
  --tw-translate-y: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-1\/2 {
  --tw-translate-y: 50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-2 {
  --tw-translate-y: 0.5rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-\[60\%\] {
  --tw-translate-y: 60%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-full {
  --tw-translate-y: 100%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-rotate-90 {
  --tw-rotate: -90deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-180 {
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-100 {
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-75 {
  --tw-scale-x: .75;
  --tw-scale-y: .75;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-95 {
  --tw-scale-x: .95;
  --tw-scale-y: .95;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-y-0 {
  --tw-scale-y: 0;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.scale-y-100 {
  --tw-scale-y: 1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
@keyframes pulse {
  50% {
    opacity: .5;
  }
}
.animate-pulse {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.animate-spin {
  animation: spin 1s linear infinite;
}
.cursor-default {
  cursor: default;
}
.cursor-grab {
  cursor: grab;
}
.cursor-grabbing {
  cursor: grabbing;
}
.cursor-not-allowed {
  cursor: not-allowed;
}
.cursor-pointer {
  cursor: pointer;
}
.cursor-text {
  cursor: text;
}
.select-none {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.resize-none {
  resize: none;
}
.resize {
  resize: both;
}
.snap-none {
  scroll-snap-type: none;
}
.snap-x {
  scroll-snap-type: x var(--tw-scroll-snap-strictness);
}
.snap-mandatory {
  --tw-scroll-snap-strictness: mandatory;
}
.snap-start {
  scroll-snap-align: start;
}
.scroll-px-xl {
  scroll-padding-left: var(--spacing-xl);
  scroll-padding-right: var(--spacing-xl);
}
.list-decimal {
  list-style-type: decimal;
}
.list-disc {
  list-style-type: disc;
}
.list-none {
  list-style-type: none;
}
.appearance-none {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}
.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.grid-cols-\[100px_1fr\] {
  grid-template-columns: 100px 1fr;
}
.grid-cols-\[120px_1fr\] {
  grid-template-columns: 120px 1fr;
}
.grid-cols-\[120px_1fr_1fr\] {
  grid-template-columns: 120px 1fr 1fr;
}
.grid-cols-\[88px_auto_auto\] {
  grid-template-columns: 88px auto auto;
}
.grid-rows-\[0fr\] {
  grid-template-rows: 0fr;
}
.grid-rows-\[1fr\] {
  grid-template-rows: 1fr;
}
.flex-row {
  flex-direction: row;
}
.flex-col {
  flex-direction: column;
}
.flex-wrap {
  flex-wrap: wrap;
}
.flex-nowrap {
  flex-wrap: nowrap;
}
.place-items-center {
  place-items: center;
}
.content-start {
  align-content: flex-start;
}
.items-start {
  align-items: flex-start;
}
.items-end {
  align-items: flex-end;
}
.items-center {
  align-items: center;
}
.items-baseline {
  align-items: baseline;
}
.items-stretch {
  align-items: stretch;
}
.justify-start {
  justify-content: flex-start;
}
.justify-end {
  justify-content: flex-end;
}
.justify-center {
  justify-content: center;
}
.justify-between {
  justify-content: space-between;
}
.justify-around {
  justify-content: space-around;
}
.justify-evenly {
  justify-content: space-evenly;
}
.gap-0 {
  gap: 0px;
}
.gap-0\.5 {
  gap: 0.125rem;
}
.gap-1 {
  gap: 0.25rem;
}
.gap-1\.5 {
  gap: 0.375rem;
}
.gap-10 {
  gap: 2.5rem;
}
.gap-2 {
  gap: 0.5rem;
}
.gap-2\.5 {
  gap: 0.625rem;
}
.gap-2xl {
  gap: var(--spacing-2xl);
}
.gap-3 {
  gap: 0.75rem;
}
.gap-3xl {
  gap: var(--spacing-3xl);
}
.gap-4 {
  gap: 1rem;
}
.gap-4xl {
  gap: var(--spacing-4xl);
}
.gap-5 {
  gap: 1.25rem;
}
.gap-6 {
  gap: 1.5rem;
}
.gap-8 {
  gap: 2rem;
}
.gap-\[6px\] {
  gap: 6px;
}
.gap-layout-block-tablet {
  gap: var(--spacing-layout-block-tablet);
}
.gap-lg {
  gap: var(--spacing-lg);
}
.gap-md {
  gap: var(--spacing-md);
}
.gap-px {
  gap: 1px;
}
.gap-sm {
  gap: var(--spacing-sm);
}
.gap-xl {
  gap: var(--spacing-xl);
}
.gap-xs {
  gap: var(--spacing-xs);
}
.gap-xxs {
  gap: var(--spacing-xxs);
}
.gap-x-1 {
  -moz-column-gap: 0.25rem;
       column-gap: 0.25rem;
}
.gap-x-1\.5 {
  -moz-column-gap: 0.375rem;
       column-gap: 0.375rem;
}
.gap-x-2 {
  -moz-column-gap: 0.5rem;
       column-gap: 0.5rem;
}
.gap-x-2xl {
  -moz-column-gap: var(--spacing-2xl);
       column-gap: var(--spacing-2xl);
}
.gap-x-3 {
  -moz-column-gap: 0.75rem;
       column-gap: 0.75rem;
}
.gap-x-4 {
  -moz-column-gap: 1rem;
       column-gap: 1rem;
}
.gap-x-6 {
  -moz-column-gap: 1.5rem;
       column-gap: 1.5rem;
}
.gap-x-lg {
  -moz-column-gap: var(--spacing-lg);
       column-gap: var(--spacing-lg);
}
.gap-x-md {
  -moz-column-gap: var(--spacing-md);
       column-gap: var(--spacing-md);
}
.gap-x-sm {
  -moz-column-gap: var(--spacing-sm);
       column-gap: var(--spacing-sm);
}
.gap-x-xl {
  -moz-column-gap: var(--spacing-xl);
       column-gap: var(--spacing-xl);
}
.gap-x-xs {
  -moz-column-gap: var(--spacing-xs);
       column-gap: var(--spacing-xs);
}
.gap-y-1 {
  row-gap: 0.25rem;
}
.gap-y-2 {
  row-gap: 0.5rem;
}
.gap-y-2\.5 {
  row-gap: 0.625rem;
}
.gap-y-2xl {
  row-gap: var(--spacing-2xl);
}
.gap-y-3 {
  row-gap: 0.75rem;
}
.gap-y-3xl {
  row-gap: var(--spacing-3xl);
}
.gap-y-8 {
  row-gap: 2rem;
}
.gap-y-lg {
  row-gap: var(--spacing-lg);
}
.gap-y-md {
  row-gap: var(--spacing-md);
}
.gap-y-sm {
  row-gap: var(--spacing-sm);
}
.gap-y-xl {
  row-gap: var(--spacing-xl);
}
.gap-y-xs {
  row-gap: var(--spacing-xs);
}
.space-x-1 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(0.25rem * var(--tw-space-x-reverse));
  margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-x-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(0.5rem * var(--tw-space-x-reverse));
  margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-x-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-x-reverse: 0;
  margin-right: calc(0.75rem * var(--tw-space-x-reverse));
  margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-y-0 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0px * var(--tw-space-y-reverse));
}
.space-y-1 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}
.space-y-2 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
.space-y-2xl > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(var(--spacing-2xl) * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(var(--spacing-2xl) * var(--tw-space-y-reverse));
}
.space-y-3 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}
.space-y-4 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
.space-y-8 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(2rem * var(--tw-space-y-reverse));
}
.space-y-lg > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(var(--spacing-lg) * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(var(--spacing-lg) * var(--tw-space-y-reverse));
}
.space-y-md > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(var(--spacing-md) * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(var(--spacing-md) * var(--tw-space-y-reverse));
}
.space-y-sm > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(var(--spacing-sm) * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(var(--spacing-sm) * var(--tw-space-y-reverse));
}
.space-y-xl > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(var(--spacing-xl) * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(var(--spacing-xl) * var(--tw-space-y-reverse));
}
.space-y-xs > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(var(--spacing-xs) * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(var(--spacing-xs) * var(--tw-space-y-reverse));
}
.divide-y > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-y-reverse: 0;
  border-top-width: calc(var(--border-width-default) * calc(1 - var(--tw-divide-y-reverse)));
  border-bottom-width: calc(var(--border-width-default) * var(--tw-divide-y-reverse));
}
.divide-gray-200 > :not([hidden]) ~ :not([hidden]) {
  --tw-divide-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-divide-opacity, 1));
}
.self-start {
  align-self: flex-start;
}
.self-end {
  align-self: flex-end;
}
.self-center {
  align-self: center;
}
.self-stretch {
  align-self: stretch;
}
.overflow-auto {
  overflow: auto;
}
.overflow-hidden {
  overflow: hidden;
}
.overflow-clip {
  overflow: clip;
}
.overflow-visible {
  overflow: visible;
}
.overflow-x-auto {
  overflow-x: auto;
}
.overflow-y-auto {
  overflow-y: auto;
}
.overflow-x-hidden {
  overflow-x: hidden;
}
.overflow-y-hidden {
  overflow-y: hidden;
}
.overscroll-contain {
  overscroll-behavior: contain;
}
.overscroll-x-contain {
  overscroll-behavior-x: contain;
}
.scroll-auto {
  scroll-behavior: auto;
}
.scroll-smooth {
  scroll-behavior: smooth;
}
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.hyphens-none {
  hyphens: none;
}
.hyphens-auto {
  hyphens: auto;
}
.whitespace-normal {
  white-space: normal;
}
.whitespace-nowrap {
  white-space: nowrap;
}
.whitespace-pre {
  white-space: pre;
}
.whitespace-pre-line {
  white-space: pre-line;
}
.break-normal {
  overflow-wrap: normal;
  word-break: normal;
}
.break-words {
  overflow-wrap: break-word;
}
.break-all {
  word-break: break-all;
}
.break-keep {
  word-break: keep-all;
}
.rounded {
  border-radius: 0.25rem;
}
.rounded-2xl {
  border-radius: var(--rounded-2xl);
}
.rounded-\[inherit\] {
  border-radius: inherit;
}
.rounded-base {
  border-radius: var(--rounded-base);
}
.rounded-button {
  border-radius: var(--rounded-md);
}
.rounded-card {
  border-radius: var(--rounded-lg);
}
.rounded-full {
  border-radius: 9999px;
}
.rounded-lg {
  border-radius: var(--rounded-lg);
}
.rounded-md {
  border-radius: var(--rounded-md);
}
.rounded-none {
  border-radius: var(--rounded-none);
}
.rounded-sm {
  border-radius: var(--rounded-sm);
}
.rounded-xl {
  border-radius: 0.75rem;
}
.rounded-xs {
  border-radius: var(--rounded-xs);
}
.\!rounded-b-card {
  border-bottom-right-radius: var(--rounded-lg) !important;
  border-bottom-left-radius: var(--rounded-lg) !important;
}
.\!rounded-b-none {
  border-bottom-right-radius: var(--rounded-none) !important;
  border-bottom-left-radius: var(--rounded-none) !important;
}
.\!rounded-b-xl {
  border-bottom-right-radius: 0.75rem !important;
  border-bottom-left-radius: 0.75rem !important;
}
.\!rounded-l-none {
  border-top-left-radius: var(--rounded-none) !important;
  border-bottom-left-radius: var(--rounded-none) !important;
}
.\!rounded-r-none {
  border-top-right-radius: var(--rounded-none) !important;
  border-bottom-right-radius: var(--rounded-none) !important;
}
.rounded-b-2xl {
  border-bottom-right-radius: var(--rounded-2xl);
  border-bottom-left-radius: var(--rounded-2xl);
}
.rounded-b-\[150px\] {
  border-bottom-right-radius: 150px;
  border-bottom-left-radius: 150px;
}
.rounded-b-base {
  border-bottom-right-radius: var(--rounded-base);
  border-bottom-left-radius: var(--rounded-base);
}
.rounded-b-lg {
  border-bottom-right-radius: var(--rounded-lg);
  border-bottom-left-radius: var(--rounded-lg);
}
.rounded-b-none {
  border-bottom-right-radius: var(--rounded-none);
  border-bottom-left-radius: var(--rounded-none);
}
.rounded-l-base {
  border-top-left-radius: var(--rounded-base);
  border-bottom-left-radius: var(--rounded-base);
}
.rounded-l-none {
  border-top-left-radius: var(--rounded-none);
  border-bottom-left-radius: var(--rounded-none);
}
.rounded-r-base {
  border-top-right-radius: var(--rounded-base);
  border-bottom-right-radius: var(--rounded-base);
}
.rounded-r-none {
  border-top-right-radius: var(--rounded-none);
  border-bottom-right-radius: var(--rounded-none);
}
.rounded-t-2xl {
  border-top-left-radius: var(--rounded-2xl);
  border-top-right-radius: var(--rounded-2xl);
}
.rounded-t-\[150px\] {
  border-top-left-radius: 150px;
  border-top-right-radius: 150px;
}
.rounded-t-base {
  border-top-left-radius: var(--rounded-base);
  border-top-right-radius: var(--rounded-base);
}
.rounded-t-lg {
  border-top-left-radius: var(--rounded-lg);
  border-top-right-radius: var(--rounded-lg);
}
.rounded-t-xl {
  border-top-left-radius: 0.75rem;
  border-top-right-radius: 0.75rem;
}
.\!rounded-bl-none {
  border-bottom-left-radius: var(--rounded-none) !important;
}
.\!rounded-br-none {
  border-bottom-right-radius: var(--rounded-none) !important;
}
.\!rounded-tl-none {
  border-top-left-radius: var(--rounded-none) !important;
}
.\!rounded-tr-none {
  border-top-right-radius: var(--rounded-none) !important;
}
.\!border-0 {
  border-width: 0px !important;
}
.\!border-2 {
  border-width: 2px !important;
}
.border {
  border-width: var(--border-width-default);
}
.border-0 {
  border-width: 0px;
}
.border-16 {
  border-width: 16px;
}
.border-2 {
  border-width: 2px;
}
.border-4 {
  border-width: 4px;
}
.border-focus {
  border-width: var(--border-width-focus);
}
.border-strong {
  border-width: var(--border-width-strong);
}
.border-x {
  border-left-width: var(--border-width-default);
  border-right-width: var(--border-width-default);
}
.border-x-\[4px\] {
  border-left-width: 4px;
  border-right-width: 4px;
}
.border-x-\[6px\] {
  border-left-width: 6px;
  border-right-width: 6px;
}
.\!border-b-0 {
  border-bottom-width: 0px !important;
}
.\!border-t-0 {
  border-top-width: 0px !important;
}
.border-b {
  border-bottom-width: var(--border-width-default);
}
.border-b-2 {
  border-bottom-width: 2px;
}
.border-b-3 {
  border-bottom-width: 3px;
}
.border-b-\[6px\] {
  border-bottom-width: 6px;
}
.border-l {
  border-left-width: var(--border-width-default);
}
.border-l-2 {
  border-left-width: 2px;
}
.border-l-3 {
  border-left-width: 3px;
}
.border-r {
  border-right-width: var(--border-width-default);
}
.border-r-2 {
  border-right-width: 2px;
}
.border-r-3 {
  border-right-width: 3px;
}
.border-t {
  border-top-width: var(--border-width-default);
}
.border-t-0 {
  border-top-width: 0px;
}
.border-t-2 {
  border-top-width: 2px;
}
.border-t-3 {
  border-top-width: 3px;
}
.border-t-\[10px\] {
  border-top-width: 10px;
}
.border-t-\[6px\] {
  border-top-width: 6px;
}
.border-dashed {
  border-style: dashed;
}
.\!border-border-focus {
  border-color: var(--color-border-focus) !important;
}
.\!border-feedback-error-border {
  border-color: var(--color-feedback-error-border) !important;
}
.border-\[\#25d366\] {
  --tw-border-opacity: 1;
  border-color: rgb(37 211 102 / var(--tw-border-opacity, 1));
}
.border-\[var\(--color-social-whatsapp-900\)\] {
  border-color: var(--color-social-whatsapp-900);
}
.border-black {
  --tw-border-opacity: 1;
  border-color: rgb(0 0 0 / var(--tw-border-opacity, 1));
}
.border-black\/10 {
  border-color: rgb(0 0 0 / 0.1);
}
.border-blue-100 {
  --tw-border-opacity: 1;
  border-color: rgb(219 234 254 / var(--tw-border-opacity, 1));
}
.border-border {
  border-color: var(--color-border-default);
}
.border-border-brand {
  border-color: var(--color-border-brand);
}
.border-border-brand-alt {
  border-color: var(--color-border-brand-alt);
}
.border-border-default {
  border-color: var(--color-border-default);
}
.border-border-focus {
  border-color: var(--color-border-focus);
}
.border-border-inverse {
  border-color: var(--color-border-inverse);
}
.border-border-none {
  border-color: var(--color-border-none);
}
.border-border-strong {
  border-color: var(--color-border-strong);
}
.border-border-subtle {
  border-color: var(--color-border-subtle);
}
.border-brand-alt-border {
  border-color: var(--color-brand-alt-border);
}
.border-brand-alt-fill {
  border-color: var(--color-brand-alt-fill);
}
.border-brand-fill {
  border-color: var(--color-brand-fill);
}
.border-brand-on-fill {
  border-color: var(--color-brand-on-fill);
}
.border-brand-subtle-border {
  border-color: var(--color-brand-subtle-border);
}
.border-current {
  border-color: currentColor;
}
.border-destructive-border {
  border-color: var(--color-destructive-border);
}
.border-feedback-success {
  border-color: var(--color-feedback-success);
}
.border-feedback-warning {
  border-color: var(--color-feedback-warning);
}
.border-fill-brand {
  border-color: var(--color-fill-brand);
}
.border-fill-brand-alt {
  border-color: var(--color-fill-brand-alt);
}
.border-fill-disabled {
  border-color: var(--color-fill-disabled);
}
.border-finance-fill {
  border-color: var(--color-finance-fill);
}
.border-finance-fill-hover {
  border-color: var(--color-finance-fill-hover);
}
.border-footer-divider {
  border-color: var(--footer-divider);
}
.border-gray-200 {
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
}
.border-gray-300 {
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
}
.border-gray-800 {
  --tw-border-opacity: 1;
  border-color: rgb(31 41 55 / var(--tw-border-opacity, 1));
}
.border-inverse-border {
  border-color: var(--color-inverse-border);
}
.border-navigation-link-underline-hover {
  border-color: var(--navigation-link-underline-hover);
}
.border-slate-800 {
  --tw-border-opacity: 1;
  border-color: rgb(30 41 59 / var(--tw-border-opacity, 1));
}
.border-social-whatsapp-700 {
  border-color: var(--color-social-whatsapp-700);
}
.border-transparent {
  border-color: transparent;
}
.border-white {
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity, 1));
}
.border-x-transparent {
  border-left-color: transparent;
  border-right-color: transparent;
}
.\!border-r-transparent {
  border-right-color: transparent !important;
}
.border-b-black\/80 {
  border-bottom-color: rgb(0 0 0 / 0.8);
}
.border-b-border-subtle {
  border-bottom-color: var(--color-border-subtle);
}
.border-b-surface-inverse {
  border-bottom-color: var(--color-surface-inverse);
}
.border-t-black\/80 {
  border-top-color: rgb(0 0 0 / 0.8);
}
.border-t-blue-600 {
  --tw-border-opacity: 1;
  border-top-color: rgb(37 99 235 / var(--tw-border-opacity, 1));
}
.border-t-border-strong {
  border-top-color: var(--color-border-strong);
}
.border-t-brand-fill {
  border-top-color: var(--color-brand-fill);
}
.border-t-surface-inverse {
  border-top-color: var(--color-surface-inverse);
}
.border-t-transparent {
  border-top-color: transparent;
}
.border-opacity-10 {
  --tw-border-opacity: 0.1;
}
.\!bg-brand-alt-fill {
  background-color: var(--color-brand-alt-fill) !important;
}
.\!bg-transparent {
  background-color: transparent !important;
}
.bg-\[\#00A6CE\] {
  --tw-bg-opacity: 1;
  background-color: rgb(0 166 206 / var(--tw-bg-opacity, 1));
}
.bg-\[\#0EA5E9\] {
  --tw-bg-opacity: 1;
  background-color: rgb(14 165 233 / var(--tw-bg-opacity, 1));
}
.bg-\[\#389660\] {
  --tw-bg-opacity: 1;
  background-color: rgb(56 150 96 / var(--tw-bg-opacity, 1));
}
.bg-\[\#DDDFE2\] {
  --tw-bg-opacity: 1;
  background-color: rgb(221 223 226 / var(--tw-bg-opacity, 1));
}
.bg-\[\#F1C80E\] {
  --tw-bg-opacity: 1;
  background-color: rgb(241 200 14 / var(--tw-bg-opacity, 1));
}
.bg-\[\#F2F6F7\] {
  --tw-bg-opacity: 1;
  background-color: rgb(242 246 247 / var(--tw-bg-opacity, 1));
}
.bg-\[\#F9F9F9\] {
  --tw-bg-opacity: 1;
  background-color: rgb(249 249 249 / var(--tw-bg-opacity, 1));
}
.bg-\[\#e6e7eb\] {
  --tw-bg-opacity: 1;
  background-color: rgb(230 231 235 / var(--tw-bg-opacity, 1));
}
.bg-\[\#f9f9f9\] {
  --tw-bg-opacity: 1;
  background-color: rgb(249 249 249 / var(--tw-bg-opacity, 1));
}
.bg-\[color-mix\(in_srgb\2c var\(--color-overlay-subtle\)_30\%\2c transparent\)\] {
  background-color: color-mix(in srgb,var(--color-overlay-subtle) 30%,transparent);
}
.bg-\[var\(--color-social-whatsapp-50\)\] {
  background-color: var(--color-social-whatsapp-50);
}
.bg-badge-default-fill {
  background-color: var(--badge-default-fill);
}
.bg-badge-promoted-fill {
  background-color: var(--badge-promoted-fill);
}
.bg-badge-tag-bg {
  background-color: var(--badge-tag-bg);
}
.bg-badge-tag-hover {
  background-color: var(--badge-tag-hover);
}
.bg-black {
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
}
.bg-black\/20 {
  background-color: rgb(0 0 0 / 0.2);
}
.bg-black\/60 {
  background-color: rgb(0 0 0 / 0.6);
}
.bg-black\/70 {
  background-color: rgb(0 0 0 / 0.7);
}
.bg-black\/80 {
  background-color: rgb(0 0 0 / 0.8);
}
.bg-blue-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1));
}
.bg-border {
  background-color: var(--color-border-default);
}
.bg-border-focus {
  background-color: var(--color-border-focus);
}
.bg-border-subtle {
  background-color: var(--color-border-subtle);
}
.bg-brand-alt-fill {
  background-color: var(--color-brand-alt-fill);
}
.bg-brand-alt-fill-active {
  background-color: var(--color-brand-alt-fill-active);
}
.bg-brand-alt-fill-hover {
  background-color: var(--color-brand-alt-fill-hover);
}
.bg-brand-alt-text-active {
  background-color: var(--color-brand-alt-text-active);
}
.bg-brand-alt-text-hover {
  background-color: var(--color-brand-alt-text-hover);
}
.bg-brand-fill {
  background-color: var(--color-brand-fill);
}
.bg-brand-subtle-fill {
  background-color: var(--color-brand-subtle-fill);
}
.bg-data-categorical-1 {
  background-color: var(--color-data-categorical-1);
}
.bg-data-categorical-2 {
  background-color: var(--color-data-categorical-2);
}
.bg-destructive-fill {
  background-color: var(--color-destructive-fill);
}
.bg-feedback-error {
  background-color: var(--color-feedback-error);
}
.bg-feedback-success {
  background-color: var(--color-feedback-success);
}
.bg-feedback-success-surface {
  background-color: var(--color-feedback-success-surface);
}
.bg-feedback-warning {
  background-color: var(--color-feedback-warning);
}
.bg-feedback-warning-surface {
  background-color: var(--color-feedback-warning-surface);
}
.bg-fill-brand {
  background-color: var(--color-fill-brand);
}
.bg-fill-brand-alt {
  background-color: var(--color-fill-brand-alt);
}
.bg-fill-brand-dark {
  background-color: var(--color-fill-brand-dark);
}
.bg-fill-disabled {
  background-color: var(--color-fill-disabled);
}
.bg-fill-ghost {
  background-color: var(--color-fill-ghost);
}
.bg-fill-light {
  background-color: var(--color-fill-light);
}
.bg-fill-neutral {
  background-color: var(--color-fill-neutral);
}
.bg-fill-none {
  background-color: var(--color-fill-none);
}
.bg-fill-positive {
  background-color: var(--color-fill-positive);
}
.bg-fill-subtle {
  background-color: var(--color-fill-subtle);
}
.bg-finance-fill {
  background-color: var(--color-finance-fill);
}
.bg-finance-fill-active {
  background-color: var(--color-finance-fill-active);
}
.bg-finance-fill-dark {
  background-color: var(--color-finance-fill-dark);
}
.bg-finance-fill-hover {
  background-color: var(--color-finance-fill-hover);
}
.bg-footer-background {
  background-color: var(--footer-background);
}
.bg-graphic-neutral {
  background-color: var(--color-graphic-neutral);
}
.bg-gray-100 {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}
.bg-gray-200 {
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
}
.bg-gray-300 {
  --tw-bg-opacity: 1;
  background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));
}
.bg-gray-50 {
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
}
.bg-gray-500 {
  --tw-bg-opacity: 1;
  background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1));
}
.bg-icon-brand-alt {
  background-color: var(--color-icon-brand-alt);
}
.bg-icon-light {
  background-color: var(--color-icon-light);
}
.bg-inverse-fill {
  background-color: var(--color-inverse-fill);
}
.bg-navigation-background {
  background-color: var(--navigation-background);
}
.bg-navigation-button1-fill {
  background-color: var(--navigation-button1-fill);
}
.bg-navigation-button2-fill {
  background-color: var(--navigation-button2-fill);
}
.bg-navigation-link-fill-hover {
  background-color: var(--navigation-link-fill-hover);
}
.bg-overlay-dark {
  background-color: var(--color-overlay-dark);
}
.bg-overlay-default {
  background-color: var(--color-overlay-default);
}
.bg-overlay-image {
  background-color: var(--color-overlay-image);
}
.bg-overlay-subtle {
  background-color: var(--color-overlay-subtle);
}
.bg-social-whatsapp-50 {
  background-color: var(--color-social-whatsapp-50);
}
.bg-surface-brand {
  background-color: var(--color-brand-fill);
}
.bg-surface-brand-alt {
  background-color: var(--color-brand-alt-fill);
}
.bg-surface-default {
  background-color: var(--color-surface-default);
}
.bg-surface-disabled {
  background-color: var(--color-fill-disabled);
}
.bg-surface-inverse {
  background-color: var(--color-surface-inverse);
}
.bg-surface-raised {
  background-color: var(--color-surface-raised);
}
.bg-surface-subtle {
  background-color: var(--color-surface-subtle);
}
.bg-surface-sunken {
  background-color: var(--color-surface-sunken);
}
.bg-text-disabled {
  background-color: var(--color-text-disabled);
}
.bg-transparent {
  background-color: transparent;
}
.bg-white {
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
}
.bg-white\/70 {
  background-color: rgb(255 255 255 / 0.7);
}
.bg-opacity-75 {
  --tw-bg-opacity: 0.75;
}
.bg-gradient-to-b {
  background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
}
.bg-gradient-to-l {
  background-image: linear-gradient(to left, var(--tw-gradient-stops));
}
.bg-gradient-to-r {
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
}
.bg-gradient-to-t {
  background-image: linear-gradient(to top, var(--tw-gradient-stops));
}
.from-amber-400 {
  --tw-gradient-from: #fbbf24 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(251 191 36 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-black {
  --tw-gradient-from: #000 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-black\/50 {
  --tw-gradient-from: rgb(0 0 0 / 0.5) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-black\/85 {
  --tw-gradient-from: rgb(0 0 0 / 0.85) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-brand-alt-fill {
  --tw-gradient-from: var(--color-brand-alt-fill) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-overlay-gradient-start {
  --tw-gradient-from: var(--color-overlay-gradient-start) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-slate-300 {
  --tw-gradient-from: #cbd5e1 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(203 213 225 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-surface-default {
  --tw-gradient-from: var(--color-surface-default) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.via-black\/40 {
  --tw-gradient-to: rgb(0 0 0 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), rgb(0 0 0 / 0.4) var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.to-amber-600 {
  --tw-gradient-to: #d97706 var(--tw-gradient-to-position);
}
.to-brand-fill {
  --tw-gradient-to: var(--color-brand-fill) var(--tw-gradient-to-position);
}
.to-slate-400 {
  --tw-gradient-to: #94a3b8 var(--tw-gradient-to-position);
}
.to-transparent {
  --tw-gradient-to: transparent var(--tw-gradient-to-position);
}
.to-35\% {
  --tw-gradient-to-position: 35%;
}
.to-45\% {
  --tw-gradient-to-position: 45%;
}
.bg-cover {
  background-size: cover;
}
.bg-clip-padding {
  background-clip: padding-box;
}
.bg-center {
  background-position: center;
}
.fill-transparent {
  fill: transparent;
}
.stroke-data-categorical-1 {
  stroke: var(--color-data-categorical-1);
}
.stroke-data-categorical-2 {
  stroke: var(--color-data-categorical-2);
}
.object-contain {
  -o-object-fit: contain;
     object-fit: contain;
}
.object-cover {
  -o-object-fit: cover;
     object-fit: cover;
}
.object-right {
  -o-object-position: right;
     object-position: right;
}
.\!p-0 {
  padding: 0px !important;
}
.p-0 {
  padding: 0px;
}
.p-1 {
  padding: 0.25rem;
}
.p-1\.5 {
  padding: 0.375rem;
}
.p-10 {
  padding: 2.5rem;
}
.p-2 {
  padding: 0.5rem;
}
.p-2xl {
  padding: var(--spacing-2xl);
}
.p-3 {
  padding: 0.75rem;
}
.p-3xl {
  padding: var(--spacing-3xl);
}
.p-4 {
  padding: 1rem;
}
.p-5 {
  padding: 1.25rem;
}
.p-6 {
  padding: 1.5rem;
}
.p-8 {
  padding: 2rem;
}
.p-\[10px\] {
  padding: 10px;
}
.p-lg {
  padding: var(--spacing-lg);
}
.p-md {
  padding: var(--spacing-md);
}
.p-px {
  padding: 1px;
}
.p-sm {
  padding: var(--spacing-sm);
}
.p-xl {
  padding: var(--spacing-xl);
}
.p-xs {
  padding: var(--spacing-xs);
}
.p-xxs {
  padding: var(--spacing-xxs);
}
.\!px-0 {
  padding-left: 0px !important;
  padding-right: 0px !important;
}
.px-0 {
  padding-left: 0px;
  padding-right: 0px;
}
.px-0\.5 {
  padding-left: 0.125rem;
  padding-right: 0.125rem;
}
.px-1 {
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
.px-1\.5 {
  padding-left: 0.375rem;
  padding-right: 0.375rem;
}
.px-12 {
  padding-left: 3rem;
  padding-right: 3rem;
}
.px-2 {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-2\.5 {
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
.px-2xl {
  padding-left: var(--spacing-2xl);
  padding-right: var(--spacing-2xl);
}
.px-3 {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.px-4 {
  padding-left: 1rem;
  padding-right: 1rem;
}
.px-5 {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
}
.px-6 {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.px-8 {
  padding-left: 2rem;
  padding-right: 2rem;
}
.px-lg {
  padding-left: var(--spacing-lg);
  padding-right: var(--spacing-lg);
}
.px-md {
  padding-left: var(--spacing-md);
  padding-right: var(--spacing-md);
}
.px-page-gutter {
  padding-left: var(--spacing-page-gutter, 1rem);
  padding-right: var(--spacing-page-gutter, 1rem);
}
.px-sm {
  padding-left: var(--spacing-sm);
  padding-right: var(--spacing-sm);
}
.px-xl {
  padding-left: var(--spacing-xl);
  padding-right: var(--spacing-xl);
}
.px-xs {
  padding-left: var(--spacing-xs);
  padding-right: var(--spacing-xs);
}
.px-xxs {
  padding-left: var(--spacing-xxs);
  padding-right: var(--spacing-xxs);
}
.py-0\.5 {
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.py-1 {
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.py-1\.5 {
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}
.py-10 {
  padding-top: 2.5rem;
  padding-bottom: 2.5rem;
}
.py-12 {
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.py-2 {
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-2\.5 {
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
.py-2xl {
  padding-top: var(--spacing-2xl);
  padding-bottom: var(--spacing-2xl);
}
.py-3 {
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.py-3\.5 {
  padding-top: 0.875rem;
  padding-bottom: 0.875rem;
}
.py-4 {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.py-5 {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}
.py-6 {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.py-8 {
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.py-\[10px\] {
  padding-top: 10px;
  padding-bottom: 10px;
}
.py-layout-section-padding {
  padding-top: var(--spacing-section-padding, 1.5rem);
  padding-bottom: var(--spacing-section-padding, 1.5rem);
}
.py-lg {
  padding-top: var(--spacing-lg);
  padding-bottom: var(--spacing-lg);
}
.py-md {
  padding-top: var(--spacing-md);
  padding-bottom: var(--spacing-md);
}
.py-px {
  padding-top: 1px;
  padding-bottom: 1px;
}
.py-sm {
  padding-top: var(--spacing-sm);
  padding-bottom: var(--spacing-sm);
}
.py-xl {
  padding-top: var(--spacing-xl);
  padding-bottom: var(--spacing-xl);
}
.py-xs {
  padding-top: var(--spacing-xs);
  padding-bottom: var(--spacing-xs);
}
.py-xxs {
  padding-top: var(--spacing-xxs);
  padding-bottom: var(--spacing-xxs);
}
.pb-0 {
  padding-bottom: 0px;
}
.pb-10 {
  padding-bottom: 2.5rem;
}
.pb-28 {
  padding-bottom: 7rem;
}
.pb-2xl {
  padding-bottom: var(--spacing-2xl);
}
.pb-3 {
  padding-bottom: 0.75rem;
}
.pb-32 {
  padding-bottom: 8rem;
}
.pb-4 {
  padding-bottom: 1rem;
}
.pb-5 {
  padding-bottom: 1.25rem;
}
.pb-6 {
  padding-bottom: 1.5rem;
}
.pb-8 {
  padding-bottom: 2rem;
}
.pb-\[calc\(env\(safe-area-inset-bottom\)\+16px\)\] {
  padding-bottom: calc(env(safe-area-inset-bottom) + 16px);
}
.pb-\[calc\(theme\(spacing\.xl\)-2px\)\] {
  padding-bottom: calc(var(--spacing-xl) - 2px);
}
.pb-layout-block {
  padding-bottom: var(--spacing-layout-block-mobile);
}
.pb-layout-block-tablet {
  padding-bottom: var(--spacing-layout-block-tablet);
}
.pb-layout-section-gap {
  padding-bottom: var(--spacing-section-gap, 3rem);
}
.pb-layout-section-padding {
  padding-bottom: var(--spacing-section-padding, 1.5rem);
}
.pb-lg {
  padding-bottom: var(--spacing-lg);
}
.pb-md {
  padding-bottom: var(--spacing-md);
}
.pb-sm {
  padding-bottom: var(--spacing-sm);
}
.pb-xl {
  padding-bottom: var(--spacing-xl);
}
.pb-xs {
  padding-bottom: var(--spacing-xs);
}
.pl-10 {
  padding-left: 2.5rem;
}
.pl-12 {
  padding-left: 3rem;
}
.pl-16 {
  padding-left: 4rem;
}
.pl-2 {
  padding-left: 0.5rem;
}
.pl-20 {
  padding-left: 5rem;
}
.pl-28 {
  padding-left: 7rem;
}
.pl-2xl {
  padding-left: var(--spacing-2xl);
}
.pl-3 {
  padding-left: 0.75rem;
}
.pl-4 {
  padding-left: 1rem;
}
.pl-5 {
  padding-left: 1.25rem;
}
.pl-8 {
  padding-left: 2rem;
}
.pl-\[50px\] {
  padding-left: 50px;
}
.pl-lg {
  padding-left: var(--spacing-lg);
}
.pl-md {
  padding-left: var(--spacing-md);
}
.pl-xl {
  padding-left: var(--spacing-xl);
}
.pl-xs {
  padding-left: var(--spacing-xs);
}
.pr-10 {
  padding-right: 2.5rem;
}
.pr-12 {
  padding-right: 3rem;
}
.pr-2 {
  padding-right: 0.5rem;
}
.pr-3 {
  padding-right: 0.75rem;
}
.pr-4 {
  padding-right: 1rem;
}
.pr-6 {
  padding-right: 1.5rem;
}
.pr-8 {
  padding-right: 2rem;
}
.pr-9 {
  padding-right: 2.25rem;
}
.pr-\[calc\(theme\(spacing\.xl\)-2px\)\] {
  padding-right: calc(var(--spacing-xl) - 2px);
}
.pr-lg {
  padding-right: var(--spacing-lg);
}
.pr-md {
  padding-right: var(--spacing-md);
}
.pr-sm {
  padding-right: var(--spacing-sm);
}
.pr-xl {
  padding-right: var(--spacing-xl);
}
.pr-xs {
  padding-right: var(--spacing-xs);
}
.pt-0 {
  padding-top: 0px;
}
.pt-0\.5 {
  padding-top: 0.125rem;
}
.pt-1 {
  padding-top: 0.25rem;
}
.pt-10 {
  padding-top: 2.5rem;
}
.pt-12 {
  padding-top: 3rem;
}
.pt-16 {
  padding-top: 4rem;
}
.pt-2 {
  padding-top: 0.5rem;
}
.pt-2xl {
  padding-top: var(--spacing-2xl);
}
.pt-3 {
  padding-top: 0.75rem;
}
.pt-4 {
  padding-top: 1rem;
}
.pt-6 {
  padding-top: 1.5rem;
}
.pt-\[30\%\] {
  padding-top: 30%;
}
.pt-\[67px\] {
  padding-top: 67px;
}
.pt-\[82px\] {
  padding-top: 82px;
}
.pt-layout-section-padding {
  padding-top: var(--spacing-section-padding, 1.5rem);
}
.pt-lg {
  padding-top: var(--spacing-lg);
}
.pt-md {
  padding-top: var(--spacing-md);
}
.pt-sm {
  padding-top: var(--spacing-sm);
}
.pt-xl {
  padding-top: var(--spacing-xl);
}
.pt-xs {
  padding-top: var(--spacing-xs);
}
.\!text-left {
  text-align: left !important;
}
.text-left {
  text-align: left;
}
.text-center {
  text-align: center;
}
.text-right {
  text-align: right;
}
.text-justify {
  text-align: justify;
}
.indent-4 {
  text-indent: 1rem;
}
.align-top {
  vertical-align: top;
}
.align-middle {
  vertical-align: middle;
}
.font-mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}
.font-sans {
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}
.\!text-xs {
  font-size: 0.75rem !important;
  line-height: 1rem !important;
}
.text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}
.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}
.text-\[10px\] {
  font-size: 10px;
}
.text-\[11px\] {
  font-size: 11px;
}
.text-\[12px\] {
  font-size: 12px;
}
.text-\[13px\] {
  font-size: 13px;
}
.text-\[14px\] {
  font-size: 14px;
}
.text-base {
  font-size: 1rem;
  line-height: 1.5rem;
}
.text-lg {
  font-size: 1.125rem;
  line-height: 1.75rem;
}
.text-sm {
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.text-xl {
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.text-xs {
  font-size: 0.75rem;
  line-height: 1rem;
}
.font-bold {
  font-weight: 700;
}
.font-light {
  font-weight: 300;
}
.font-medium {
  font-weight: 500;
}
.font-normal {
  font-weight: 400;
}
.font-semibold {
  font-weight: 600;
}
.uppercase {
  text-transform: uppercase;
}
.capitalize {
  text-transform: capitalize;
}
.tabular-nums {
  --tw-numeric-spacing: tabular-nums;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.leading-3 {
  line-height: .75rem;
}
.leading-4 {
  line-height: 1rem;
}
.leading-5 {
  line-height: 1.25rem;
}
.leading-6 {
  line-height: 1.5rem;
}
.leading-7 {
  line-height: 1.75rem;
}
.leading-8 {
  line-height: 2rem;
}
.leading-\[14px\] {
  line-height: 14px;
}
.leading-none {
  line-height: 1;
}
.leading-relaxed {
  line-height: 1.625;
}
.leading-snug {
  line-height: 1.375;
}
.leading-tight {
  line-height: 1.25;
}
.tracking-wide {
  letter-spacing: 0.025em;
}
.tracking-wider {
  letter-spacing: 0.05em;
}
.\!text-text-headings {
  color: var(--color-text-headings) !important;
}
.\!text-text-inverse {
  color: var(--color-text-inverse) !important;
}
.text-\[\#058ba8\] {
  --tw-text-opacity: 1;
  color: rgb(5 139 168 / var(--tw-text-opacity, 1));
}
.text-\[\#128c4c\] {
  --tw-text-opacity: 1;
  color: rgb(18 140 76 / var(--tw-text-opacity, 1));
}
.text-\[var\(--color-social-whatsapp-900\)\] {
  color: var(--color-social-whatsapp-900);
}
.text-badge-default-text {
  color: var(--badge-default-text);
}
.text-badge-promoted-text {
  color: var(--badge-promoted-text);
}
.text-black {
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity, 1));
}
.text-blue-600 {
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity, 1));
}
.text-brand-alt-on-fill {
  color: var(--color-brand-alt-on-fill);
}
.text-brand-alt-text {
  color: var(--color-brand-alt-text);
}
.text-brand-alt-text-active {
  color: var(--color-brand-alt-text-active);
}
.text-brand-alt-text-hover {
  color: var(--color-brand-alt-text-hover);
}
.text-brand-fill {
  color: var(--color-brand-fill);
}
.text-brand-on-fill {
  color: var(--color-brand-on-fill);
}
.text-brand-subtle-text {
  color: var(--color-brand-subtle-text);
}
.text-destructive-fill {
  color: var(--color-destructive-fill);
}
.text-destructive-on-fill {
  color: var(--color-destructive-on-fill);
}
.text-destructive-text {
  color: var(--color-destructive-text);
}
.text-feedback-error-text {
  color: var(--color-feedback-error-text);
}
.text-feedback-success {
  color: var(--color-feedback-success);
}
.text-feedback-success-text {
  color: var(--color-feedback-success-text);
}
.text-feedback-warning-text {
  color: var(--color-feedback-warning-text);
}
.text-fill-brand {
  color: var(--color-fill-brand);
}
.text-fill-brand-alt {
  color: var(--color-fill-brand-alt);
}
.text-finance-fill-dark {
  color: var(--color-finance-fill-dark);
}
.text-footer-text-heading {
  color: var(--footer-text-heading);
}
.text-footer-text-link {
  color: var(--footer-text-link);
}
.text-footer-text-subtle {
  color: var(--footer-text-subtle);
}
.text-gray-400 {
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}
.text-gray-500 {
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity, 1));
}
.text-gray-600 {
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
}
.text-gray-800 {
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity, 1));
}
.text-gray-900 {
  --tw-text-opacity: 1;
  color: rgb(17 24 39 / var(--tw-text-opacity, 1));
}
.text-green-600 {
  --tw-text-opacity: 1;
  color: rgb(22 163 74 / var(--tw-text-opacity, 1));
}
.text-icon-brand {
  color: var(--color-icon-brand);
}
.text-icon-brand-alt {
  color: var(--color-icon-brand-alt);
}
.text-icon-dark {
  color: var(--color-icon-dark);
}
.text-icon-disabled {
  color: var(--color-icon-disabled);
}
.text-icon-light {
  color: var(--color-icon-light);
}
.text-icon-negative {
  color: var(--color-icon-negative);
}
.text-icon-positive {
  color: var(--color-icon-positive);
}
.text-icon-subtle {
  color: var(--color-icon-subtle);
}
.text-inverse-text {
  color: var(--color-inverse-text);
}
.text-navigation-button1-text {
  color: var(--navigation-button1-text);
}
.text-navigation-button2-text {
  color: var(--navigation-button2-text);
}
.text-navigation-icon {
  color: var(--navigation-icon);
}
.text-navigation-link-text {
  color: var(--navigation-link-text);
}
.text-navigation-link-text-hover {
  color: var(--navigation-link-text-hover);
}
.text-neutral-400 {
  --tw-text-opacity: 1;
  color: rgb(163 163 163 / var(--tw-text-opacity, 1));
}
.text-red-500 {
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
}
.text-slate-700 {
  --tw-text-opacity: 1;
  color: rgb(51 65 85 / var(--tw-text-opacity, 1));
}
.text-social-whatsapp-700 {
  color: var(--color-social-whatsapp-700);
}
.text-text-body {
  color: var(--color-text-body);
}
.text-text-brand {
  color: var(--color-text-brand);
}
.text-text-brand-alt {
  color: var(--color-text-brand-alt);
}
.text-text-brand-alt-on-fill {
  color: var(--color-text-brand-alt-on-fill);
}
.text-text-default {
  color: var(--color-text-body);
}
.text-text-disabled {
  color: var(--color-text-disabled);
}
.text-text-fallback {
  color: var(--color-text-fallback);
}
.text-text-headings {
  color: var(--color-text-headings);
}
.text-text-inverse {
  color: var(--color-text-inverse);
}
.text-text-link {
  color: var(--color-text-link);
}
.text-text-placeholder {
  color: var(--color-text-placeholder);
}
.text-text-price {
  color: var(--color-text-price);
}
.text-text-subtle {
  color: var(--color-text-subtle);
}
.text-transparent {
  color: transparent;
}
.text-white {
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}
.underline {
  -webkit-text-decoration-line: underline;
          text-decoration-line: underline;
}
.line-through {
  -webkit-text-decoration-line: line-through;
          text-decoration-line: line-through;
}
.\!no-underline {
  -webkit-text-decoration-line: none !important;
          text-decoration-line: none !important;
}
.no-underline {
  -webkit-text-decoration-line: none;
          text-decoration-line: none;
}
.decoration-auto {
  text-decoration-thickness: auto;
}
.underline-offset-auto {
  text-underline-offset: auto;
}
.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.opacity-0 {
  opacity: 0;
}
.opacity-100 {
  opacity: 1;
}
.opacity-25 {
  opacity: 0.25;
}
.opacity-30 {
  opacity: 0.3;
}
.opacity-50 {
  opacity: 0.5;
}
.opacity-60 {
  opacity: 0.6;
}
.opacity-70 {
  opacity: 0.7;
}
.opacity-75 {
  opacity: 0.75;
}
.opacity-80 {
  opacity: 0.8;
}
.opacity-90 {
  opacity: 0.9;
}
.opacity-disabled {
  opacity: calc(var(--opacity-disabled) / 100);
}
.shadow {
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_-4px_20px_rgba\(0\2c 0\2c 0\2c 0\.15\)\] {
  --tw-shadow: 0 -4px 20px rgba(0,0,0,0.15);
  --tw-shadow-colored: 0 -4px 20px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_2px_6px_0_rgba\(0\2c 0\2c 0\2c 0\.06\)\2c 0_1px_2px_0_rgba\(0\2c 0\2c 0\2c 0\.04\)\] {
  --tw-shadow: 0 2px 6px 0 rgba(0,0,0,0.06),0 1px 2px 0 rgba(0,0,0,0.04);
  --tw-shadow-colored: 0 2px 6px 0 var(--tw-shadow-color), 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_2px_6px_rgba\(0\2c 0\2c 0\2c 0\.3\)\] {
  --tw-shadow: 0 2px 6px rgba(0,0,0,0.3);
  --tw-shadow-colored: 0 2px 6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_4px_12px_rgba\(0\2c 0\2c 0\2c 0\.18\)\] {
  --tw-shadow: 0 4px 12px rgba(0,0,0,0.18);
  --tw-shadow-colored: 0 4px 12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-\[0_4px_7px_0_rgba\(0\2c 0\2c 0\2c 0\.03\)\] {
  --tw-shadow: 0 4px 7px 0 rgba(0,0,0,0.03);
  --tw-shadow-colored: 0 4px 7px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-lg {
  --tw-shadow: var(--shadow-lg);
  --tw-shadow-colored: var(--shadow-lg);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-md {
  --tw-shadow: var(--shadow-md);
  --tw-shadow-colored: var(--shadow-md);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-sm {
  --tw-shadow: var(--shadow-sm);
  --tw-shadow-colored: var(--shadow-sm);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-xl {
  --tw-shadow: var(--shadow-xl);
  --tw-shadow-colored: var(--shadow-xl);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.outline-none {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.outline {
  outline-style: solid;
}
.outline-1 {
  outline-width: 1px;
}
.outline-offset-\[-1px\] {
  outline-offset: -1px;
}
.ring {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-1 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-2 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.ring-inset {
  --tw-ring-inset: inset;
}
.ring-border-focus {
  --tw-ring-color: var(--color-border-focus);
}
.ring-border-focus-inverse {
  --tw-ring-color: var(--color-border-focus-inverse);
}
.ring-border-subtle {
  --tw-ring-color: var(--color-border-subtle);
}
.ring-feedback-error-border {
  --tw-ring-color: var(--color-feedback-error-border);
}
.ring-fill-brand-alt {
  --tw-ring-color: var(--color-fill-brand-alt);
}
.ring-surface-default {
  --tw-ring-color: var(--color-surface-default);
}
.ring-offset-1 {
  --tw-ring-offset-width: 1px;
}
.ring-offset-2 {
  --tw-ring-offset-width: 2px;
}
.ring-offset-4 {
  --tw-ring-offset-width: 4px;
}
.ring-offset-surface-default {
  --tw-ring-offset-color: var(--color-surface-default);
}
.ring-offset-surface-subtle {
  --tw-ring-offset-color: var(--color-surface-subtle);
}
.blur {
  --tw-blur: blur(8px);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.drop-shadow-\[0_5px_5px_rgba\(0\2c 0\2c 0\2c \.4\)\] {
  --tw-drop-shadow: drop-shadow(0 5px 5px rgba(0,0,0,.4));
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.backdrop-blur-sm {
  --tw-backdrop-blur: blur(4px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.transition {
  transition-property: color, background-color, border-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[grid-template-columns\2c margin\] {
  transition-property: grid-template-columns,margin;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[grid-template-rows\] {
  transition-property: grid-template-rows;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[max-height\] {
  transition-property: max-height;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-\[visibility\] {
  transition-property: visibility;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-all {
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-colors {
  transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-opacity {
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-shadow {
  transition-property: box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-transform {
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.duration-100 {
  transition-duration: 100ms;
}
.duration-150 {
  transition-duration: 150ms;
}
.duration-200 {
  transition-duration: 200ms;
}
.duration-300 {
  transition-duration: 300ms;
}
.duration-500 {
  transition-duration: 500ms;
}
.duration-75 {
  transition-duration: 75ms;
}
.ease-in {
  transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}
.ease-in-out {
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.ease-out {
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
.scrollbar::-webkit-scrollbar-track {
  background-color: var(--scrollbar-track);
  border-radius: var(--scrollbar-track-radius);
}
.scrollbar::-webkit-scrollbar-track:hover {
  background-color: var(--scrollbar-track-hover, var(--scrollbar-track));
}
.scrollbar::-webkit-scrollbar-track:active {
  background-color: var(--scrollbar-track-active, var(--scrollbar-track-hover, var(--scrollbar-track)));
}
.scrollbar::-webkit-scrollbar-thumb {
  background-color: var(--scrollbar-thumb);
  border-radius: var(--scrollbar-thumb-radius);
}
.scrollbar::-webkit-scrollbar-thumb:hover {
  background-color: var(--scrollbar-thumb-hover, var(--scrollbar-thumb));
}
.scrollbar::-webkit-scrollbar-thumb:active {
  background-color: var(--scrollbar-thumb-active, var(--scrollbar-thumb-hover, var(--scrollbar-thumb)));
}
.scrollbar::-webkit-scrollbar-corner {
  background-color: var(--scrollbar-corner);
  border-radius: var(--scrollbar-corner-radius);
}
.scrollbar::-webkit-scrollbar-corner:hover {
  background-color: var(--scrollbar-corner-hover, var(--scrollbar-corner));
}
.scrollbar::-webkit-scrollbar-corner:active {
  background-color: var(--scrollbar-corner-active, var(--scrollbar-corner-hover, var(--scrollbar-corner)));
}
.scrollbar {
  scrollbar-width: auto;
  scrollbar-color: var(--scrollbar-thumb, initial) var(--scrollbar-track, initial);
}
.scrollbar::-webkit-scrollbar {
  display: block;
  width: var(--scrollbar-width, 16px);
  height: var(--scrollbar-height, 16px);
}
.scrollbar-thin::-webkit-scrollbar-track {
  background-color: var(--scrollbar-track);
  border-radius: var(--scrollbar-track-radius);
}
.scrollbar-thin::-webkit-scrollbar-track:hover {
  background-color: var(--scrollbar-track-hover, var(--scrollbar-track));
}
.scrollbar-thin::-webkit-scrollbar-track:active {
  background-color: var(--scrollbar-track-active, var(--scrollbar-track-hover, var(--scrollbar-track)));
}
.scrollbar-thin::-webkit-scrollbar-thumb {
  background-color: var(--scrollbar-thumb);
  border-radius: var(--scrollbar-thumb-radius);
}
.scrollbar-thin::-webkit-scrollbar-thumb:hover {
  background-color: var(--scrollbar-thumb-hover, var(--scrollbar-thumb));
}
.scrollbar-thin::-webkit-scrollbar-thumb:active {
  background-color: var(--scrollbar-thumb-active, var(--scrollbar-thumb-hover, var(--scrollbar-thumb)));
}
.scrollbar-thin::-webkit-scrollbar-corner {
  background-color: var(--scrollbar-corner);
  border-radius: var(--scrollbar-corner-radius);
}
.scrollbar-thin::-webkit-scrollbar-corner:hover {
  background-color: var(--scrollbar-corner-hover, var(--scrollbar-corner));
}
.scrollbar-thin::-webkit-scrollbar-corner:active {
  background-color: var(--scrollbar-corner-active, var(--scrollbar-corner-hover, var(--scrollbar-corner)));
}
.scrollbar-thin {
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb, initial) var(--scrollbar-track, initial);
}
.scrollbar-thin::-webkit-scrollbar {
  display: block;
  width: 8px;
  height: 8px;
}
.scrollbar-none {
  scrollbar-width: none;
}
.scrollbar-none::-webkit-scrollbar {
  display: none;
}
.scrollbar-track-transparent {
  --scrollbar-track: transparent !important;
}
.scrollbar-thumb-border {
  --scrollbar-thumb: var(--color-border-default) !important;
}
.scrollbar-thumb-fill-neutral {
  --scrollbar-thumb: var(--color-fill-neutral) !important;
}
.scrollbar-thumb-surface-raised {
  --scrollbar-thumb: var(--color-surface-raised) !important;
}
.\@container {
  container-type: inline-size;
}
.scrollbar-none {
        -ms-overflow-style: none;
        scrollbar-width: none;
    }
.scrollbar-none::-webkit-scrollbar {
        display: none;
        width: 0;
        height: 0;
    }
/* Thin token-coloured scrollbar for capped dropdown lists (e.g. the
     * location panel's drilldown/search lists) — signals that the list
     * scrolls, unlike scrollbar-none. scrollbar-width/color for
     * Firefox/Chromium; ::-webkit-* fallback for Safari. */
.scroll-bar-thin {
        scrollbar-width: thin;
        scrollbar-color: var(--color-border-default) transparent;
    }
.scroll-bar-thin::-webkit-scrollbar {
        width: 6px;
        height: 6px;
    }
.scroll-bar-thin::-webkit-scrollbar-track {
        background: transparent;
    }
.scroll-bar-thin::-webkit-scrollbar-thumb {
        background-color: var(--color-border-default);
        border-radius: 9999px;
    }
.scroll-x-hidden-scrollbar {
        overflow-x: auto;
        overflow-y: hidden;
        overscroll-behavior-x: contain;
        -webkit-overflow-scrolling: touch;
        -ms-overflow-style: none;
        scrollbar-width: none;
    }
.scroll-x-hidden-scrollbar::-webkit-scrollbar {
        display: none;
        width: 0;
        height: 0;
    }
/* Vertical sibling of .scroll-x-hidden-scrollbar — a clean (no visible scrollbar)
       vertical scroll area. Used by the AdOfTheDay thumbnail rail; pairs with a
       useDragScroll({ axis: 'y' }) for mouse-drag panning. */
.scroll-y-hidden-scrollbar {
        overflow-y: auto;
        overflow-x: hidden;
        overscroll-behavior-y: contain;
        -webkit-overflow-scrolling: touch;
        -ms-overflow-style: none;
        scrollbar-width: none;
    }
.scroll-y-hidden-scrollbar::-webkit-scrollbar {
        display: none;
        width: 0;
        height: 0;
    }
.\[grid-area\:t\] {
  grid-area: t;
}
.\[grid-area\:text\] {
  grid-area: text;
}
.\[grid-template-areas\:\'t\'\] {
  grid-template-areas: 't';
}
.\[grid-template-areas\:\'text\'\] {
  grid-template-areas: 'text';
}
.\[grid-template-columns\:0fr\] {
  grid-template-columns: 0fr;
}
.\[overflow-wrap\:normal\] {
  overflow-wrap: normal;
}
.\[scrollbar-width\:none\] {
  scrollbar-width: none;
}
@media (min-width: 768px) {
    .md\:text-price-sm {
        font-weight: var(--text-price-sm-font-weight);
        font-size: var(--text-price-sm-font-size);
        line-height: var(--text-price-sm-line-height);
        font-family: var(--text-font-family-heading), sans-serif;
        letter-spacing: var(--text-price-sm-letter-spacing);
    }
    .md\:text-price-md {
        font-weight: var(--text-price-md-font-weight);
        font-size: var(--text-price-md-font-size);
        line-height: var(--text-price-md-line-height);
        font-family: var(--text-font-family-heading), sans-serif;
        letter-spacing: var(--text-price-md-letter-spacing);
    }
    .md\:text-price-lg {
        font-weight: var(--text-price-lg-font-weight);
        font-size: var(--text-price-lg-font-size);
        line-height: var(--text-price-lg-line-height);
        font-family: var(--text-font-family-heading), sans-serif;
        letter-spacing: var(--text-price-lg-letter-spacing);
    }
    .md\:text-price-xl-strong {
        font-weight: var(--text-price-xl-strong-font-weight);
        font-size: var(--text-price-xl-strong-font-size);
        line-height: var(--text-price-xl-strong-line-height);
        font-family: var(--text-font-family-heading), sans-serif;
        letter-spacing: var(--text-price-xl-strong-letter-spacing);
    }
}
.\[\&_a\]\:link-secondary a {
  color: var(--color-brand-alt-text);
}
.\[\&_a\]\:link-secondary a:hover {
  color: var(--color-brand-alt-text-hover);
}
.\[\&_a\]\:link-secondary a:focus-visible {
  border-radius: var(--rounded-base);
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: var(--color-border-focus);
  --tw-ring-offset-width: 2px;
}
.\[\&_a\]\:link-secondary a:active {
  color: var(--color-brand-alt-text-active);
}
.placeholder\:text-text-placeholder::-moz-placeholder {
  color: var(--color-text-placeholder);
}
.placeholder\:text-text-placeholder::placeholder {
  color: var(--color-text-placeholder);
}
.placeholder\:text-text-subtle::-moz-placeholder {
  color: var(--color-text-subtle);
}
.placeholder\:text-text-subtle::placeholder {
  color: var(--color-text-subtle);
}
.after\:absolute::after {
  content: var(--tw-content);
  position: absolute;
}
.after\:inset-0::after {
  content: var(--tw-content);
  inset: 0px;
}
.last\:border-b-0:last-child {
  border-bottom-width: 0px;
}
.last\:border-r-0:last-child {
  border-right-width: 0px;
}
.last\:border-none:last-child {
  border-style: none;
}
.focus-within\:z-10:focus-within {
  z-index: 10;
}
.focus-within\:border-border-focus:focus-within {
  border-color: var(--color-border-focus);
}
.focus-within\:border-brand-alt-border:focus-within {
  border-color: var(--color-brand-alt-border);
}
.focus-within\:ring-1:focus-within {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus-within\:ring-border-focus:focus-within {
  --tw-ring-color: var(--color-border-focus);
}
.group:hover .group-hover\:me-md {
  margin-inline-end: var(--spacing-md);
}
.group:hover .group-hover\:ms-md {
  margin-inline-start: var(--spacing-md);
}
.group:hover .group-hover\:scale-105 {
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:scale-\[1\.06\] {
  --tw-scale-x: 1.06;
  --tw-scale-y: 1.06;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.group:hover .group-hover\:border-navigation-link-underline-hover {
  border-color: var(--navigation-link-underline-hover);
}
.group:hover .group-hover\:text-brand-alt-text-hover {
  color: var(--color-brand-alt-text-hover);
}
.group:hover .group-hover\:text-icon-brand-alt {
  color: var(--color-icon-brand-alt);
}
.group:hover .group-hover\:text-text-headings {
  color: var(--color-text-headings);
}
.group\/avatar:hover .group-hover\/avatar\:opacity-100 {
  opacity: 1;
}
.group:hover .group-hover\:opacity-100 {
  opacity: 1;
}
.group:hover .group-hover\:\[grid-template-columns\:1fr\] {
  grid-template-columns: 1fr;
}
.group:focus-visible .group-focus-visible\:text-icon-brand-alt {
  color: var(--color-icon-brand-alt);
}
.group:focus-visible .group-focus-visible\:ring-2 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.group:focus-visible .group-focus-visible\:ring-border-focus {
  --tw-ring-color: var(--color-border-focus);
}
.group:active .group-active\:text-icon-brand-alt {
  color: var(--color-icon-brand-alt);
}
.peer:focus-visible ~ .peer-focus-visible\:ring-2 {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.peer:focus-visible ~ .peer-focus-visible\:ring-inset {
  --tw-ring-inset: inset;
}
.peer:focus-visible ~ .peer-focus-visible\:ring-border-focus {
  --tw-ring-color: var(--color-border-focus);
}
.has-\[\[aria-expanded\=true\]\]\:border-border:has([aria-expanded=true]) {
  border-color: var(--color-border-default);
}
.has-\[\[aria-expanded\=true\]\]\:bg-surface-default:has([aria-expanded=true]) {
  background-color: var(--color-surface-default);
}
.has-\[\:focus-visible\]\:ring-2:has(:focus-visible) {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.has-\[\:focus-visible\]\:ring-inset:has(:focus-visible) {
  --tw-ring-inset: inset;
}
.has-\[\:focus-visible\]\:ring-border-focus:has(:focus-visible) {
  --tw-ring-color: var(--color-border-focus);
}
.has-\[\:focus-visible\]\:ring-offset-2:has(:focus-visible) {
  --tw-ring-offset-width: 2px;
}
.has-\[\:focus-visible\]\:ring-offset-surface-default:has(:focus-visible) {
  --tw-ring-offset-color: var(--color-surface-default);
}
.hover\:z-10:hover {
  z-index: 10;
}
.hover\:scale-\[1\.06\]:hover {
  --tw-scale-x: 1.06;
  --tw-scale-y: 1.06;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:rounded-base:hover {
  border-radius: var(--rounded-base);
}
.hover\:border-2:hover {
  border-width: 2px;
}
.hover\:border-border:hover {
  border-color: var(--color-border-default);
}
.hover\:border-border-focus:hover {
  border-color: var(--color-border-focus);
}
.hover\:border-brand-alt-border:hover {
  border-color: var(--color-brand-alt-border);
}
.hover\:border-overlay-subtle:hover {
  border-color: var(--color-overlay-subtle);
}
.hover\:bg-\[\#0095B7\]:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(0 149 183 / var(--tw-bg-opacity, 1));
}
.hover\:bg-\[var\(--color-rose-200\)\]:hover {
  background-color: var(--color-rose-200);
}
.hover\:bg-\[var\(--color-social-whatsapp-100\)\]:hover {
  background-color: var(--color-social-whatsapp-100);
}
.hover\:bg-badge-tag-hover:hover {
  background-color: var(--badge-tag-hover);
}
.hover\:bg-black\/10:hover {
  background-color: rgb(0 0 0 / 0.1);
}
.hover\:bg-black\/80:hover {
  background-color: rgb(0 0 0 / 0.8);
}
.hover\:bg-brand-alt-fill:hover {
  background-color: var(--color-brand-alt-fill);
}
.hover\:bg-brand-alt-fill-active:hover {
  background-color: var(--color-brand-alt-fill-active);
}
.hover\:bg-brand-alt-fill-hover:hover {
  background-color: var(--color-brand-alt-fill-hover);
}
.hover\:bg-brand-alt-text-hover:hover {
  background-color: var(--color-brand-alt-text-hover);
}
.hover\:bg-brand-fill:hover {
  background-color: var(--color-brand-fill);
}
.hover\:bg-brand-fill-hover:hover {
  background-color: var(--color-brand-fill-hover);
}
.hover\:bg-brand-subtle-fill-hover:hover {
  background-color: var(--color-brand-subtle-fill-hover);
}
.hover\:bg-destructive-fill-hover:hover {
  background-color: var(--color-destructive-fill-hover);
}
.hover\:bg-fill-subtle:hover {
  background-color: var(--color-fill-subtle);
}
.hover\:bg-finance-fill:hover {
  background-color: var(--color-finance-fill);
}
.hover\:bg-finance-fill-hover:hover {
  background-color: var(--color-finance-fill-hover);
}
.hover\:bg-gray-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-100\/50:hover {
  background-color: rgb(243 244 246 / 0.5);
}
.hover\:bg-gray-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
}
.hover\:bg-gray-500:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1));
}
.hover\:bg-inverse-fill-hover:hover {
  background-color: var(--color-inverse-fill-hover);
}
.hover\:bg-navigation-button1-fill-hover:hover {
  background-color: var(--navigation-button1-fill-hover);
}
.hover\:bg-navigation-button2-fill-hover:hover {
  background-color: var(--navigation-button2-fill-hover);
}
.hover\:bg-navigation-link-fill-hover:hover {
  background-color: var(--navigation-link-fill-hover);
}
.hover\:bg-overlay-subtle:hover {
  background-color: var(--color-overlay-subtle);
}
.hover\:bg-social-whatsapp-700:hover {
  background-color: var(--color-social-whatsapp-700);
}
.hover\:bg-surface-default:hover {
  background-color: var(--color-surface-default);
}
.hover\:bg-surface-subtle:hover {
  background-color: var(--color-surface-subtle);
}
.hover\:bg-surface-sunken:hover {
  background-color: var(--color-surface-sunken);
}
.hover\:text-brand-alt-fill-hover:hover {
  color: var(--color-brand-alt-fill-hover);
}
.hover\:text-brand-alt-on-fill:hover {
  color: var(--color-brand-alt-on-fill);
}
.hover\:text-brand-alt-text:hover {
  color: var(--color-brand-alt-text);
}
.hover\:text-brand-alt-text-hover:hover {
  color: var(--color-brand-alt-text-hover);
}
.hover\:text-brand-fill:hover {
  color: var(--color-brand-fill);
}
.hover\:text-brand-on-fill:hover {
  color: var(--color-brand-on-fill);
}
.hover\:text-destructive-fill-hover:hover {
  color: var(--color-destructive-fill-hover);
}
.hover\:text-destructive-text-hover:hover {
  color: var(--color-destructive-text-hover);
}
.hover\:text-gray-700:hover {
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity, 1));
}
.hover\:text-gray-800:hover {
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity, 1));
}
.hover\:text-navigation-link-text-hover:hover {
  color: var(--navigation-link-text-hover);
}
.hover\:text-text-body:hover {
  color: var(--color-text-body);
}
.hover\:text-text-brand:hover {
  color: var(--color-text-brand);
}
.hover\:text-text-brand-alt:hover {
  color: var(--color-text-brand-alt);
}
.hover\:text-text-default:hover {
  color: var(--color-text-body);
}
.hover\:text-text-headings:hover {
  color: var(--color-text-headings);
}
.hover\:text-text-inverse:hover {
  color: var(--color-text-inverse);
}
.hover\:text-text-link:hover {
  color: var(--color-text-link);
}
.hover\:text-text-subtle:hover {
  color: var(--color-text-subtle);
}
.hover\:underline:hover {
  -webkit-text-decoration-line: underline;
          text-decoration-line: underline;
}
.hover\:no-underline:hover {
  -webkit-text-decoration-line: none;
          text-decoration-line: none;
}
.hover\:opacity-75:hover {
  opacity: 0.75;
}
.hover\:shadow-\[0_0_0_3px_var\(--color-surface-sunken\)\]:hover {
  --tw-shadow: 0 0 0 3px var(--color-surface-sunken);
  --tw-shadow-colored: 0 0 0 3px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-lg:hover {
  --tw-shadow: var(--shadow-lg);
  --tw-shadow-colored: var(--shadow-lg);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-md:hover {
  --tw-shadow: var(--shadow-md);
  --tw-shadow-colored: var(--shadow-md);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.hover\:shadow-sm:hover {
  --tw-shadow: var(--shadow-sm);
  --tw-shadow-colored: var(--shadow-sm);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.focus\:bottom-0:focus {
  bottom: 0px;
}
.focus\:border-border-focus:focus {
  border-color: var(--color-border-focus);
}
.focus\:border-transparent:focus {
  border-color: transparent;
}
.focus\:outline-none:focus {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.focus\:ring-0:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus\:ring-2:focus {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus\:ring-border-focus:focus {
  --tw-ring-color: var(--color-border-focus);
}
.focus\:ring-offset-2:focus {
  --tw-ring-offset-width: 2px;
}
.focus-visible\:border-border-focus:focus-visible {
  border-color: var(--color-border-focus);
}
.focus-visible\:border-navigation-focus-ring:focus-visible {
  border-color: var(--navigation-focus-ring);
}
.focus-visible\:border-transparent:focus-visible {
  border-color: transparent;
}
.focus-visible\:bg-brand-alt-fill:focus-visible {
  background-color: var(--color-brand-alt-fill);
}
.focus-visible\:bg-surface-default:focus-visible {
  background-color: var(--color-surface-default);
}
.focus-visible\:text-brand-alt-text:focus-visible {
  color: var(--color-brand-alt-text);
}
.focus-visible\:text-text-body:focus-visible {
  color: var(--color-text-body);
}
.focus-visible\:shadow-\[0_0_0_1px_var\(--color-surface-subtle\)\2c 0_0_0_3px_var\(--color-border-focus\)\]:focus-visible {
  --tw-shadow: 0 0 0 1px var(--color-surface-subtle),0 0 0 3px var(--color-border-focus);
  --tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color), 0 0 0 3px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.focus-visible\:shadow-\[0_0_0_2px_var\(--color-surface-brand\)\2c 0_0_0_4px_var\(--color-surface-default\)\]:focus-visible {
  --tw-shadow: 0 0 0 2px var(--color-surface-brand),0 0 0 4px var(--color-surface-default);
  --tw-shadow-colored: 0 0 0 2px var(--tw-shadow-color), 0 0 0 4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.focus-visible\:outline-none:focus-visible {
  outline: 2px solid transparent;
  outline-offset: 2px;
}
.focus-visible\:outline:focus-visible {
  outline-style: solid;
}
.focus-visible\:outline-2:focus-visible {
  outline-width: 2px;
}
.focus-visible\:outline-offset-2:focus-visible {
  outline-offset: 2px;
}
.focus-visible\:outline-border-focus:focus-visible {
  outline-color: var(--color-border-focus);
}
.focus-visible\:ring-1:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus-visible\:ring-2:focus-visible {
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.focus-visible\:ring-inset:focus-visible {
  --tw-ring-inset: inset;
}
.focus-visible\:ring-border-focus:focus-visible {
  --tw-ring-color: var(--color-border-focus);
}
.focus-visible\:ring-border-focus-inverse:focus-visible {
  --tw-ring-color: var(--color-border-focus-inverse);
}
.focus-visible\:ring-navigation-focus-ring:focus-visible {
  --tw-ring-color: var(--navigation-focus-ring);
}
.focus-visible\:ring-offset-1:focus-visible {
  --tw-ring-offset-width: 1px;
}
.focus-visible\:ring-offset-2:focus-visible {
  --tw-ring-offset-width: 2px;
}
.focus-visible\:ring-offset-navigation-background:focus-visible {
  --tw-ring-offset-color: var(--navigation-background);
}
.focus-visible\:ring-offset-surface-default:focus-visible {
  --tw-ring-offset-color: var(--color-surface-default);
}
.focus-visible\:ring-offset-white:focus-visible {
  --tw-ring-offset-color: #fff;
}
.active\:scale-100:active {
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.active\:cursor-grabbing:active {
  cursor: grabbing;
}
.active\:rounded-base:active {
  border-radius: var(--rounded-base);
}
.active\:border-finance-fill-hover:active {
  border-color: var(--color-finance-fill-hover);
}
.active\:bg-\[var\(--color-rose-700\)\]:active {
  background-color: var(--color-rose-700);
}
.active\:bg-brand-alt-fill-active:active {
  background-color: var(--color-brand-alt-fill-active);
}
.active\:bg-brand-alt-text-active:active {
  background-color: var(--color-brand-alt-text-active);
}
.active\:bg-brand-fill-active:active {
  background-color: var(--color-brand-fill-active);
}
.active\:bg-brand-subtle-fill-active:active {
  background-color: var(--color-brand-subtle-fill-active);
}
.active\:bg-destructive-fill-active:active {
  background-color: var(--color-destructive-fill-active);
}
.active\:bg-fill-disabled:active {
  background-color: var(--color-fill-disabled);
}
.active\:bg-finance-fill-active:active {
  background-color: var(--color-finance-fill-active);
}
.active\:bg-finance-fill-hover:active {
  background-color: var(--color-finance-fill-hover);
}
.active\:bg-inverse-fill-active:active {
  background-color: var(--color-inverse-fill-active);
}
.active\:bg-navigation-button1-fill-active:active {
  background-color: var(--navigation-button1-fill-active);
}
.active\:bg-navigation-button2-fill-active:active {
  background-color: var(--navigation-button2-fill-active);
}
.active\:bg-overlay-dark:active {
  background-color: var(--color-overlay-dark);
}
.active\:bg-overlay-default:active {
  background-color: var(--color-overlay-default);
}
.active\:bg-social-whatsapp-100:active {
  background-color: var(--color-social-whatsapp-100);
}
.active\:bg-surface-subtle:active {
  background-color: var(--color-surface-subtle);
}
.active\:bg-surface-sunken:active {
  background-color: var(--color-surface-sunken);
}
.active\:text-brand-alt-text:active {
  color: var(--color-brand-alt-text);
}
.active\:text-brand-alt-text-active:active {
  color: var(--color-brand-alt-text-active);
}
.active\:text-brand-on-fill:active {
  color: var(--color-brand-on-fill);
}
.active\:text-destructive-fill-active:active {
  color: var(--color-destructive-fill-active);
}
.active\:text-destructive-text-active:active {
  color: var(--color-destructive-text-active);
}
.active\:text-navigation-button1-text-active:active {
  color: var(--navigation-button1-text-active);
}
.active\:text-navigation-button2-text-active:active {
  color: var(--navigation-button2-text-active);
}
.active\:text-social-whatsapp-700:active {
  color: var(--color-social-whatsapp-700);
}
.active\:text-text-inverse:active {
  color: var(--color-text-inverse);
}
.disabled\:pointer-events-none:disabled {
  pointer-events: none;
}
.disabled\:cursor-not-allowed:disabled {
  cursor: not-allowed;
}
.disabled\:border-border:disabled {
  border-color: var(--color-border-default);
}
.disabled\:border-transparent:disabled {
  border-color: transparent;
}
.disabled\:bg-fill-disabled:disabled {
  background-color: var(--color-fill-disabled);
}
.disabled\:bg-transparent:disabled {
  background-color: transparent;
}
.disabled\:text-text-disabled:disabled {
  color: var(--color-text-disabled);
}
.disabled\:opacity-50:disabled {
  opacity: 0.5;
}
.disabled\:opacity-60:disabled {
  opacity: 0.6;
}
.disabled\:opacity-disabled:disabled {
  opacity: calc(var(--opacity-disabled) / 100);
}
@container (min-width: 48rem) {
  .\@3xl\:inline {
    display: inline;
  }
  .\@3xl\:hidden {
    display: none;
  }
  .\@3xl\:gap-md {
    gap: var(--spacing-md);
  }
}
@container (min-width: 680px) {
  .\@\[680px\]\:block {
    display: block;
  }
  .\@\[680px\]\:hidden {
    display: none;
  }
}
@container (min-width: 712px) {
  .\@\[712px\]\:mt-0 {
    margin-top: 0px;
  }
  .\@\[712px\]\:line-clamp-5 {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 5;
  }
  .\@\[712px\]\:flex {
    display: flex;
  }
  .\@\[712px\]\:inline-flex {
    display: inline-flex;
  }
  .\@\[712px\]\:hidden {
    display: none;
  }
  .\@\[712px\]\:h-\[calc\(344px\*2\/3\)\] {
    height: calc(344px * 2 / 3);
  }
  .\@\[712px\]\:h-full {
    height: 100%;
  }
  .\@\[712px\]\:min-h-0 {
    min-height: 0px;
  }
  .\@\[712px\]\:w-\[344px\] {
    width: 344px;
  }
  .\@\[712px\]\:flex-row {
    flex-direction: row;
  }
  .\@\[712px\]\:gap-0 {
    gap: 0px;
  }
  .\@\[712px\]\:gap-xl {
    gap: var(--spacing-xl);
  }
  .\@\[712px\]\:py-1 {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
  }
  .\@\[712px\]\:pb-lg {
    padding-bottom: var(--spacing-lg);
  }
}
@container (min-width: 768px) {
  .\@\[768px\]\:block {
    display: block;
  }
}
@media (prefers-reduced-motion: reduce) {
  .motion-reduce\:transition-none {
    transition-property: none;
  }
}
@media not all and (min-width: 1024px) {
  .max-lg\:block {
    display: block;
  }
}
@media not all and (min-width: 768px) {
  .max-md\:block {
    display: block;
  }
  .max-md\:hidden {
    display: none;
  }
}
@media (min-width: 640px) {
  .sm\:translate-x-0 {
    --tw-translate-x: 0px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }
  .sm\:translate-x-2 {
    --tw-translate-x: 0.5rem;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }
  .sm\:translate-y-0 {
    --tw-translate-y: 0px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }
  .sm\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sm\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .sm\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .sm\:grid-cols-6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .sm\:flex-row {
    flex-direction: row;
  }
  .sm\:items-start {
    align-items: flex-start;
  }
  .sm\:items-end {
    align-items: flex-end;
  }
  .sm\:p-6 {
    padding: 1.5rem;
  }
}
@media (min-width: 768px) {
  .md\:sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
  }
  .md\:static {
    position: static;
  }
  .md\:absolute {
    position: absolute;
  }
  .md\:inset-0 {
    inset: 0px;
  }
  .md\:inset-auto {
    inset: auto;
  }
  .md\:-bottom-4 {
    bottom: -1rem;
  }
  .md\:-left-6 {
    left: -1.5rem;
  }
  .md\:-right-5 {
    right: -1.25rem;
  }
  .md\:-top-1\.5 {
    top: -0.375rem;
  }
  .md\:-top-4 {
    top: -1rem;
  }
  .md\:left-0 {
    left: 0px;
  }
  .md\:left-3\.5 {
    left: 0.875rem;
  }
  .md\:right-0 {
    right: 0px;
  }
  .md\:right-3 {
    right: 0.75rem;
  }
  .md\:right-\[244px\] {
    right: 244px;
  }
  .md\:right-lg {
    right: var(--spacing-lg);
  }
  .md\:top-1\.5 {
    top: 0.375rem;
  }
  .md\:top-3 {
    top: 0.75rem;
  }
  .md\:top-full {
    top: 100%;
  }
  .md\:top-lg {
    top: var(--spacing-lg);
  }
  .md\:z-auto {
    z-index: auto;
  }
  .md\:order-1 {
    order: 1;
  }
  .md\:order-2 {
    order: 2;
  }
  .md\:-mx-5 {
    margin-left: -1.25rem;
    margin-right: -1.25rem;
  }
  .md\:my-0\.5 {
    margin-top: 0.125rem;
    margin-bottom: 0.125rem;
  }
  .md\:my-xl {
    margin-top: var(--spacing-xl);
    margin-bottom: var(--spacing-xl);
  }
  .md\:-ml-px {
    margin-left: -1px;
  }
  .md\:mb-0 {
    margin-bottom: 0px;
  }
  .md\:mb-10 {
    margin-bottom: 2.5rem;
  }
  .md\:mb-2 {
    margin-bottom: 0.5rem;
  }
  .md\:mb-4 {
    margin-bottom: 1rem;
  }
  .md\:mb-6 {
    margin-bottom: 1.5rem;
  }
  .md\:ml-lg {
    margin-left: var(--spacing-lg);
  }
  .md\:mr-4 {
    margin-right: 1rem;
  }
  .md\:mt-0 {
    margin-top: 0px;
  }
  .md\:mt-3 {
    margin-top: 0.75rem;
  }
  .md\:mt-\[1px\] {
    margin-top: 1px;
  }
  .md\:mt-\[30px\] {
    margin-top: 30px;
  }
  .md\:mt-lg {
    margin-top: var(--spacing-lg);
  }
  .md\:mt-px {
    margin-top: 1px;
  }
  .md\:line-clamp-3 {
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
  }
  .md\:block {
    display: block;
  }
  .md\:inline-block {
    display: inline-block;
  }
  .md\:inline {
    display: inline;
  }
  .md\:flex {
    display: flex;
  }
  .md\:inline-flex {
    display: inline-flex;
  }
  .md\:grid {
    display: grid;
  }
  .md\:inline-grid {
    display: inline-grid;
  }
  .md\:hidden {
    display: none;
  }
  .md\:aspect-\[970\/90\] {
    aspect-ratio: 970/90;
  }
  .md\:aspect-auto {
    aspect-ratio: auto;
  }
  .md\:size-10 {
    width: 2.5rem;
    height: 2.5rem;
  }
  .md\:h-10 {
    height: 2.5rem;
  }
  .md\:h-14 {
    height: 3.5rem;
  }
  .md\:h-4 {
    height: 1rem;
  }
  .md\:h-6 {
    height: 1.5rem;
  }
  .md\:h-7 {
    height: 1.75rem;
  }
  .md\:h-\[104px\] {
    height: 104px;
  }
  .md\:h-\[230px\] {
    height: 230px;
  }
  .md\:h-\[340px\] {
    height: 340px;
  }
  .md\:h-\[48px\] {
    height: 48px;
  }
  .md\:h-\[72px\] {
    height: 72px;
  }
  .md\:h-auto {
    height: auto;
  }
  .md\:h-fit {
    height: -moz-fit-content;
    height: fit-content;
  }
  .md\:h-full {
    height: 100%;
  }
  .md\:max-h-\[346px\] {
    max-height: 346px;
  }
  .md\:max-h-\[484px\] {
    max-height: 484px;
  }
  .md\:max-h-\[690px\] {
    max-height: 690px;
  }
  .md\:\!min-h-0 {
    min-height: 0px !important;
  }
  .md\:min-h-0 {
    min-height: 0px;
  }
  .md\:min-h-56 {
    min-height: 14rem;
  }
  .md\:min-h-\[100px\] {
    min-height: 100px;
  }
  .md\:min-h-\[201px\] {
    min-height: 201px;
  }
  .md\:min-h-\[205px\] {
    min-height: 205px;
  }
  .md\:min-h-\[346px\] {
    min-height: 346px;
  }
  .md\:min-h-\[940px\] {
    min-height: 940px;
  }
  .md\:min-h-min {
    min-height: -moz-min-content;
    min-height: min-content;
  }
  .md\:w-1\/2 {
    width: 50%;
  }
  .md\:w-1\/3 {
    width: 33.333333%;
  }
  .md\:w-10 {
    width: 2.5rem;
  }
  .md\:w-12 {
    width: 3rem;
  }
  .md\:w-14 {
    width: 3.5rem;
  }
  .md\:w-2\/5 {
    width: 40%;
  }
  .md\:w-3\/5 {
    width: 60%;
  }
  .md\:w-4 {
    width: 1rem;
  }
  .md\:w-4\/12 {
    width: 33.333333%;
  }
  .md\:w-50 {
    width: 12.5rem;
  }
  .md\:w-56 {
    width: 14rem;
  }
  .md\:w-9 {
    width: 2.25rem;
  }
  .md\:w-96 {
    width: 24rem;
  }
  .md\:w-\[104px\] {
    width: 104px;
  }
  .md\:w-\[148px\] {
    width: 148px;
  }
  .md\:w-\[180px\] {
    width: 180px;
  }
  .md\:w-\[210px\] {
    width: 210px;
  }
  .md\:w-\[280px\] {
    width: 280px;
  }
  .md\:w-\[30\.5\%\] {
    width: 30.5%;
  }
  .md\:w-\[349px\] {
    width: 349px;
  }
  .md\:w-\[69\.5\%\] {
    width: 69.5%;
  }
  .md\:w-auto {
    width: auto;
  }
  .md\:w-full {
    width: 100%;
  }
  .md\:min-w-0 {
    min-width: 0px;
  }
  .md\:min-w-\[100px\] {
    min-width: 100px;
  }
  .md\:min-w-\[90px\] {
    min-width: 90px;
  }
  .md\:max-w-\[150px\] {
    max-width: 150px;
  }
  .md\:max-w-\[203px\] {
    max-width: 203px;
  }
  .md\:max-w-\[250px\] {
    max-width: 250px;
  }
  .md\:max-w-\[860px\] {
    max-width: 860px;
  }
  .md\:max-w-\[970px\] {
    max-width: 970px;
  }
  .md\:max-w-\[980px\] {
    max-width: 980px;
  }
  .md\:max-w-none {
    max-width: none;
  }
  .md\:flex-1 {
    flex: 1 1 0%;
  }
  .md\:flex-initial {
    flex: 0 1 auto;
  }
  .md\:flex-none {
    flex: none;
  }
  .md\:shrink-0 {
    flex-shrink: 0;
  }
  .md\:translate-x-0 {
    --tw-translate-x: 0px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }
  .md\:translate-y-0 {
    --tw-translate-y: 0px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }
  .md\:snap-none {
    scroll-snap-type: none;
  }
  .md\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .md\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .md\:flex-row {
    flex-direction: row;
  }
  .md\:flex-col {
    flex-direction: column;
  }
  .md\:flex-wrap {
    flex-wrap: wrap;
  }
  .md\:flex-nowrap {
    flex-wrap: nowrap;
  }
  .md\:items-start {
    align-items: flex-start;
  }
  .md\:items-center {
    align-items: center;
  }
  .md\:items-stretch {
    align-items: stretch;
  }
  .md\:justify-start {
    justify-content: flex-start;
  }
  .md\:justify-end {
    justify-content: flex-end;
  }
  .md\:justify-center {
    justify-content: center;
  }
  .md\:justify-between {
    justify-content: space-between;
  }
  .md\:gap-0 {
    gap: 0px;
  }
  .md\:gap-10 {
    gap: 2.5rem;
  }
  .md\:gap-2 {
    gap: 0.5rem;
  }
  .md\:gap-2xl {
    gap: var(--spacing-2xl);
  }
  .md\:gap-3 {
    gap: 0.75rem;
  }
  .md\:gap-3xl {
    gap: var(--spacing-3xl);
  }
  .md\:gap-4 {
    gap: 1rem;
  }
  .md\:gap-6 {
    gap: 1.5rem;
  }
  .md\:gap-lg {
    gap: var(--spacing-lg);
  }
  .md\:gap-md {
    gap: var(--spacing-md);
  }
  .md\:gap-sm {
    gap: var(--spacing-sm);
  }
  .md\:gap-xl {
    gap: var(--spacing-xl);
  }
  .md\:gap-x-2 {
    -moz-column-gap: 0.5rem;
         column-gap: 0.5rem;
  }
  .md\:gap-y-2xl {
    row-gap: var(--spacing-2xl);
  }
  .md\:space-x-6 > :not([hidden]) ~ :not([hidden]) {
    --tw-space-x-reverse: 0;
    margin-right: calc(1.5rem * var(--tw-space-x-reverse));
    margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse)));
  }
  .md\:space-y-3xl > :not([hidden]) ~ :not([hidden]) {
    --tw-space-y-reverse: 0;
    margin-top: calc(var(--spacing-3xl) * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(var(--spacing-3xl) * var(--tw-space-y-reverse));
  }
  .md\:overflow-auto {
    overflow: auto;
  }
  .md\:overflow-visible {
    overflow: visible;
  }
  .md\:rounded-2xl {
    border-radius: var(--rounded-2xl);
  }
  .md\:rounded-\[15px\] {
    border-radius: 15px;
  }
  .md\:rounded-base {
    border-radius: var(--rounded-base);
  }
  .md\:rounded-card {
    border-radius: var(--rounded-lg);
  }
  .md\:rounded-none {
    border-radius: var(--rounded-none);
  }
  .md\:\!rounded-l-none {
    border-top-left-radius: var(--rounded-none) !important;
    border-bottom-left-radius: var(--rounded-none) !important;
  }
  .md\:\!rounded-r-none {
    border-top-right-radius: var(--rounded-none) !important;
    border-bottom-right-radius: var(--rounded-none) !important;
  }
  .md\:rounded-b-2xl {
    border-bottom-right-radius: var(--rounded-2xl);
    border-bottom-left-radius: var(--rounded-2xl);
  }
  .md\:rounded-b-base {
    border-bottom-right-radius: var(--rounded-base);
    border-bottom-left-radius: var(--rounded-base);
  }
  .md\:rounded-b-xl {
    border-bottom-right-radius: 0.75rem;
    border-bottom-left-radius: 0.75rem;
  }
  .md\:rounded-l-none {
    border-top-left-radius: var(--rounded-none);
    border-bottom-left-radius: var(--rounded-none);
  }
  .md\:rounded-r-base {
    border-top-right-radius: var(--rounded-base);
    border-bottom-right-radius: var(--rounded-base);
  }
  .md\:rounded-r-none {
    border-top-right-radius: var(--rounded-none);
    border-bottom-right-radius: var(--rounded-none);
  }
  .md\:border {
    border-width: var(--border-width-default);
  }
  .md\:border-b {
    border-bottom-width: var(--border-width-default);
  }
  .md\:border-t {
    border-top-width: var(--border-width-default);
  }
  .md\:border-t-0 {
    border-top-width: 0px;
  }
  .md\:border-border {
    border-color: var(--color-border-default);
  }
  .md\:border-border-strong {
    border-color: var(--color-border-strong);
  }
  .md\:border-border-subtle {
    border-color: var(--color-border-subtle);
  }
  .md\:\!border-r-transparent {
    border-right-color: transparent !important;
  }
  .md\:bg-surface-subtle {
    background-color: var(--color-surface-subtle);
  }
  .md\:bg-transparent {
    background-color: transparent;
  }
  .md\:p-0 {
    padding: 0px;
  }
  .md\:p-2 {
    padding: 0.5rem;
  }
  .md\:p-2xl {
    padding: var(--spacing-2xl);
  }
  .md\:p-\[10px\] {
    padding: 10px;
  }
  .md\:p-xl {
    padding: var(--spacing-xl);
  }
  .md\:px-0 {
    padding-left: 0px;
    padding-right: 0px;
  }
  .md\:px-12 {
    padding-left: 3rem;
    padding-right: 3rem;
  }
  .md\:px-2xl {
    padding-left: var(--spacing-2xl);
    padding-right: var(--spacing-2xl);
  }
  .md\:px-3 {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
  .md\:px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .md\:px-5 {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  .md\:px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
  .md\:px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
  }
  .md\:px-\[10px\] {
    padding-left: 10px;
    padding-right: 10px;
  }
  .md\:px-lg {
    padding-left: var(--spacing-lg);
    padding-right: var(--spacing-lg);
  }
  .md\:px-xl {
    padding-left: var(--spacing-xl);
    padding-right: var(--spacing-xl);
  }
  .md\:py-0 {
    padding-top: 0px;
    padding-bottom: 0px;
  }
  .md\:py-1 {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
  }
  .md\:py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
  }
  .md\:py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
  }
  .md\:py-3\.5 {
    padding-top: 0.875rem;
    padding-bottom: 0.875rem;
  }
  .md\:py-6 {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
  }
  .md\:py-layout-section-padding-desktop {
    padding-top: var(--spacing-layout-section-padding-desktop);
    padding-bottom: var(--spacing-layout-section-padding-desktop);
  }
  .md\:py-lg {
    padding-top: var(--spacing-lg);
    padding-bottom: var(--spacing-lg);
  }
  .md\:pb-0 {
    padding-bottom: 0px;
  }
  .md\:pt-0 {
    padding-top: 0px;
  }
  .md\:pt-12 {
    padding-top: 3rem;
  }
  .md\:pt-6 {
    padding-top: 1.5rem;
  }
  .md\:pt-layout-section-padding {
    padding-top: var(--spacing-section-padding, 1.5rem);
  }
  .md\:text-left {
    text-align: left;
  }
  .md\:text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
  }
  .md\:text-base {
    font-size: 1rem;
    line-height: 1.5rem;
  }
  .md\:text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
  }
  .md\:text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
  .md\:text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
  }
  .md\:font-medium {
    font-weight: 500;
  }
  .md\:leading-5 {
    line-height: 1.25rem;
  }
  .md\:leading-\[30px\] {
    line-height: 30px;
  }
  .md\:shadow-lg {
    --tw-shadow: var(--shadow-lg);
    --tw-shadow-colored: var(--shadow-lg);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }
  .md\:shadow-xl {
    --tw-shadow: var(--shadow-xl);
    --tw-shadow-colored: var(--shadow-xl);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }
  .md\:ring-0 {
    --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  }
  .md\:ring-offset-0 {
    --tw-ring-offset-width: 0px;
  }
  .md\:hover\:shadow-\[0_0_0_4px_var\(--color-surface-sunken\)\]:hover {
    --tw-shadow: 0 0 0 4px var(--color-surface-sunken);
    --tw-shadow-colored: 0 0 0 4px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }
  .md\:focus-visible\:shadow-\[0_0_0_2px_var\(--color-surface-default\)\2c 0_0_0_4px_var\(--color-border-focus\)\]:focus-visible {
    --tw-shadow: 0 0 0 2px var(--color-surface-default),0 0 0 4px var(--color-border-focus);
    --tw-shadow-colored: 0 0 0 2px var(--tw-shadow-color), 0 0 0 4px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }
}
@media (min-width: 900px) {
  .min-\[900px\]\:-mx-lg {
    margin-left: calc(var(--spacing-lg) * -1);
    margin-right: calc(var(--spacing-lg) * -1);
  }
  .min-\[900px\]\:flex-none {
    flex: none;
  }
  .min-\[900px\]\:basis-\[380px\] {
    flex-basis: 380px;
  }
  .min-\[900px\]\:flex-row {
    flex-direction: row;
  }
  .min-\[900px\]\:border-l {
    border-left-width: var(--border-width-default);
  }
  .min-\[900px\]\:px-lg {
    padding-left: var(--spacing-lg);
    padding-right: var(--spacing-lg);
  }
}
@media (min-width: 1024px) {
  .lg\:not-sr-only {
    position: static;
    width: auto;
    height: auto;
    padding: 0;
    margin: 0;
    overflow: visible;
    clip: auto;
    white-space: normal;
  }
  .lg\:absolute {
    position: absolute;
  }
  .lg\:inset-auto {
    inset: auto;
  }
  .lg\:left-0 {
    left: 0px;
  }
  .lg\:right-0 {
    right: 0px;
  }
  .lg\:z-50 {
    z-index: 50;
  }
  .lg\:col-span-2 {
    grid-column: span 2 / span 2;
  }
  .lg\:-mx-5 {
    margin-left: -1.25rem;
    margin-right: -1.25rem;
  }
  .lg\:mx-0 {
    margin-left: 0px;
    margin-right: 0px;
  }
  .lg\:-ml-px {
    margin-left: -1px;
  }
  .lg\:mb-layout-section-padding-desktop {
    margin-bottom: var(--spacing-layout-section-padding-desktop);
  }
  .lg\:ml-3 {
    margin-left: 0.75rem;
  }
  .lg\:mr-3 {
    margin-right: 0.75rem;
  }
  .lg\:mt-0 {
    margin-top: 0px;
  }
  .lg\:block {
    display: block;
  }
  .lg\:inline {
    display: inline;
  }
  .lg\:flex {
    display: flex;
  }
  .lg\:grid {
    display: grid;
  }
  .lg\:contents {
    display: contents;
  }
  .lg\:hidden {
    display: none;
  }
  .lg\:h-64 {
    height: 16rem;
  }
  .lg\:h-\[250px\] {
    height: 250px;
  }
  .lg\:h-\[90px\] {
    height: 90px;
  }
  .lg\:min-h-0 {
    min-height: 0px;
  }
  .lg\:min-h-12 {
    min-height: 3rem;
  }
  .lg\:w-1\/4 {
    width: 25%;
  }
  .lg\:w-3\/12 {
    width: 25%;
  }
  .lg\:w-45 {
    width: 11.25rem;
  }
  .lg\:w-64 {
    width: 16rem;
  }
  .lg\:w-70 {
    width: 17.5rem;
  }
  .lg\:w-80 {
    width: 20rem;
  }
  .lg\:w-\[184px\] {
    width: 184px;
  }
  .lg\:w-\[208px\] {
    width: 208px;
  }
  .lg\:w-\[210px\] {
    width: 210px;
  }
  .lg\:w-\[278px\] {
    width: 278px;
  }
  .lg\:w-\[312px\] {
    width: 312px;
  }
  .lg\:w-\[355px\] {
    width: 355px;
  }
  .lg\:w-auto {
    width: auto;
  }
  .lg\:min-w-\[300px\] {
    min-width: 300px;
  }
  .lg\:min-w-\[500px\] {
    min-width: 500px;
  }
  .lg\:max-w-\[1140px\] {
    max-width: 1140px;
  }
  .lg\:flex-1 {
    flex: 1 1 0%;
  }
  .lg\:flex-none {
    flex: none;
  }
  .lg\:translate-y-0 {
    --tw-translate-y: 0px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  }
  .lg\:grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lg\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .lg\:flex-row {
    flex-direction: row;
  }
  .lg\:flex-wrap {
    flex-wrap: wrap;
  }
  .lg\:flex-nowrap {
    flex-wrap: nowrap;
  }
  .lg\:items-start {
    align-items: flex-start;
  }
  .lg\:items-center {
    align-items: center;
  }
  .lg\:items-stretch {
    align-items: stretch;
  }
  .lg\:justify-end {
    justify-content: flex-end;
  }
  .lg\:justify-between {
    justify-content: space-between;
  }
  .lg\:gap-0 {
    gap: 0px;
  }
  .lg\:gap-12 {
    gap: 3rem;
  }
  .lg\:gap-2xl {
    gap: var(--spacing-2xl);
  }
  .lg\:gap-6 {
    gap: 1.5rem;
  }
  .lg\:gap-layout-block-desktop {
    gap: var(--spacing-layout-block-desktop);
  }
  .lg\:gap-xl {
    gap: var(--spacing-xl);
  }
  .lg\:gap-x-8 {
    -moz-column-gap: 2rem;
         column-gap: 2rem;
  }
  .lg\:gap-x-xl {
    -moz-column-gap: var(--spacing-xl);
         column-gap: var(--spacing-xl);
  }
  .lg\:gap-y-sm {
    row-gap: var(--spacing-sm);
  }
  .lg\:overflow-visible {
    overflow: visible;
  }
  .lg\:rounded-none {
    border-radius: var(--rounded-none);
  }
  .lg\:\!rounded-b-none {
    border-bottom-right-radius: var(--rounded-none) !important;
    border-bottom-left-radius: var(--rounded-none) !important;
  }
  .lg\:rounded-b-2xl {
    border-bottom-right-radius: var(--rounded-2xl);
    border-bottom-left-radius: var(--rounded-2xl);
  }
  .lg\:rounded-l-none {
    border-top-left-radius: var(--rounded-none);
    border-bottom-left-radius: var(--rounded-none);
  }
  .lg\:rounded-r-none {
    border-top-right-radius: var(--rounded-none);
    border-bottom-right-radius: var(--rounded-none);
  }
  .lg\:border {
    border-width: var(--border-width-default);
  }
  .lg\:border-2 {
    border-width: 2px;
  }
  .lg\:border-t-0 {
    border-top-width: 0px;
  }
  .lg\:border-border-brand-alt {
    border-color: var(--color-border-brand-alt);
  }
  .lg\:border-border-subtle {
    border-color: var(--color-border-subtle);
  }
  .lg\:\!border-b-transparent {
    border-bottom-color: transparent !important;
  }
  .lg\:bg-fill-brand-alt {
    background-color: var(--color-fill-brand-alt);
  }
  .lg\:bg-surface-default {
    background-color: var(--color-surface-default);
  }
  .lg\:p-0 {
    padding: 0px;
  }
  .lg\:p-5 {
    padding: 1.25rem;
  }
  .lg\:px-2xl {
    padding-left: var(--spacing-2xl);
    padding-right: var(--spacing-2xl);
  }
  .lg\:px-xl {
    padding-left: var(--spacing-xl);
    padding-right: var(--spacing-xl);
  }
  .lg\:py-layout-section-padding-desktop {
    padding-top: var(--spacing-layout-section-padding-desktop);
    padding-bottom: var(--spacing-layout-section-padding-desktop);
  }
  .lg\:py-sm {
    padding-top: var(--spacing-sm);
    padding-bottom: var(--spacing-sm);
  }
  .lg\:pb-0 {
    padding-bottom: 0px;
  }
  .lg\:pb-layout-block-desktop {
    padding-bottom: var(--spacing-layout-block-desktop);
  }
  .lg\:pl-2 {
    padding-left: 0.5rem;
  }
  .lg\:pl-3 {
    padding-left: 0.75rem;
  }
  .lg\:pr-4 {
    padding-right: 1rem;
  }
  .lg\:pt-0 {
    padding-top: 0px;
  }
  .lg\:pt-layout-section-padding-desktop {
    padding-top: var(--spacing-layout-section-padding-desktop);
  }
  .lg\:shadow-xl {
    --tw-shadow: var(--shadow-xl);
    --tw-shadow-colored: var(--shadow-xl);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }
  .lg\:duration-100 {
    transition-duration: 100ms;
  }
  .lg\:duration-75 {
    transition-duration: 75ms;
  }
}
@media (min-width: 1148px) {
  .min-\[1148px\]\:sticky {
    position: sticky;
  }
  .min-\[1148px\]\:top-3xl {
    top: var(--spacing-3xl);
  }
  .min-\[1148px\]\:grid {
    display: grid;
  }
  .min-\[1148px\]\:grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .min-\[1148px\]\:grid-cols-\[minmax\(0\2c 1fr\)_336px\] {
    grid-template-columns: minmax(0,1fr) 336px;
  }
  .min-\[1148px\]\:items-start {
    align-items: flex-start;
  }
  .min-\[1148px\]\:gap-2xl {
    gap: var(--spacing-2xl);
  }
  .min-\[1148px\]\:px-0 {
    padding-left: 0px;
    padding-right: 0px;
  }
}
@media (min-width: 1280px) {
  .xl\:block {
    display: block;
  }
  .xl\:inline {
    display: inline;
  }
  .xl\:flex {
    display: flex;
  }
  .xl\:hidden {
    display: none;
  }
  .xl\:grid-cols-\[minmax\(0\2c 829px\)_376px\] {
    grid-template-columns: minmax(0,829px) 376px;
  }
  .xl\:px-2xl {
    padding-left: var(--spacing-2xl);
    padding-right: var(--spacing-2xl);
  }
  .xl\:pb-16 {
    padding-bottom: 4rem;
  }
}
@media (min-width: 1342px) {
  .min-\[1342px\]\:-mx-2xl {
    margin-left: calc(var(--spacing-2xl) * -1);
    margin-right: calc(var(--spacing-2xl) * -1);
  }
  .min-\[1342px\]\:basis-\[842px\] {
    flex-basis: 842px;
  }
  .min-\[1342px\]\:px-2xl {
    padding-left: var(--spacing-2xl);
    padding-right: var(--spacing-2xl);
  }
}
@media (min-width: 1440px) {
  .min-\[1440px\]\:inline {
    display: inline;
  }
  .min-\[1440px\]\:flex {
    display: flex;
  }
  .min-\[1440px\]\:hidden {
    display: none;
  }
  .min-\[1440px\]\:px-2xl {
    padding-left: var(--spacing-2xl);
    padding-right: var(--spacing-2xl);
  }
}
.\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar {
  display: none;
}
.\[\&\>\*\]\:shrink-0>* {
  flex-shrink: 0;
}
.\[\&\>li\]\:mb-xs>li {
  margin-bottom: var(--spacing-xs);
}
.\[\&_strong\]\:font-semibold strong {
  font-weight: 600;
}
.\[\&_strong\]\:text-text-body strong {
  color: var(--color-text-body);
}
.\[\&_ul\]\:list-disc ul {
  list-style-type: disc;
}
.\[\&_ul\]\:pl-5 ul {
  padding-left: 1.25rem;
}
