/* CSS Vars Framework
* Description: This project has one main purpose to use as fewer resources as possible Most templates are built using Bootstrap, JQuery, Font awesome, and many other resources and that affects the page load speed.
* Base URI: https://github.com/majalinet/cssvars
* Version: 3.0
* Copyright 2018-2026 Kim Majali and EITO company https://eito.pro
* Licensed under MIT https://github.com/majalinet/cssvars/blob/master/LICENSE */
@-ms-viewport { width: device-width; }
@layer theme, style, base, layout, components, components-advanced, utilities, utilities-advanced, overrides;
@layer theme {
:root {
  --color-1: #000000;
  --color-2:#4a4e69;
  --dark: #495057;
  --grey: #888;
  --white: #fff;
  --black: #000000;
  --danger: #cc3a3a;
  --info: #1191b8;
  --success: #0abfa4;
  --warning: #bda06a;
  --luxury:#4b2f5a;
  --light-grey: #f6f6f6;
  --body-bg: #fff;
  --body-color: #111;
  --font-weight: 400;
  --font-size-mobile: 16px;
  --font-size-desktop: 16px;
  --col-h-padding: 0;
  --col-v-padding: 0;
  --line-height: 1.5; /* was 1.4 — more comfortable reading rhythm */
  --font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
  --background-image: None;
  /* Heading variables */
  --heading-font-weight: 600; /* was 500 — reads more "product," less "document" */
  --heading-color: var(--color-1);
  --heading-font: var(--font-family);
  --heading-line-height: 1.2;
  --heading-letter-spacing: 0;
  --heading-margin: 0 0 0.5rem 0;
  --h1-size: 2.25rem;
  --h2-size: 1.75rem;
  --h3-size: 1.5rem;
  --h4-size: 1.25rem;
  --h5-size: 1rem;
  --h6-size: 0.875rem;
  --display-1-size: clamp(2.5rem, 3rem + 4vw, 5.5rem);
  --display-2-size: clamp(2.25rem, 2.75rem + 3.5vw, 4.75rem);
  --display-3-size: clamp(2rem, 2.25rem + 3vw, 4rem);
  --display-4-size: clamp(1.85rem, 2rem + 2.25vw, 3.25rem);
  --display-5-size: clamp(1.7rem, 1.75rem + 1.5vw, 2.75rem);
  --display-6-size: clamp(1.6rem, 1.6rem + 1vw, 2.25rem);
  /* Link variables */
  --link-color: var(--color-1);
  --link-hover-color: var(--grey);
  --link-decoration: none;
  --link-hover-decoration: underline;
  /* Icon variables */
  --icon-default-size: 6rem;
  --icon-default-fill: var(--color-1);
  --icon-default-bg: none;
  /* Image variables */
  --image-radius: 0;
  --image-shadow: none;
  --image-border-style: none;
  /* Backs (m/p)-( /h/r/l)-(1-4) */
  --space-dense-1: clamp(0.25rem, 2.03vw - 0.26rem, 1rem);
  --space-dense-2: clamp(0.375rem, 4.39vw - 0.72rem, 2rem);
  --space-dense-3: clamp(0.5rem, 6.76vw - 1.19rem, 3rem);
  --space-dense-4: clamp(0.75rem, 8.78vw - 1.45rem, 4rem);
  /* Backs (m/p)-(v/t/b)-(1-4), gap, flow, panel-padding, child-padding */
  --space-1-2: clamp(0.25rem, 3.33vw, 0.5rem);
  --space-1: clamp(0.5rem, 3.33vw, 1rem);
  --space-2: clamp(1rem, 3.33vw, 2rem);
  --space-3: clamp(1.5rem, 3.33vw, 3rem);
  --space-4: clamp(2rem, 3.33vw, 4rem);
  /* Animation */
  --duration-fast: 0.15s;
  --duration-base: 0.25s;
  --duration-slow: 0.4s;
  --easing: ease;
  --easing-in-out: ease-in-out;
  /* Z-index variables */
  --z-floating: 100;   /* sidebar, dropdown-menu, notification-panel, sticky */
  --z-overlay: 999;    /* light-box-overlay */
  --z-modal: 1000;
  /* Styles variables */
  --default-padding: 0;
  --default-margin: 0;
  --default-gap: clamp(0.5rem, 3.33vw, 1rem);
  --default-border: none;
  --default-border-radius: 0.5rem;
  --box-shadow: 0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.08), 0 0.0625rem 0.125rem rgba(0, 0, 0, 0.16);
  /* Page box variables - apply to body > *, section, article, aside */
  --page-box-padding: var(--default-padding);
  --page-box-border: none;
  --page-box-radius: 0;
  --page-box-shadow: none;
  /* Surface variables */
  --surface-raised: var(--body-bg);
  --surface-dim: var(--light-grey);
  --surface-overlay: color-mix(in srgb, var(--black) 60%, transparent);
  --surface-inverse: var(--black);
  --surface-inverse-color: var(--white);
  --surface-hover: color-mix(in srgb, var(--color-1) 8%, transparent);
  --surface-active: color-mix(in srgb, var(--color-1) 16%, transparent);
  --surface-selected: color-mix(in srgb, var(--color-1) 12%, transparent);
  --surface-disabled: color-mix(in srgb, var(--grey) 30%, transparent);
  /* Panel variables */
  --panel-bg: var(--surface-raised);
  --panel-border: var(--default-border);
  --panel-radius: var(--default-border-radius);
  --panel-shadow: var(--box-shadow);
  --panel-padding: var(--space-dense-2);
  /* Control variables */
  --control-bg: var(--color-1);
  --control-color: var(--white);
  --control-font-weight: 400;
  --control-font-size: 1rem;
  --control-border: none;
  --control-radius: calc(var(--default-border-radius) * 0.75); /* was hardcoded 0.2rem — now derives from the same token as panels, was 0.2rem */
  --control-padding: 0.37rem 0.95rem;
  --control-margin: 0.5rem 0.1rem;
  --control-shadow: var(--shadow-style, 0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.12), 0 0.0625rem 0.125rem rgba(0, 0, 0, 0.24));
  --control-hover-bg: var(--surface-hover);
  --control-hover-color: var(--color-1);
  --control-hover-border: var(--color-1);
  --control-active-bg: var(--surface-active);
  --control-active-color: var(--control-color);
  --control-focus-ring: 0 0 0 0.1875rem color-mix(in srgb, var(--color-1) 35%, transparent);
  --control-disabled-opacity: 0.5;
  /* Input variables */
  --input-bg: var(--body-bg);
  --input-color: var(--dark);
  --input-border: 0.125rem solid var(--light-grey);
  --input-radius: calc(var(--default-border-radius) * 0.75); /* was hardcoded 0.25rem — now derives from the same token as panels */
  --input-padding-x: 0.35rem;
  --input-padding-y: 0.275rem;
  --input-placeholder: var(--dark);
  --input-shadow: var(--shadow-style, 0 0.33rem 1rem rgba(0, 0, 0, 0.08));
  --input-hover-border: var(--grey);
  --input-focus-border: var(--color-1);
  --input-focus-shadow: 0 0 0 0.1875rem color-mix(in srgb, var(--color-1) 25%, transparent);
  --input-invalid-border: var(--danger);
  --input-invalid-color: var(--danger);
  --input-disabled-bg: var(--light-grey);
  --input-disabled-opacity: 0.5;
  /* Flow variables */
  --content-flow: var(--space-1);
  --page-flow:  0;
  --main-flow: clamp(6rem, 3.33vw, 12rem);
  --child-padding: var(--space-1);
}
/* Currently uses [data-theme="dark"] for manual toggle. To use system preference instead, replace with:
  @media (prefers-color-scheme: dark) { :root { ... } }  Or keep both for auto-detect + manual override. */
/* @media (prefers-color-scheme:dark){
  :root {
  */
[data-theme="dark"] {
  --color-1: #f3f4f6;
  --color-2: #8b92b8;
  --dark: #9ca3af;
  --grey: #4b5563;
  --light-grey: #23262d;
  --white: #060606;
  --black: #e0e0e0;
  --danger: #ef6b73;
  --info: #4fb7e8;
  --success: #3dd5b6;
  --warning: #d9b16f;
  --luxury: #9d73b8;
  --body-bg: #121417;
  --body-color: #e5e7eb;
  --heading-color: #fafafa;
  --link-color: var(--color-1);
  --link-hover-color: #ffffff;
  --icon-default-fill: var(--color-1);
  --surface-raised: #1a1d22;
  --surface-dim: #15181c;
  --surface-overlay: rgba(0,0,0,.72);
  --surface-inverse: #f5f5f5;
  --surface-inverse-color: #111111;
  --surface-hover: color-mix(in srgb, white 8%, transparent);
  --surface-active: color-mix(in srgb, white 16%, transparent);
  --surface-selected: color-mix(in srgb, white 12%, transparent);
  --surface-disabled: color-mix(in srgb, var(--grey) 35%, transparent);
  --panel-bg: var(--surface-raised);
  --panel-border: 0.0625rem solid #2f343d;
  --panel-shadow: 0 .25rem .75rem rgba(0,0,0,.45);
  --control-bg: var(--color-1);
  --control-color: #121417;
  --control-hover-bg: #ffffff;
  --control-hover-color: #000000;
  --control-hover-border: #ffffff;
  --control-active-bg: #d1d5db;
  --input-bg: #1a1d22;
  --input-color: #f3f4f6;
  --input-border: 0.125rem solid #30343b;
  --input-placeholder: #9ca3af;
  --input-hover-border: #6b7280;
  --input-focus-border: var(--color-1);
  --input-disabled-bg: #23262d;
  --box-shadow: none;
}
:where(body > *, section, article, aside) {
  padding: var(--page-box-padding);
  border: var(--page-box-border);
  border-radius: var(--page-box-radius);
  box-shadow: var(--page-box-shadow);
}
/* Opt-in "reset box" utility — apply the same zeroed box model to any single element explicitly */
.styled {
  padding: var(--default-padding);
  margin: var(--default-margin);
  border: var(--default-border);
  border-radius: var(--default-border-radius);
  box-shadow: var(--box-shadow);
}
/* Opt-in "reset children" utility — same idea, applied to direct children. */
.reset-children > * {
  padding: var(--default-padding);
  margin: var(--default-margin);
  border: var(--default-border);
  border-radius: var(--default-border-radius);
  box-shadow: var(--box-shadow);
}
}
@layer base {
html {
  width: 100%;
  box-sizing: border-box;
  font-size: var(--font-size-mobile, 12px);
}
@media (min-width: 992px) {
  html {
    font-size: var(--font-size-desktop, 16px);
  }
}
body {
  margin: 0;
  width: 100%;
  font-family: var(--font-family);
  font-size: 1rem;
  font-weight: var(--font-weight, 400);
  line-height: var(--line-height, 1.5);
  background-color: var(--body-bg, white);
  color: var(--body-color, black);
  background-image: var(--background-image, none);
}
body > * + * {
  margin-top: var(--page-flow, 0);
}
main > * + * {
  margin-top: var(--main-flow, 0);
}
ol, ul, dl {
  margin-top: 0;
  margin-bottom: 1rem;
  text-align: left;
}
ol ol, ul ul, ol ul, ul ol {  margin-bottom: 0;}
dt {  font-weight: var(--heading-font-weight, 400);}
dd {
  margin-bottom: 0.5rem;
  margin-left: 0;
}
a {
  color: var(--link-color, black);
  text-decoration: var(--link-decoration, none);
}
a:hover {
  color: var(--link-hover-color, grey);
  text-decoration: var(--link-hover-decoration, underline);
}
figure {
  margin: 0 0 1rem;
}
img {
  vertical-align: middle;
  border-style: var(--image-border-style, none);
  border-radius: var(--image-radius, 0);
  box-shadow: var(--image-shadow, none);
}
svg {
  overflow: hidden;
  vertical-align: middle;
}
table {
  border-collapse: collapse;
}
hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}
/* Typography */
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .heading {
  margin: var(--heading-margin);
  font-family: var(--heading-font);
  font-weight: var(--heading-font-weight);
  color: var(--heading-color);
  line-height: var(--heading-line-height);
  letter-spacing: var(--heading-letter-spacing);
}
h1, .h1 { font-size: var(--h1-size); }
h2, .h2 { font-size: var(--h2-size); }
h3, .h3 { font-size: var(--h3-size); }
h4, .h4 { font-size: var(--h4-size); }
h5, .h5 { font-size: var(--h5-size); }
h6, .h6 { font-size: var(--h6-size); }
.lead {
  font-size: 1.25rem;
  font-weight: 300;
}
.display-1 { font-size: var(--display-1-size); }
.display-2 { font-size: var(--display-2-size); }
.display-3 { font-size: var(--display-3-size); }
.display-4 { font-size: var(--display-4-size); }
.display-5 { font-size: var(--display-5-size); }
.display-6 { font-size: var(--display-6-size); }
p {
  margin-top: 0;
  margin-bottom: 1rem;
}
code, .code {
  font-family: var(--font-mono);
  font-size: 0.875em;
  color: var(--heading-color);
  background-color: var(--surface-dim);
  padding: 0.2em 0.4em;
  border-radius: var(--control-radius);
  white-space: break-spaces;
}
pre, .code-block {
  display: block;
  font-family: var(--font-mono);
  background-color: var(--surface-dim);
  color: var(--heading-color);
  padding: var(--panel-padding, 1rem);
  border-radius: var(--panel-radius);
  overflow-x: auto;
  margin-bottom: 1rem;
}
pre code, .code-block code {
  background-color: transparent;
  padding: 0;
  border-radius: 0;
  font-size: 0.875em;
}
kbd, .kbd {
  font-family: var(--font-mono);
  font-size: 0.875em;
  color: var(--surface-inverse-color);
  background-color: var(--surface-inverse);
  padding: 0.15em 0.4em;
  border-radius: var(--control-radius);
  box-shadow: inset 0 -0.1em 0 rgba(0,0,0,.25);
}
samp, .samp {
  font-family: var(--font-mono);
  font-size: 0.875em;
}
var, .var {
  font-family: var(--font-mono);
  font-style: italic;
}
small { font-size: 0.875em; }
mark { background-color: color-mix(in srgb, var(--color-1) 20%, transparent); color: inherit; padding: 0.1em 0.2em; }
abbr[title] { text-decoration: underline dotted; cursor: help; }
sub, sup { font-size: 0.75em; line-height: 0; position: relative; vertical-align: baseline; }
sub { bottom: -0.25em; }
sup { top: -0.5em; }
address { font-style: normal; margin-bottom: 1rem; }
fieldset { border: var(--default-border); border-radius: var(--default-border-radius); padding: var(--default-padding); margin: 0 0 1rem; }
legend { padding: 0 0.5rem; font-weight: var(--heading-font-weight); }
caption { padding: 0.5rem; color: var(--grey); text-align: left; caption-side: bottom; }
.par {
  width: 100%;
  height: auto;
  position: relative;
}
.fancy-title.title-dotted-border {
    background-image: repeating-linear-gradient(
    to right,
    var(--grey) 0,
    var(--grey) 0.0375rem,
    transparent 0.0375rem,
    transparent 0.075rem
  );
  background-position: center;
  background-repeat: repeat-x;
}
.title-center {  text-align: center;}
.fancy-title {
  position: relative;
  margin-bottom: 1.8rem;
}
.fancy-title h1, .fancy-title h2, .fancy-title h3, .fancy-title h4, .fancy-title h5, .fancy-title h6 {
  position: relative;
  display: inline-block;
  background-color: var(--body-bg, white);
  padding: 0 1rem;
  margin: 1.5rem 0;
}
.short-line {
  width: 100%;
  margin: 0;
  padding: 0;
  text-align: center;
}
.short-line:after {
  display: inline-block;
  margin: 0 0 0.6rem 1.2rem;
  height: 0.2rem;
  content: " ";
  text-shadow: none;
  background-color: var(--grey, #bbb);
  width: 10%;
}
.short-line:before {
  display: inline-block;
  margin: 0 1.2rem 0.6rem 0;
  height: 0.2rem;
  content: " ";
  text-shadow: none;
  background-color: var(--grey, #bbb);
  width: 10%;
}
/* List styles */
.colored-ul, .indent-ul, .half-indent-ul, .no-indent-ul, .colored-ol, .steps-ol {
  list-style: none;
  text-indent: -0.7em;
}
.no-indent-ul {  padding: inherit;}
.half-indent-ul {  text-indent: -1.5em;}
.colored-ul li::before {
  content: "● ";
  color: var(--color-1, black);
}
.colored-ol {  counter-reset: my-awesome-counter;}
.colored-ol li {  counter-increment: my-awesome-counter;}
.colored-ol li::before {
  content: counter(my-awesome-counter) ". ";
  color: var(--color-1,black);
  font-weight: 400;
}
.bolded-ol {  counter-reset: my-bolded-counter;}
.bolded-ol li {
  counter-increment: my-bolded-counter;
  display: flex;
  margin-bottom: 1rem;
}
.bolded-ol li::before {
  content: "0" counter(my-bolded-counter);
  color: var(--color-1);
  font-weight: 400;
  font-size: 3em;
  margin-right: 0.5rem;
  line-height: 1;
}
.steps-ol li {
  margin: 1.2rem 0 2rem 0;
  padding-top: 1.2em;
  display: block;
  position: relative;
  counter-increment: inst;
  text-indent: 0;
  }
.steps-ol li::before {
  content: counter(inst);
  background: var(--color-1, black);
  background-color: color-mix(in srgb, var(--color-1, black) 10%, transparent);
  color: var(--color-1, black);
  font-weight: 400;
  font-size: 1.5em;
  text-align: center;
  left: -5%;
  top: -0.65em;
  width: 3rem;
  position: absolute;
}
/* Transform Classes */
.rotate-10  { transform: rotate(10deg); }
.rotate-20  { transform: rotate(20deg); }
.rotate--10 { transform: rotate(-10deg); }
.rotate--20 { transform: rotate(-20deg); }
/* Writing direction and mode utility classes */
.rtl { direction: rtl; }
.ltr { direction: ltr; }
.horizontal-tb, .vertical-rl, .vertical-lr {
  writing-mode: var(--writing-mode);
}
.horizontal-tb { --writing-mode: horizontal-tb; }
.vertical-rl   { --writing-mode: vertical-rl; }
.vertical-lr   { --writing-mode: vertical-lr; }
.drop-caps {
  float: left;
  font-size: 4.7rem;
  line-height: 3.75rem;
  padding-top: 0.25rem;
  padding-right: 0.5rem;
  padding-left: 0.2rem;
  color: var(--color-1, black);
}
.par-2-cols { column-count: 2; }
.par-3-cols { column-count: 3; }
.par-4-cols { column-count: 4; }
.par-cols-gap-2 { column-gap: 2.5rem; }
.par-cols-gap-3 { column-gap: 3.5rem; }
.par-cols-rule { column-rule: 0.0625rem solid var(--grey, black); }
.opacity1, .opacity1-hover:hover { opacity: 1; }
.opacity07, .opacity07-hover:hover { opacity: 0.7; }
.opacity05, .opacity05-hover:hover { opacity: 0.5; }
.opacity03, .opacity03-hover:hover { opacity: 0.3; }
*, *::before, *::after {
  box-sizing: inherit;
}
.test-box div, .test-box header, .test-box main, .test-box section, .test-box footer, .test-box aside {
  min-height: 3.57rem;
  border-style: solid;
  border-width: 0.075rem;
  vertical-align: middle;
  text-align: center;
  background-color: var(--light-grey);
}
}
@layer layout {
.container, .container-fluid, .container-half-fluid {
  width: 100%;
  padding-right: 1rem;
  padding-left: 1rem;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 576px) {
  .container { max-width: 540px; }
  .w-25-responsive,
  .w-50-responsive { width: 100%; }
}
@media (min-width: 768px) {
  .container { max-width: 720px; }
  .w-25-responsive { width: 50%; }
  .w-50-responsive { width: 100%; }
}
@media (min-width: 992px) {
  .container { max-width: 960px; }
  .w-25-responsive { width: 25%; }
  .w-50-responsive { width: 50%; }
}
@media (min-width: 1200px) {
  .container { max-width: 1140px; }
  .container-half-fluid { max-width: 85%; }
}
/* Grid system */
.row {
  display: flex;
  flex-wrap: wrap;
}
.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, .col-auto, .col-sm-4, .col-sm-6, .col-sm-8, .col-sm-12, .col-sm, .col-sm-auto, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-8, .col-md-9, .col-md-10, .col-md-12, .col-md, .col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, .col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, .col-xl-auto {
  position: relative;
  width: 100%;
  padding: var(--col-v-padding, 0) var(--col-h-padding, 0);
}
  .col { flex-basis: 0; flex-grow: 1; max-width: 100%; }
  .col-auto { flex: 0 0 auto; width: auto; max-width: 100%; }
  .col-1 { flex: 0 0 8.333333%; max-width: 8.333333%; }
  .col-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
  .col-3 { flex: 0 0 25%; max-width: 25%; }
  .col-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
  .col-5 { flex: 0 0 41.666667%; max-width: 41.666667%; }
  .col-6 { flex: 0 0 50%; max-width: 50%; }
  .col-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
  .col-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
  .col-9 { flex: 0 0 75%; max-width: 75%; }
  .col-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
  .col-11 { flex: 0 0 91.666667%; max-width: 91.666667%; }
  .col-12 { flex: 0 0 100%; max-width: 100%; }
@media (min-width: 576px) {
  .col-sm { flex-basis: 0; flex-grow: 1; max-width: 100%; }
  .col-sm-auto { flex: 0 0 auto; width: auto; max-width: 100%; }
  .col-sm-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
  .col-sm-6 { flex: 0 0 50%; max-width: 50%; }
  .col-sm-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
  .col-sm-12 { flex: 0 0 100%; max-width: 100%; }
}
@media (min-width: 768px) {
  .col-md { flex-basis: 0; flex-grow: 1; max-width: 100%; }
  .col-md-auto { flex: 0 0 auto; width: auto; max-width: 100%; }
  .col-md-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
  .col-md-3 { flex: 0 0 25%; max-width: 25%; }
  .col-md-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
  .col-md-5 { flex: 0 0 41.666667%; max-width: 41.666667%; }
  .col-md-6 { flex: 0 0 50%; max-width: 50%; }
  .col-md-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
  .col-md-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
  .col-md-9 { flex: 0 0 75%; max-width: 75%; }
  .col-md-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
  .col-md-12 { flex: 0 0 100%; max-width: 100%; }
}
@media (min-width: 992px) {
  .col-lg { flex-basis: 0; flex-grow: 1; max-width: 100%; }
  .col-lg-auto { flex: 0 0 auto; width: auto; max-width: 100%; }
  .col-lg-1 { flex: 0 0 8.333333%; max-width: 8.333333%; }
  .col-lg-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
  .col-lg-3 { flex: 0 0 25%; max-width: 25%; }
  .col-lg-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
  .col-lg-5 { flex: 0 0 41.666667%; max-width: 41.666667%; }
  .col-lg-6 { flex: 0 0 50%; max-width: 50%; }
  .col-lg-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
  .col-lg-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
  .col-lg-9 { flex: 0 0 75%; max-width: 75%; }
  .col-lg-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
  .col-lg-11 { flex: 0 0 91.666667%; max-width: 91.666667%; }
  .col-lg-12 { flex: 0 0 100%; max-width: 100%; }
  .lg-order-first { order: -1; }
  .lg-order-last { order: 13; }
}
@media (min-width: 1200px) {
  .col-xl { flex-basis: 0; flex-grow: 1; max-width: 100%; }
  .col-xl-auto { flex: 0 0 auto; width: auto; max-width: 100%; }
  .col-xl-1 { flex: 0 0 8.333333%; max-width: 8.333333%; }
  .col-xl-2 { flex: 0 0 16.666667%; max-width: 16.666667%; }
  .col-xl-3 { flex: 0 0 25%; max-width: 25%; }
  .col-xl-4 { flex: 0 0 33.333333%; max-width: 33.333333%; }
  .col-xl-5 { flex: 0 0 41.666667%; max-width: 41.666667%; }
  .col-xl-6 { flex: 0 0 50%; max-width: 50%; }
  .col-xl-7 { flex: 0 0 58.333333%; max-width: 58.333333%; }
  .col-xl-8 { flex: 0 0 66.666667%; max-width: 66.666667%; }
  .col-xl-9 { flex: 0 0 75%; max-width: 75%; }
  .col-xl-10 { flex: 0 0 83.333333%; max-width: 83.333333%; }
  .col-xl-11 { flex: 0 0 91.666667%; max-width: 91.666667%; }
  .col-xl-12 { flex: 0 0 100%; max-width: 100%; }
}
article > * + *, aside > * + *, details > * + * , blockquote > * + * {
  margin-top: var(--content-flow, 0);
}
}
@layer components {
/* Card */
.card {
  background-color: var(--panel-bg);
  border: var(--panel-border);
  border-radius: var(--panel-radius);
  box-shadow: var(--panel-shadow);
  padding: var(--panel-padding);
}
.card-header {
  padding-bottom: var(--default-padding);
  margin-bottom: var(--default-padding);
  border-bottom: 0.0625rem solid var(--light-grey);
  font-weight: var(--heading-font-weight);
  color: var(--heading-color);
}
.card-body { padding: var(--default-padding) 0; }
.card-footer {
  padding-top: var(--default-padding);
  margin-top: var(--default-padding);
  border-top: 0.0625rem solid var(--light-grey);
}
.card-hover:hover {
  box-shadow: 0 0.5rem 1rem color-mix(in srgb, var(--black) 15%, transparent);
  transform: translateY(-0.125rem);
  transition: box-shadow var(--duration-fast, 0.150s) var(--easing, ease), transform var(--duration-fast, 0.150s) var(--easing, ease);
}
/* Panel */
.panel {
  background-color: var(--panel-bg);
  border: var(--panel-border);
  border-radius: var(--panel-radius);
  box-shadow: var(--panel-shadow);
  padding: var(--panel-padding);
}
/* Icons */
.icon {
  width: var(--icon-default-size, 4rem);
  height: var(--icon-default-size, 4rem);
  fill: var(--icon-default-fill, black);
  background-color: var(--icon-default-bg, white);
}
.icon-box {
  display: inline-block;
  padding: 0.5rem;
}
.icon-xxs { width: 1rem; height: 1rem; }
.icon-xs { width: 1.5rem; height: 1.5rem; }
.icon-s { width: 2rem; height: 2rem; }
.icon-ssm { width: 2.5rem; height: 2.5rem; }
.icon-sm { width: 3rem; height: 3rem; }
.icon-m { width: 4rem; height: 4rem; }
.icon-ml { width: 6rem; height: 6rem; }
.icon-lg { width: 8rem; height: 8rem; }
.icon-xl { width: 12rem; height: 12rem; }
/* Icon backgrounds */
.icon-white-bg { background-color: var(--white, white); }
.icon-light-grey-bg { background-color: var(--light-grey, #aaa); }
.icon-grey-bg { background-color: var(--grey, #aaa); }
.icon-color-1-bg { 
  background-color: var(--color-1, black);
  fill: var(--body-bg, white);
}
.icon-color-2-bg {
  background-color: var(--color-2, black);
  fill: var(--body-bg, white);
}
.icon-info-bg {
  background-color: var(--info, green);
  fill: var(--body-bg, white);
}
.icon-success-bg {
  background-color: var(--success, blue);
  fill: var(--body-bg, white);
}
.icon-danger-bg {
  background-color: var(--danger, red);
  fill: var(--body-bg, white);
}
.icon-warning-bg {
  background-color: var(--warning, yellow);
  fill: var(--body-bg, white);
}
.icon-luxury-bg {
  background-color: var(--luxury, purple);
  fill: var(--body-bg, white);
}
.icon-black-bg {
  background-color: var(--black, black);
  fill: var(--body-bg, white);
}
.icon-dark-bg {
  background-color: var(--dark, rgb(72, 72, 72));
  fill: var(--body-bg, white);
}
/* Icon fills */
.icon-white-fill { fill: var(--white, white); }
.icon-light-grey-fill { fill: var(--light-grey, #aaa); }
.icon-grey-fill { fill: var(--grey, #aaa); }
.icon-color-1-fill { fill: var(--color-1, black); }
.icon-color-2-fill { fill: var(--color-2, black); }
.icon-white-fill { fill: var(--white, white); }
.icon-info-fill { fill: var(--info, green); }
.icon-success-fill { fill: var(--success, blue); }
.icon-danger-fill { fill: var(--danger, red); }
.icon-warning-fill { fill: var(--warning, yellow); }
.icon-luxury-fill { fill: var(--luxury, purple); }
.icon-black-fill { fill: var(--black, black); }
.icon-dark-fill { fill: var(--dark, rgb(72, 72, 72)); }
/*dividers */
hr { margin: 3% 0 5% 0; margin-inline: auto; }
hr.width-50 { width: 50%; }
hr.width-short { width: 3rem; }
/*Quotes */
blockquote {
  padding:calc(var(--panel-padding)/2);
  margin: 0 0 1.5rem;
  font-size: 1.1rem;
  font-weight: 400;
  border-left: 0.5rem solid var(--color-1, black);
}
.blockquote-footer {
  display: block;
  font-size: 80%;
  color: var(--color-1, black);
}
/*Pagination */
.pagination {
  display: flex;
  list-style: none;
  padding:var(--control-padding);
  border-radius:var(--control-radius);
  box-shadow:var(--control-shadow);
}
.btn-link, .page-link, .page-link:focus, .page-link:hover {
  color: var(--control-color, var(--color-1));
}
.page-link {
  position: relative;
  display: block;
  padding: 0.5rem 0.75rem;
  line-height: var(--line-height, 1.2);
  color: var(--control-color, var(--color-1));
  background-color: var(--control-bg);
  border: 0.0625rem solid var(--light-grey, #dee2e6);
}
.page-item.active .page-link, .page-link:focus, .page-link:hover {
  background-color: var(--control-hover-bg);
  color: var(--control-hover-color);
  border-color: var(--color-1, black);
}
.page-item.active .page-link {
  z-index: 1;
  background-color: var(--control-active-bg);
  color: var(--control-active-color);
  border-color: var(--control-bg);
}
/* Buttons */
button, .button, .accordion-label, .tabs > label {
  background-color: var(--control-bg);
  border: var(--control-border);
  color: var(--control-color);
  font-weight: var(--control-font-weight);
  padding: var(--control-padding);
  font-size: var(--control-font-size);
  border-radius: var(--control-radius);
  margin: var(--control-margin);
  box-shadow: var(--control-shadow);
  text-decoration: none;
  display: inline-block;
}
.button-s {  font-size: 0.75rem;}
.button-m {  font-size: 1.25rem;}
.button-lg { font-size: 1.75rem;}
button:hover, .button:hover {
  text-decoration: none;
  background-color: var(--control-hover-bg);
  color: var(--control-hover-color);
}
button:active, .button:active {
  background-color: var(--control-active-bg);
  color: var(--control-active-color);
}
button:focus-visible, .button:focus-visible {
  outline: none;
  box-shadow: var(--control-shadow), var(--control-focus-ring);
}
button:disabled, .button:disabled, .button.disabled {
  opacity: var(--control-disabled-opacity);
  pointer-events: none;
}
.button-w-25 {  width: 25%;}
.button-w-50 {  width: 50%;}
.button-w-100 {  width: 100%;}
/*badge*/
.badge {
  line-height: 1;
  display: inline-block;
  padding: 0.25em 0.4em;
  font-size: 75%;
  font-weight: 400;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: var(--control-radius, 0.25rem);
}
/* Alerts & Messages*/
.msg {
  display: block;
  border-left: 0.75rem solid rgba(255, 255, 255, 0.5);
  font-size: 0.85rem;
  position: relative;
  padding:calc(var(--panel-padding)/4);
  margin-bottom: 1rem;
  border: 0.75rem solid transparent;
  border-radius:var(--panel-radius);
}
/*tables*/
.table {
  min-width: 100%;
  margin-bottom: 1rem;
  table-layout: fixed;
}
table {
  border-spacing: 0;
  border-collapse: collapse;
}
tr {
  display: table-row;
  vertical-align: inherit;
  border-color: inherit;
}
.table-td-min-w-15rem td {
  min-width: 15rem;
}
.table-td-min-w-10rem td {
  min-width: 10rem;
}
.table-td-min-w-5rem td {
  min-width: 5rem;
}
.table-td-w-15rem td {
  min-width: 15rem;
  max-width: 15rem;
}
.table-td-w-10rem td {
  min-width: 10rem;
  max-width: 10rem;
}
.table-td-w-5rem td {
  min-width: 5rem;
  max-width: 5rem;
}
.table-td-overflow-hidden td, .table-td-overflow-hidden th {
  overflow: hidden;
  white-space: nowrap; 
}
.table td, .table th {
  padding: .5rem;
  vertical-align: top;
  border-top: 0.0625rem solid var(--grey, #eee);
}
.table-compact td, .table-compact th {
  padding: 0.2rem;
}
.table-large-2x tr td {  height: 4rem;}
.table-large-3x tr td {  height: 6rem;}
.table-large-4x tr td{  height: 8rem;}
.table-large-5x tr td {  height: 10rem;}
.table>thead>tr>th {
  vertical-align: bottom;
  border-bottom: 0.15rem solid #ddd;
  border-top: none;
  font-weight: 600;
  color: var(--color-1, lightgray);
}
.table-striped tbody tr:nth-of-type(odd) {
  background-color: color-mix(in srgb, var(--grey, grey) 15%, transparent);
}
.table-striped-color-1 tbody tr:nth-of-type(odd) {
  background-color: color-mix(in srgb, var(--color-1, black) 10%, transparent);
}
.table-cell-border-none td, .table-cell-border-none th {
  border: none !important;
}
.table-cell-separate, .table-cell-separate-color-1 {
  background:transparent;
  border-collapse: separate;
  border-spacing: .5rem;
}
.table-cell-separate td, .table-cell-separate th  {
  background-color: color-mix(in srgb, var(--grey, grey) 15%, transparent);
  border: none;
}
.table-cell-separate-color-1 td, .table-cell-separate-color-1 th  {
  background-color: color-mix(in srgb, var(--color-1, black) 10%, transparent);
  border: none;
}
.table-dark-header th {
  background-color: var(--dark);
  color: var(--body-bg) !important;
}
.table-color-1-header th {
  background-color: var(--color-1);
  color: var(--body-bg) !important;
}
.table-dark-footer tfoot td {
  background-color: var(--dark);
  color: var(--body-bg);
}
.table-color-1-footer tfoot td {
  background-color: var(--color-1);
  color: var(--body-bg);
}
.table-dark-1st-col td:nth-child(1), .table-dark-1st-col th:nth-child(1) {  
  background-color: var(--dark);
  color: var(--body-bg);
}
.table-color-1-1st-col td:nth-child(1), .table-color-1-1st-col th:nth-child(1) {  
  background-color: var(--color-1);
  color: var(--body-bg);
}
.table-dark-last-col td:last-child, .table-dark-last-col th:last-child {  
  background-color: var(--dark);
  color: var(--body-bg);
}
.table-color-1-last-col td:last-child, .table-color-1-last-col th:last-child{  
  background-color: var(--color-1);
  color: var(--body-bg);
}
.table-hover tbody tr:hover {
  background-color: color-mix(in srgb, var(--grey, grey) 10%, transparent);
}
.table-hover-color-1 tbody tr:hover {
  background-color: color-mix(in srgb, var(--color-1, black) 10%, transparent);
}
.table-bordered {
  border: 0.075rem solid var(--grey, #dee2e6);
}
.table-bordered td, .table-bordered th {
  border: 0.075rem solid var(--grey, #dee2e6);
}
.table-bordered thead td, .table-bordered thead th {
  border-bottom-width: 0.15rem;
}
.table-bordered-color-1 {
  border: 0.075rem solid var(--color-1, lightgray);
}
.table-bordered-color-1 td, .table-bordered-color-1 th {
  border: 0.075rem solid var(--color-1, lightgray);
}
.table-bordered-color-1 thead td, .table-bordered-color-1 thead th {
  border-bottom: 0.15rem solid var(--color-1, lightgray);
}
td button {
  margin-top: auto;
  margin-bottom: auto;
}
.table-layout-fixed {
  table-layout: fixed;
}
.table-numeric td { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
/* Images */
.img-responsive {
  max-width: 100%;
  height: auto;
}
.img-thumbnail {
  padding: 0.25rem;
  background-color: color-mix(in srgb, var(--white, white) 10%, transparent);
  border: 0.075rem solid var(--light-grey, #dee2e6);
  border-radius: 0.25rem;
  max-width: 100%;
  height: auto;
}
/* responsive */
.audio-responsive {
  max-height: 100%;
  max-width: 100%;
  object-fit: contain;
}
.embed {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  overflow: hidden;
}
.embed::before {
  display: block;
  content: "";
}
.embed .embed-item, .embed embed, .embed iframe, .embed object, .embed video {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.embed-ultra-wide::before { padding-top: 42.857143%; }
.embed-wide-screen::before { padding-top: 56.25%; }
.embed-standard::before { padding-top: 75%; }
.embed-square::before { padding-top: 100%; }
.aspect-auto { aspect-ratio: auto; }
.aspect-square { aspect-ratio: 1 / 1; }
.aspect-video { aspect-ratio: 16 / 9; }
.aspect-4-3 { aspect-ratio: 4 / 3; }
.aspect-3-2 { aspect-ratio: 3 / 2; }
/* Forms */
.form-group {
  margin-bottom: 1rem;
}
.form-text {
  display: block;
  margin-top: 0.25rem;
}
.form-row {
  display: flex;
  flex-wrap: wrap;
  margin-right: -0.3125rem;
  margin-left: -0.3125rem;
}
.form-row>.col, .form-row>[class*="col-"] {
  padding-right: 0.3125rem;
  padding-left: 0.3125rem;
}
.form-control {
  display: block;
  width: 100%;
  padding: var(--input-padding-y) var(--input-padding-x);
  font-size: 1rem;
  line-height: var(--line-height, 1.5);
  color: var(--input-color);
  background-color: var(--input-bg);
  background-clip: padding-box;
  border-radius: var(--input-radius);
  border: var(--input-border);
  box-shadow: var(--input-shadow);
}
.form-control-border {
  transition: border-color var(--duration-fast, 0.150s) var(--easing-in-out, ease-in-out), box-shadow var(--duration-fast, 0.150s) var(--easing-in-out, ease-in-out);
  border: 0.0625rem solid #ced4da;
  box-shadow: none;
}
.form-control:hover {
  border-color: var(--input-hover-border);
}
.form-control:disabled {
  background-color: var(--input-disabled-bg);
  opacity: var(--input-disabled-opacity);
  pointer-events: none;
}
input::placeholder, textarea::placeholder {
  color: var(--input-placeholder);
  font-size: 1rem;
  opacity: 0.6;
}
.invalid + .form-text, .invalid-message {
  color: var(--input-invalid-color);
}
select.form-control  {
  padding: 0.435rem 0.375rem;
}
.form-check-inline {
  display: inline-flex;
  align-items: center;
  padding-left: 0;
  margin-right: 0.75rem;
}
.form-check-inline .form-check-input {
  position: static;
  margin-top: 0;
  margin-right: 0.3125rem;
  margin-left: 0;
}
[type="date"] {
  display: block;
  width: 100%;
  padding: var(--input-padding-y) var(--input-padding-x);
  font-size: 1rem;
  line-height: var(--line-height, 1.5);
  color:var(--input-color);
  background-color: var(--body-bg, white);
  background-clip: padding-box;
  border-radius: 0.25rem;
  border: var(--input-border);
  box-shadow: var(--input-shadow);
  border-radius:var(--input-radius);
}
[type="date"]::-webkit-inner-spin-button {
  display: none;
}
[type="date"]::-webkit-calendar-picker-indicator {
  opacity: 0;
}
/* Rating */
.rating {
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
}
.rating>input {
  display: none;
}
.rating>label {
  position: relative;
  width: 1.1em;
  font-size: 2rem;
  color: var(--warning, #ffd700);
  cursor: pointer;
}
.rating-c-1 label {
  color: var(--color-1, grey);
}
.rating>label::before {
  content: "\2605";
  position: absolute;
  opacity: 0;
}
.rating>label:hover:before, .rating>label:hover~label:before {
  opacity: 1;
}
.rating>input:checked~label:before {
  opacity: 1;
}
.rating:hover>input:checked~label:before {
  opacity: 0.4;
}
input:focus, select:focus, textarea:focus {
  border-color: var(--input-focus-border);
  outline: none;
  box-shadow: var(--input-focus-shadow);
}
.styled-checkbox {
  width: 1.5rem;
  height: 1.5rem;
  accent-color: var(--color-1,blue);
}
.styled-checkbox2 {
  width: 1.5rem;
  height: 1.5rem;
  appearance: none;
  margin-right: 0.625rem;
  border: 0.3rem solid var(--grey,lightgray);
  display: inline-block;
  box-shadow: none !important;
}
.styled-checkbox2:focus {
    outline: none;
    box-shadow: none !important;
}
.styled-checkbox2:checked {
  border: 0.5rem solid var(--color-1,lightgray);
  text-align: center;
  line-height: var(--line-height, 1rem);
  transform-origin: bottom left;
}
.disabled {
  pointer-events: none;
  opacity: 0.5;
}
.parallax-img {
  background-attachment: fixed;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
/* Promo Boxes */
.promo-box {
  padding:calc(var(--panel-padding) * 2);
  background:var(--panel-bg);
  border:var(--panel-border);
  border-radius:var(--panel-radius);
  box-shadow:var(--panel-shadow);
}
.promo-box-s {
  padding: var(--panel-padding);
}
/* ============================================================
   Main Menu — flexbox
   MARKUP RULE (important): the toggle <input type="checkbox">
   must always be the FIRST child inside .main-menu.

   .main-nav > .main-menu > (
     input[type=checkbox]        — always first
     a.logo
     .nav-panel                  — collapses on mobile
       nav.nav > a / .dropdown   — links, no <ul>/<li>
       .nav-actions              — OPTIONAL here: put it inside
                                    .nav-panel if you want Login/
                                    Sign-up to collapse WITH the
                                    menu on mobile
     .nav-actions                — OR put it here, as a sibling of
                                    .nav-panel, if you want it to
                                    stay visible next to the
                                    burger at every breakpoint
     .toggle-menu label          — burger
   )
   ============================================================ */
.main-nav {
  width: 100%;
  position: relative;
  isolation: isolate;
  z-index: var(--z-floating, 100);  
}
.main-menu {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  width: 100%;
  gap: var(--default-gap);
  position: static;
}
.main-menu a { text-decoration: none; }
.main-menu input[type="checkbox"] { display: none; }
.main-menu > a.logo {
  order: 1;
  display: flex;
  align-items: center;
}
.nav-panel {
  order: 2;
  display: contents;
}
.nav, .nav-stable {
  order: 2;
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
  gap: var(--space-1-2);
}
.nav > a, .nav-stable > a {
  display: inline-block;
  padding: 1rem;
  white-space: nowrap;
}
.nav > select, .nav-stable > select,
.nav-group select {
  width: auto;
  flex: 0 0 auto;
}
.nav-bg-hover > a:hover {
  background-color: var(--color-1);
  color: var(--white);
}
.nav-top-border-hover > a:hover {
  border-top: 0.125rem solid var(--color-1);
  margin-top: -0.125rem;
}
.nav-bottom-border-hover > a:hover {
  border-bottom: 0.125rem solid var(--color-1);
  margin-bottom: -0.125rem;
}
.nav-actions {
  order: 3;
  display: flex;
  align-items: center;
  gap: var(--space-1-2);
  flex-shrink: 0;
}
.nav-group {
  order: 2;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 1 1 auto;
  min-width: 0;
}
.nav-group .nav, .nav-group .nav-actions {
  flex: 0 0 auto;
}
.toggle-menu {
  order: 4;
  display: none;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0.5rem;
}
.toggle-menu .icon-menu-close { display: none; }
.main-menu input[type="checkbox"]:checked ~ .toggle-menu .icon-menu-open  { display: none; }
.main-menu input[type="checkbox"]:checked ~ .toggle-menu .icon-menu-close { display: block; }
@media only screen and (max-width: 980px) {
  .toggle-menu { display: flex; }
  .nav-panel {
    display: block;
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    max-height: 0;
    opacity: 0;
    visibility: hidden;
    overflow: hidden auto;
    background-color: var(--panel-bg, var(--body-bg, #fff));
    border: var(--panel-border, 0.0625rem solid rgba(0, 0, 0, 0.08));
    border-radius: var(--panel-radius, 0.5rem);
    box-shadow: var(--panel-shadow, 0 0.5rem 1.5rem rgba(0, 0, 0, 0.16));
    transition: max-height var(--duration-base, 0.25s) var(--easing, ease),
                opacity var(--duration-base, 0.25s) var(--easing, ease);
    z-index: var(--z-floating, 100);
  }
  .main-menu input[type="checkbox"]:checked ~ .nav-panel {
    max-height: 70vh;
    opacity: 1;
    visibility: visible;
  }
  .nav-panel .nav, .nav-panel .nav-actions, .nav-panel .nav-group {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: 100%;
  }
  .nav-panel > a, .nav-panel .nav > a, .nav-panel .nav-actions > a {
    display: block;
    padding: 0.9rem 1.5rem;
    white-space: normal;
    color: var(--body-color, #111) !important;
    background-color: transparent;
    border-bottom: 0.0625rem solid var(--surface-dim, rgba(0, 0, 0, 0.08));
  }
  .nav-panel > a:last-child, .nav-panel .nav > a:last-child,
  .nav-panel .nav-actions > a:last-child {
    border-bottom: none;
  }
}
.menu-bordered li {
  border: solid 0.0625rem var(--color-1, black);
  margin: 0.75rem;
  padding: 0;
}
.menu-bordered li a {
  padding: 0.45rem;
}
.nav-mega {
  display: inline-flex;
  align-items: center;
}
.nav-mega-state {
  display: none;
}
.nav-mega-toggle {
  display: inline-block;
  padding: 1rem;
  white-space: nowrap;
  cursor: pointer;
}
.nav-mega-toggle::after {
  content: " \25BE";
  font-size: 0.75rem;
  margin-left: 0.5rem;
}
.nav-bg-hover .nav-mega-toggle:hover {
  background-color: var(--color-1);
  color: var(--white);
}
.nav-top-border-hover .nav-mega-toggle:hover {
  border-top: 0.125rem solid var(--color-1);
  margin-top: -0.125rem;
}
.nav-bottom-border-hover .nav-mega-toggle:hover {
  border-bottom: 0.125rem solid var(--color-1);
  margin-bottom: -0.125rem;
}
.nav-mega-panel {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: min(100% - 2rem, 75rem);
  max-width: 95vw;
  background-color: var(--panel-bg, var(--body-bg, #fff));
  border: var(--panel-border, 0.0625rem solid rgba(0, 0, 0, 0.08));
  border-radius: var(--panel-radius, 0.5rem);
  box-shadow: var(--panel-shadow, 0 0.5rem 1.5rem rgba(0, 0, 0, 0.16));
  padding: 2rem;
  z-index: var(--z-floating, 100);
}
.nav-mega-state:checked ~ .nav-mega-panel {
  display: block;
}
@media (min-width: 981px) {
  .nav-mega:hover .nav-mega-panel {
    display: block;
  }
}
@media only screen and (max-width: 980px) {
  .nav-panel .nav-mega {
    display: block;
    width: 100%;
  }
  .nav-panel .nav-mega-toggle {
    display: block;
    width: 100%;
    padding: 0.9rem 1.5rem;
    white-space: normal;
    color: var(--body-color, #111) !important;
    border-bottom: 0.0625rem solid var(--surface-dim, rgba(0, 0, 0, 0.08));
  }
  .nav-panel .nav-mega-toggle::after {
    float: right;
  }
  .nav-panel .nav-mega:last-child .nav-mega-toggle {
    border-bottom: none;
  }
  .nav-panel .nav-mega-panel {
    position: static;
    left: auto;
    transform: none;
    display: none;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    box-shadow: none;
    background-color: var(--surface-hover, rgba(0, 0, 0, 0.03));
  }
  .nav-panel .nav-mega-state:checked ~ .nav-mega-panel {
    display: block;
  }
  .nav-panel .nav-mega-panel .row {
    width: 100%;
    margin: 0;
    padding: 1rem 1.5rem;
  }
  .nav-panel .nav-mega-panel .menu-item a {
    padding-left: 2.5rem;
  }
}
/* Breadcrumb */
.breadcrumb {
  display: inline-flex;
  border-radius:var(--panel-radius);
}
.breadcrumb li {
  list-style: none;
  margin: 0 0.5rem;
  align-items: center;
  text-decoration: none;
}
.breadcrumb li a:hover {
  text-decoration: none;
}
.breadcrumb li a::after {
  content: " >";
  margin-left: 0.5rem;
}
.breadcrumb_back_slash li a::after {
  content: " /";
}
.breadcrumb_arrow li a::after {
  content: " ➔";
}
.custom-file-upload {
  display: inline-block;
  cursor: pointer;
  background:var(--control-color);
  color:var(--control-bg);
  border:var(--control-border);
  border-radius:var(--control-radius);
  padding:var(--control-padding);
  box-shadow:var(--control-shadow);
}
.custom-file-upload input{
  display: none;
  }
.select-link-style {
  padding: 0;
  margin: 0;
  border: none;
  border-radius: var(--control-radius);
  overflow: hidden;
  background-color: var(--body-bg, white);
  color:var(--control-color);
  display: inline;
  line-height: var(--line-height, 1.2);
}
.select-link-style select {
  padding: 0.3125rem;
  border: none;
  box-shadow: none;
  background-color: transparent;
  background-image: none;
  appearance: none;
  text-decoration: underline;
}
.select-link-style select:focus {
  outline: none;
}
.text-decoration-none-onhover:hover{
  text-decoration:none;
}
.main-nav-white a {
  color: var(--white, white)
}
.main-nav-white a:hover {
  border-bottom: 0.125rem solid white !important;
  color: var(--white, white)
}
/* Tooltip */
.tooltip {
position: relative;
display: inline-block;
border-bottom: 0.0625rem dotted black;
}
.tooltip .tooltip-body {
visibility: hidden;
width: 7.5rem;
text-align: center;
position: absolute;
z-index: 1;
background:var(--surface-inverse);
color:var(--surface-inverse-color);
border-radius:var(--panel-radius);
padding:var(--control-padding);
}
.tooltip2x {
width: 15rem !important;
}
.tooltip3x {
width: 22.5rem !important;
}
.tooltip4x {
width: 30rem !important;
}
.tooltip:hover .tooltip-body {
visibility: visible;
}
.tooltip-top {
bottom: 100%;
left: 50%;
margin-left: -3.75rem;
}
.tooltip-bottom {
top: 100%;
left: 50%;
margin-left: -3.75rem;
}
.tooltip-left {
top: -0.3125rem;
right: 105%;
}
.tooltip-right {
top: -0.3125rem;
left: 105%;
}
/* Progress Bar */
progress {
  accent-color: var(--color-1);
  appearance: none;
  border: none;
}
::-webkit-progress-bar {
  background-color: var(--grey);
}
::-webkit-progress-value {
  background-color: var(--color-1);
}
::-moz-progress-bar {
  background-color: var(--color-1);
}
}
@layer components-advanced {
/* Sidebar — checkbox toggle, no JS */
.sidebar {
  width: 16rem;
  background-color: var(--panel-bg);
  border-right: 0.0625rem solid var(--light-grey);
  padding: var(--default-padding);
  height: 100vh;
  position: fixed;
  left: 0;
  top: 0;
  overflow-y: auto;
  transition: transform var(--duration-base, 0.25s) var(--easing, ease);
  z-index: var(--z-floating, 100);
}
.sidebar-header {
  padding: var(--default-padding);
  margin-bottom: var(--default-margin);
  border-bottom: 0.0625rem solid var(--light-grey);
  font-weight: var(--heading-font-weight);
  font-size: var(--h4-size);
}
.sidebar-toggle-state { display: none; }
.sidebar-toggle-btn {
  display: none;
  cursor: pointer;
  padding: var(--control-padding);
}
.main-content { margin-left: 16rem; }
@media (max-width: 768px) {
  .sidebar { transform: translateX(-100%); padding-top: 3.5rem;}
  .sidebar-toggle-state:checked ~ .sidebar { transform: translateX(0); }
  .sidebar-toggle-btn { 
    display: inline-block;
    position: fixed;
    top: 0.5rem;
    left: 0.5rem;
    z-index: var(--z-overlay, 999);
  }
  .main-content { margin-left: 0; }
}
/* Right Sidebar — closed by default at all breakpoints, checkbox toggle, no JS */
.sidebar-right-toggle-state { display: none; }
.sidebar-right-toggle-btn {
  display: inline-block;
  cursor: pointer;
  padding: var(--control-padding);
  position: fixed;
  top: 0.5rem;
  right: 0.5rem;
  z-index: var(--z-overlay, 999);
}
.sidebar-right {
  width: 16rem;
  background-color: var(--panel-bg);
  border-left: 0.0625rem solid var(--light-grey);
  padding: var(--default-padding);
  height: 100vh;
  position: fixed;
  right: 0;
  top: 0;
  overflow-y: auto;
  transform: translateX(100%);
  transition: transform var(--duration-base, 0.250s) var(--easing, ease);
  z-index: var(--z-floating, 100);
  box-shadow: var(--panel-shadow);
}
.sidebar-right-toggle-state:checked ~ .sidebar-right {
  transform: translateX(0);
}
/* Dropdown — checkbox toggle, no JS. Menu reuses .menu / .menu-item */
.dropdown { position: relative; display: inline-block; }
.dropdown-state { display: none; }
.dropdown-toggle { cursor: pointer; }
.dropdown-toggle::after { content: " \25BE"; font-size: 0.75rem; margin-left: 0.5rem; }
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 12rem;
  background-color: var(--panel-bg);
  border: var(--panel-border);
  border-radius: var(--panel-radius);
  box-shadow: var(--panel-shadow);
  padding: 0.5rem 0;
  margin-top: 0.25rem;
  z-index: var(--z-floating, 100);
  display: none;
}
.dropdown-state:checked ~ .dropdown-menu { display: block; }
.dropdown-divider {
  height: 0;
  margin: 0.5rem 0;
  border-top: 0.0625rem solid var(--light-grey);
}
.dropdown-header {
  padding: 0.5rem 1rem;
  font-size: 0.75rem;
  font-weight: var(--heading-font-weight);
  color: var(--dark);
  text-transform: uppercase;
}
/* Menu — shared by sidebar nav AND dropdown-menu */
.menu { list-style: none; padding: 0; margin: 0; }
.menu-item { border-bottom: 0.0625rem solid var(--light-grey); }
.menu-item:last-child { border-bottom: none; }
.menu-item a, .menu-item label {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: var(--control-padding);
  color: var(--body-color);
  text-decoration: none;
  cursor: pointer;
}
.menu-item a:hover, .menu-item label:hover {
  background-color: var(--surface-hover);
  color: var(--color-1);
}
.menu-item.active a {
  background-color: var(--color-1);
  color: var(--white);
}
.menu-item-icon { width: 1.5rem; height: 1.5rem; flex-shrink: 0; }
.menu-item-badge {
  margin-left: auto;
  padding: 0.125rem 0.5rem;
  background-color: var(--color-1);
  color: var(--white);
  border-radius: 1rem;
  font-size: 0.75rem;
}
/* Pills */
.pills { display: inline-flex; gap: 0.5rem; flex-wrap: wrap; }
.pill {
  display: inline-block;
  padding: 0.375rem 1rem;
  background-color: color-mix(in srgb, var(--color-1) 10%, transparent);
  color: var(--body-color);
  border-radius: 1.5rem;
  font-size: 0.875rem;
  text-decoration: none;
  cursor: pointer;
  border: 0.0625rem solid transparent;
}
.pill:hover { background-color: var(--surface-hover); border-color: var(--color-1); }
.pill.active, .pill-color-1 { background-color: var(--color-1); color: var(--white); }
.pill-success { background-color: var(--success); color: var(--white); }
.pill-info    { background-color: var(--info); color: var(--white); }
.pill-warning { background-color: var(--warning); color: var(--white); }
.pill-danger  { background-color: var(--danger); color: var(--white); }
/* Chips */
.chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.75rem;
  background-color: color-mix(in srgb, var(--color-1) 7%, transparent);
  border-radius: 1rem;
  font-size: 0.875rem;
  margin: 0.25rem;
}
.chip-image { width: 1.5rem; height: 1.5rem; border-radius: 50%; object-fit: cover; }
.chip-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 50%;
  background-color: var(--grey);
  color: var(--body-color);
  cursor: pointer;
  border: none;
  font-size: 0.75rem;
  line-height: 1;
}
.chip-close:hover { background-color: var(--danger); color: var(--white); }
.chip-color-1 { background-color: var(--color-1); color: var(--white); }
.chip-color-1 .chip-close {
  background-color: color-mix(in srgb, var(--white) 30%, transparent);
  color: var(--white);
}
.chip-color-1 .chip-close:hover {
  background-color: color-mix(in srgb, var(--white) 50%, transparent);
}
/* Footer (component) */
.footer {
  background-color: var(--light-grey);
  padding: var(--default-padding) 0;
  border-top: 0.0625rem solid var(--grey);
}
.footer-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--default-gap);
}
.footer-links {
  display: flex;
  gap: 1rem;
  list-style: none;
  padding: 0;
  margin: 0;
}
.footer-links a { color: var(--body-color); text-decoration: none; }
.footer-links a:hover { color: var(--color-1); }
/*Carousel*/
.carousel-fixed {
  position: relative;
  overflow: hidden;
}
.carousel-fixed input[type="radio"] {
  display: none;
}
.carousel-fixed .slides {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  transition: transform var(--duration-slow, 0.4s) var(--easing, ease);
  transform: translateX(calc(var(--active-slide, 0) * -100%));
}
.carousel-fixed .slides > li {
  flex: 0 0 100%;
  min-width: 100%;
  position: relative;
}
.carousel-fixed .slidesNavigation {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  position: absolute;
  bottom: 1rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: var(--z-floating, 100);
}
.carousel-fixed .slidesNavigation label {
  display: block;
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 50%;
  border: solid 0.0625rem var(--dark);
  cursor: pointer;
}
.carousel-fixed input:nth-of-type(1):checked  ~ .slides { --active-slide: 0; }
.carousel-fixed input:nth-of-type(2):checked  ~ .slides { --active-slide: 1; }
.carousel-fixed input:nth-of-type(3):checked  ~ .slides { --active-slide: 2; }
.carousel-fixed input:nth-of-type(4):checked  ~ .slides { --active-slide: 3; }
.carousel-fixed input:nth-of-type(5):checked  ~ .slides { --active-slide: 4; }
.carousel-fixed input:nth-of-type(6):checked  ~ .slides { --active-slide: 5; }
.carousel-fixed input:nth-of-type(1):checked  ~ .slidesNavigation label:nth-of-type(1),
.carousel-fixed input:nth-of-type(2):checked  ~ .slidesNavigation label:nth-of-type(2),
.carousel-fixed input:nth-of-type(3):checked  ~ .slidesNavigation label:nth-of-type(3),
.carousel-fixed input:nth-of-type(4):checked  ~ .slidesNavigation label:nth-of-type(4),
.carousel-fixed input:nth-of-type(5):checked  ~ .slidesNavigation label:nth-of-type(5),
.carousel-fixed input:nth-of-type(6):checked  ~ .slidesNavigation label:nth-of-type(6) {
  background: var(--color-1, black);
}
.slidesNavigation-flex {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.slidesNavigation-flex label {
  display: block;
  cursor: pointer;
}
.carousel-fixed input:nth-of-type(1):checked ~ .slidesNavigation-flex label:nth-of-type(1) > div,
.carousel-fixed input:nth-of-type(2):checked ~ .slidesNavigation-flex label:nth-of-type(2) > div,
.carousel-fixed input:nth-of-type(3):checked ~ .slidesNavigation-flex label:nth-of-type(3) > div,
.carousel-fixed input:nth-of-type(4):checked ~ .slidesNavigation-flex label:nth-of-type(4) > div,
.carousel-fixed input:nth-of-type(5):checked ~ .slidesNavigation-flex label:nth-of-type(5) > div,
.carousel-fixed input:nth-of-type(6):checked ~ .slidesNavigation-flex label:nth-of-type(6) > div {
  outline: 0.125rem solid var(--color-1, black);
  outline-offset: 0.125rem;
}
.carousel-crossfade .slides {
  display: grid;
  transform: none;
}
.carousel-crossfade .slides > li {
  grid-area: 1 / 1;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity var(--duration-slow, 0.4s) var(--easing, ease);
}
.carousel-crossfade input:nth-of-type(1):checked  ~ .slides li:nth-of-type(1),
.carousel-crossfade input:nth-of-type(2):checked  ~ .slides li:nth-of-type(2),
.carousel-crossfade input:nth-of-type(3):checked  ~ .slides li:nth-of-type(3),
.carousel-crossfade input:nth-of-type(4):checked  ~ .slides li:nth-of-type(4),
.carousel-crossfade input:nth-of-type(5):checked  ~ .slides li:nth-of-type(5),
.carousel-crossfade input:nth-of-type(6):checked  ~ .slides li:nth-of-type(6) {
  opacity: 1;
  z-index: 1;
}
.zoom.carousel-crossfade .slide-media {
  animation: carousel-kenburns 6s ease-in-out infinite alternate;
  animation-play-state: paused;
}
@keyframes carousel-kenburns {
  from { transform: scale(1); }
  to   { transform: scale(1.08); }
}
.zoom.carousel-crossfade input:nth-of-type(1):checked  ~ .slides li:nth-of-type(1)  .slide-media,
.zoom.carousel-crossfade input:nth-of-type(2):checked  ~ .slides li:nth-of-type(2)  .slide-media,
.zoom.carousel-crossfade input:nth-of-type(3):checked  ~ .slides li:nth-of-type(3)  .slide-media,
.zoom.carousel-crossfade input:nth-of-type(4):checked  ~ .slides li:nth-of-type(4)  .slide-media,
.zoom.carousel-crossfade input:nth-of-type(5):checked  ~ .slides li:nth-of-type(5)  .slide-media,
.zoom.carousel-crossfade input:nth-of-type(6):checked  ~ .slides li:nth-of-type(6)  .slide-media {
  animation-play-state: running;
}
.carousel-fixed .slide-prev,
.carousel-fixed .slide-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: var(--z-floating, 100);
  cursor: pointer;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--surface-overlay);
  color: var(--white);
}
.carousel-fixed .slide-prev { left: 1rem; }
.carousel-fixed .slide-next { right: 1rem; }
.carousel-fixed .slide-prev:hover,
.carousel-fixed .slide-next:hover {
  background: var(--color-1, black);
}
.carousel-fixed .slide-cta {
  cursor: pointer;
}
.carousel-autoplay {
  position: relative;
  overflow: hidden;
}
.carousel-autoplay .slides {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  animation-timing-function: var(--easing-in-out, ease-in-out);
  animation-iteration-count: infinite;
  animation-play-state: running;
}
.carousel-autoplay .slides > li {
  flex: 0 0 100%;
  min-width: 100%;
}
.carousel-autoplay:hover .slides,
.carousel-autoplay:focus-within .slides {
  animation-play-state: paused;
}
.carousel-autoplay.slides-4 .slides {
  animation-name: carousel-autoplay-4;
  animation-duration: 16s;
}
@keyframes carousel-autoplay-4 {
  0%,   22% { transform: translateX(0%); }
  25%,  47% { transform: translateX(-100%); }
  50%,  72% { transform: translateX(-200%); }
  75%,  97% { transform: translateX(-300%); }
  100%      { transform: translateX(-300%); }
}
.carousel-autoplay.slides-6 .slides {
  animation-name: carousel-autoplay-6;
  animation-duration: 24s;
}
@keyframes carousel-autoplay-6 {
  0%,    14.6% { transform: translateX(0%); }
  16.6%, 31.3% { transform: translateX(-100%); }
  33.3%, 47.9% { transform: translateX(-200%); }
  50%,   64.6% { transform: translateX(-300%); }
  66.6%, 81.3% { transform: translateX(-400%); }
  83.3%, 97.9% { transform: translateX(-500%); }
  100%         { transform: translateX(-500%); }
}
.carousel-autoplay-linked {
  position: relative;
  overflow: hidden;
}
.carousel-autoplay-linked input[type="radio"] {
  display: none;
}
.carousel-autoplay-linked .slides {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
  animation-name: carousel-autoplay-4;
  animation-duration: 16s;
  animation-timing-function: var(--easing-in-out, ease-in-out);
  animation-iteration-count: infinite;
  animation-play-state: running;
}
.carousel-autoplay-linked .slides > li {
  flex: 0 0 100%;
  min-width: 100%;
}
.carousel-autoplay-linked:hover .slides,
.carousel-autoplay-linked:hover .slidesNavigation label,
.carousel-autoplay-linked:focus-within .slides,
.carousel-autoplay-linked:focus-within .slidesNavigation label {
  animation-play-state: paused;
}
@keyframes carousel-autoplay-4 {
  0%,   22% { transform: translateX(0%); }
  25%,  47% { transform: translateX(-100%); }
  50%,  72% { transform: translateX(-200%); }
  75%,  97% { transform: translateX(-300%); }
  100%      { transform: translateX(-300%); }
}
@keyframes carousel-resume-4-1 { /* start at slide 2 */
  0%,   22% { transform: translateX(-100%); }
  25%,  47% { transform: translateX(-200%); }
  50%,  72% { transform: translateX(-300%); }
  75%,  97% { transform: translateX(0%); }
  100%      { transform: translateX(0%); }
}
@keyframes carousel-resume-4-2 { /* start at slide 3 */
  0%,   22% { transform: translateX(-200%); }
  25%,  47% { transform: translateX(-300%); }
  50%,  72% { transform: translateX(0%); }
  75%,  97% { transform: translateX(-100%); }
  100%      { transform: translateX(-100%); }
}
@keyframes carousel-resume-4-3 { /* start at slide 4 */
  0%,   22% { transform: translateX(-300%); }
  25%,  47% { transform: translateX(0%); }
  50%,  72% { transform: translateX(-100%); }
  75%,  97% { transform: translateX(-200%); }
  100%      { transform: translateX(-200%); }
}
.carousel-autoplay-linked input:nth-of-type(1):checked ~ .slides { animation-name: carousel-autoplay-4; }
.carousel-autoplay-linked input:nth-of-type(2):checked ~ .slides { animation-name: carousel-resume-4-1; }
.carousel-autoplay-linked input:nth-of-type(3):checked ~ .slides { animation-name: carousel-resume-4-2; }
.carousel-autoplay-linked input:nth-of-type(4):checked ~ .slides { animation-name: carousel-resume-4-3; }
.carousel-autoplay-linked .slidesNavigation {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  position: absolute;
  bottom: 1rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: var(--z-floating, 100);
}
.carousel-autoplay-linked .slidesNavigation label {
  display: block;
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 50%;
  border: solid 0.0625rem var(--dark);
  cursor: pointer;
  animation-duration: 16s;
  animation-iteration-count: infinite;
  animation-timing-function: linear;
}
@keyframes carousel-dot-phase-0 {
  0%,   22%  { background: var(--color-1, black); }
  25%,  100% { background: transparent; }
}
@keyframes carousel-dot-phase-1 {
  0%,   22%  { background: transparent; }
  25%,  47%  { background: var(--color-1, black); }
  50%,  100% { background: transparent; }
}
@keyframes carousel-dot-phase-2 {
  0%,   47%  { background: transparent; }
  50%,  72%  { background: var(--color-1, black); }
  75%,  100% { background: transparent; }
}
@keyframes carousel-dot-phase-3 {
  0%,   72%  { background: transparent; }
  75%,  97%  { background: var(--color-1, black); }
  100%       { background: transparent; }
}
.carousel-autoplay-linked .slidesNavigation label:nth-of-type(1) { animation-name: carousel-dot-phase-0; }
.carousel-autoplay-linked .slidesNavigation label:nth-of-type(2) { animation-name: carousel-dot-phase-1; }
.carousel-autoplay-linked .slidesNavigation label:nth-of-type(3) { animation-name: carousel-dot-phase-2; }
.carousel-autoplay-linked .slidesNavigation label:nth-of-type(4) { animation-name: carousel-dot-phase-3; }
.carousel-autoplay-linked input:nth-of-type(1):checked ~ .slidesNavigation label:nth-of-type(1) { animation-name: carousel-dot-phase-0; }
.carousel-autoplay-linked input:nth-of-type(1):checked ~ .slidesNavigation label:nth-of-type(2) { animation-name: carousel-dot-phase-1; }
.carousel-autoplay-linked input:nth-of-type(1):checked ~ .slidesNavigation label:nth-of-type(3) { animation-name: carousel-dot-phase-2; }
.carousel-autoplay-linked input:nth-of-type(1):checked ~ .slidesNavigation label:nth-of-type(4) { animation-name: carousel-dot-phase-3; }
.carousel-autoplay-linked input:nth-of-type(2):checked ~ .slidesNavigation label:nth-of-type(1) { animation-name: carousel-dot-phase-3; }
.carousel-autoplay-linked input:nth-of-type(2):checked ~ .slidesNavigation label:nth-of-type(2) { animation-name: carousel-dot-phase-0; }
.carousel-autoplay-linked input:nth-of-type(2):checked ~ .slidesNavigation label:nth-of-type(3) { animation-name: carousel-dot-phase-1; }
.carousel-autoplay-linked input:nth-of-type(2):checked ~ .slidesNavigation label:nth-of-type(4) { animation-name: carousel-dot-phase-2; }
.carousel-autoplay-linked input:nth-of-type(3):checked ~ .slidesNavigation label:nth-of-type(1) { animation-name: carousel-dot-phase-2; }
.carousel-autoplay-linked input:nth-of-type(3):checked ~ .slidesNavigation label:nth-of-type(2) { animation-name: carousel-dot-phase-3; }
.carousel-autoplay-linked input:nth-of-type(3):checked ~ .slidesNavigation label:nth-of-type(3) { animation-name: carousel-dot-phase-0; }
.carousel-autoplay-linked input:nth-of-type(3):checked ~ .slidesNavigation label:nth-of-type(4) { animation-name: carousel-dot-phase-1; }
.carousel-autoplay-linked input:nth-of-type(4):checked ~ .slidesNavigation label:nth-of-type(1) { animation-name: carousel-dot-phase-1; }
.carousel-autoplay-linked input:nth-of-type(4):checked ~ .slidesNavigation label:nth-of-type(2) { animation-name: carousel-dot-phase-2; }
.carousel-autoplay-linked input:nth-of-type(4):checked ~ .slidesNavigation label:nth-of-type(3) { animation-name: carousel-dot-phase-3; }
.carousel-autoplay-linked input:nth-of-type(4):checked ~ .slidesNavigation label:nth-of-type(4) { animation-name: carousel-dot-phase-0; }
/* Gallery Box*/
.gallery-box {
  background:var(--panel-bg);
  border:var(--panel-border);
  border-radius:var(--panel-radius);
  box-shadow:var(--panel-shadow);
  padding:var(--panel-padding);
}
.gallery-box img {
  max-width: 100%;
  height: auto;
}
.key-features ul, .features ul, .testimonials ul, .team ul, .portfolio ul, .gallery-box ul, .list-style-none {
  list-style: none;
  padding: 0;
}
.gallery-box-photo-container .gallery-box-thumbnail-image>img {
  width: 5rem;
}
.gallery-box-photo-container img {
  max-width: 100%;
  margin: 0.2rem;
}
.gallery-box-main-image {
  position: absolute;
  visibility: hidden;
  top: 1rem;
  left: 1rem;
  margin-right: 0.5rem;
}
.gallery-box-photo-container {
  padding: 0.625rem;
  margin-bottom: 1rem;
}
.gallery-box-thumbnail-image {
  display: inline-block;
  margin: 0.325rem;
}
/* Light Box */
.light-box-overlay {
  display: flex;
  visibility: hidden;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: var(--z-overlay, 999);
  justify-content: center;
  align-items: center;
  background-color: rgba(0, 0, 0, 0.9);
}
.light-box-overlay:target, .light-box-overlay.is-active {
  visibility: visible;
}
.light-box-content {
  max-height: 100%;
  overflow: auto;
}
:target>.light-box-content, .is-active>.light-box-content {
  animation: var(--duration-slow, 0.250s) var(--easing-in-out, ease-in-out) 0.2s both;
  animation-name: inherit;
}
.light-box-html {
  padding: 2em;
  max-width: 42em;
  background-color: var(--panel-bg, white);
}
.light-box-figure {
  display: none;
  margin: 1.5em;
}
:target>.light-box-figure, .is-active>.light-box-figure {
  display: block;
}
.light-box-figure img { display: block; height: 0; }
.light-box-figcaption { color: var(--white, white) }
.light-box-image { max-width: 100%; background-size: 100%; }
.light-box-control {
  position: absolute;
  width: 3em;
  height: 3em;
  background-position: center center;
  background-size: cover;
  text-indent: -999em;
}
.light-box-close {
  top: 1em;
  right: 1em;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20viewBox%3D%220%200%2032%2032%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M21.7%2010.3c-0.4-0.4-1-0.4-1.4%200l-4.3%204.3-4.2-4.2c-0.4-0.4-1-0.4-1.4%200-0.4%200.4-0.4%201%200%201.4l4.2%204.2-4.3%204.3c-0.4%200.4-0.4%201%200%201.4%200.4%200.4%201%200.4%201.4%200l4.3-4.3%204.2%204.2c0.4%200.4%201%200.4%201.4%200%200.4-0.4%200.4-1%200-1.4l-4.2-4.2%204.3-4.3C22.1%2011.3%2022.1%2010.7%2021.7%2010.3zM16%200C7.2%200%200%207.2%200%2016s7.2%2016%2016%2016c8.8%200%2016-7.2%2016-16S24.8%200%2016%200zM16%2030C8.3%2030%202%2023.7%202%2016S8.3%202%2016%202s14%206.3%2014%2014S23.7%2030%2016%2030z%22%2F%3E%3C%2Fsvg%3E");
}
.light-box-prev { left: 2em; transform: rotate(180deg); }
.light-box-next { right: 2em; }
.light-box-untarget { position: fixed; top: 0; }
.light-box-prev, .light-box-next {
  top: 50%;
  margin-top: -1.5em;
  opacity: 0.2;
  transition: opacity 0.2s;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20x%3D%220%22%20y%3D%220%22%20width%3D%2244.1%22%20height%3D%2294.7%22%20viewBox%3D%220%200%2044.1%2094.7%22%20enable-background%3D%22new%200%200%2044.088%2094.67%22%20xml%3Aspace%3D%22preserve%22%3E%3Cpath%20fill%3D%22%23fff%22%20d%3D%22M44.1%2047.3L1.5%2094.7%200%2093.3l41.4-46L0%201.3%201.5%200%2044.1%2047.3z%22%2F%3E%3C%2Fsvg%3E");
}
.light-box-prev:hover, .light-box-prev:focus, .light-box-next:hover, .light-box-next:focus {
  opacity: 1;
}
.light-box img {
  margin: 0.125rem;
}
/*Flexbox Image Gallery */
.flex-gallery-container {
  width: 100%;
  margin: 0;
  display: flex;
  flex-flow: row wrap;
}
.flex-gallery-image-container {
  margin: 0.1875rem;
  height: 20rem;
  flex: 1 1 auto;
}
.flex-gallery-image-container img {
  display: block;
  height: 100%;
  min-width: 100%;
  max-width: 24rem;
  object-fit: cover;
}
@media (max-width: 800px) {
  .flex-gallery-image-container img {
    max-width: 20rem;
  }
}
@media (max-width: 650px) {
  .flex-gallery-container {
    width: 100%;
    margin: 0;
  }
  .flex-gallery-image-container {
    width: 100%;
    max-height: 40vh;
    margin: 0.1875rem 0;
  }
}
/* Masonry Grid */
.masonry-container {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(310px, 1fr));
  grid-auto-rows: 3.125rem;
  grid-auto-flow: row dense;
  grid-gap: 0.0625rem;
}
.masonry-container-2col {
  grid-template-columns: repeat(auto-fit, minmax(500px, 1fr));
  grid-auto-rows: auto;
}
.masonry-container-1col {
  grid-template-columns: repeat(auto-fit, minmax(1200px, 1fr));
  grid-auto-rows: auto;
}
.masonry-large, .masonry-medium, .masonry-small {
  display: flex;
  height: 100%;
  width: 100%;
  grid-column: auto / span 1;
}
.masonry-large {  grid-row: auto / span 7;}
.masonry-medium {  grid-row: auto / span 6;}
.masonry-small {  grid-row: auto / span 5;}
.masonry-gallery-img img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
  object-fit: cover;
}
/* Tabs */
.tabs {
  display: flex;
  flex-wrap: wrap;
}
.tabs label {
  order: 1;
  display: block;
}
.tabs .tab {
  order: 99;
  flex-grow: 1;
  width: 100%;
  display: none;
  background: var(--panel-bg);
  border: var(--panel-border);
  border-radius: var(--panel-radius);
  padding: var(--panel-padding);
  box-shadow: var(--panel-shadow);
}
.tabs input[type="radio"] {
  display: none;
}
.tabs input[type="radio"]:checked+label {
  background: var(--surface-selected);
  color: var(--control-hover-color);
  border: var(--control-hover-border);
}
.tabs input[type="radio"]:checked+label+.tab {
  display: block;
}
.tabs-underline {
  --control-bg: transparent;
  --control-color: var(--dark);
  --control-border: none;
  --control-shadow: none;
  --control-radius: 0;
  --control-margin: 0;
  --control-padding: 0.6rem 1.2rem;
  border-bottom: 0.125rem solid var(--grey);
}
.tabs-underline > label {
  margin-bottom: -0.125rem;
}
.tabs-underline input[type="radio"]:checked + label {
  background: transparent;
  color: var(--color-1);
  border: none;
  border-bottom: 0.2rem solid var(--color-1);
  font-weight: 600;
}
.tabs-underline .tab {
  background: transparent;
  border: none;
  box-shadow: none;
  border-radius: 0;
  padding: 1.2rem 0.25rem;
}
.tabs-boxed {
  --control-bg: transparent;
  --control-color: var(--dark);
  --control-border: 0.0625rem solid transparent;
  --control-shadow: none;
  --control-radius: 0.25rem 0.25rem 0 0;
  --control-margin: 0 0 -0.0625rem 0;
  --control-padding: 0.55rem 1.1rem;
}
.tabs-boxed input[type="radio"]:checked + label {
  background: var(--body-bg);
  color: var(--color-1);
  border: 0.0625rem solid var(--grey);
  border-bottom-color: var(--body-bg);
  font-weight: 600;
}
.tabs-boxed .tab {
  border: 0.0625rem solid var(--grey);
  border-radius: 0 0.25rem 0.25rem 0.25rem;
  background: var(--body-bg);
  box-shadow: none;
  padding: 1.2rem;
}
@media (max-width: 45em) {
  .tabs .tab, .tabs label {
    order: initial;
  }
  .tabs label {
    width: 100%;
    margin-right: 0.2rem;
    margin-top: 0.2rem;
  }
}
/* Accordion */
.accordion {
  width: 100%;
  margin: auto;
}
.accordion input[type="radio"] { display: none; }
.accordion input[type="radio"]~.accordion-content { display: none; }
.accordion input[type="radio"]:checked~.accordion-content { display: block; }
.accordion-block {
  margin-bottom: 0.3125rem;
  clear: both;
}
.accordion-label {
  width: 100%;
  cursor: pointer;
}
.accordion-content {
  animation: 1s fadeInAccordion;
  animation-fill-mode: forwards;
  visibility: hidden;
  background: var(--panel-bg);
  border: var(--panel-border);
  border-radius: var(--panel-radius);
  padding: var(--panel-padding);
  box-shadow: var(--panel-shadow);
}
.accordion input[type="radio"]:checked ~ .accordion-label {
  background-color: var(--surface-selected);
  color: var(--body-color, black);
  font-weight: 600;
}
.accordion-closable input[type="checkbox"] { display: none; }
.accordion-closable input[type="checkbox"] ~ .accordion-content { display: none; }
.accordion-closable input[type="checkbox"]:checked ~ .accordion-content { display: block; }
.accordion-closable input[type="checkbox"]:checked ~ .accordion-label {
  background-color: var(--surface-selected);
  color: var(--body-color, black);
  font-weight: 600;
}
.accordion-chevron {
  transition: transform var(--duration-base) var(--easing);
  flex-shrink: 0;
}
.accordion input:checked ~ .accordion-label .accordion-chevron {
  transform: rotate(180deg);
}
.accordion-underline .accordion-block {
  margin-bottom: 0;
}
.accordion-underline .accordion-label {
  background: transparent;
  border-radius: 0;
  color: var(--body-color);
  box-shadow: inset 0 -0.125rem 0 var(--light-grey);
  transition: box-shadow var(--duration-base) var(--easing);
}
.accordion-underline .accordion-content {
  background: transparent;
  box-shadow: none;
  border-radius: 0;
}
.accordion-underline input:checked ~ .accordion-label {
  box-shadow: inset 0 -0.25rem 0 var(--color-1);
}
.accordion-label.bg-white {
  color: var(--body-color);
}
@keyframes fadeInAccordion {
  0% {
    opacity: 0;
  }
  100% {
    visibility: visible;
    opacity: 1;
  }
}
  .tabs-vertical {
    display: flex;
    align-items: flex-start;
  }
  .tabs-vertical input[type="radio"] {
    display: none;
  }
  .tabs-vertical-nav {
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
  }
  .tabs-vertical-nav label {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    cursor: pointer;
    white-space: nowrap;
    border-radius: var(--control-radius);
  }
  .tabs-vertical-nav label:hover {
    background: var(--surface-hover);
  }
  .tabs-vertical-content {
    flex: 1 1 0%;
    min-width: 0;
  }
  .tabs-vertical-content .tab-panel {
    display: none;
  }
  .tabs-vertical:has(#v-tab1:checked) #v-panel1,
  .tabs-vertical:has(#v-tab2:checked) #v-panel2,
  .tabs-vertical:has(#v-tab3:checked) #v-panel3,
  .tabs-vertical:has(#v-tab4:checked) #v-panel4,
  .tabs-vertical:has(#v-tab5:checked) #v-panel5,
  .tabs-vertical:has(#v-tab6:checked) #v-panel6 {
    display: block;
  }
  .tabs-vertical:has(#v-tab1:checked) label[for="v-tab1"],
  .tabs-vertical:has(#v-tab2:checked) label[for="v-tab2"],
  .tabs-vertical:has(#v-tab3:checked) label[for="v-tab3"],
  .tabs-vertical:has(#v-tab4:checked) label[for="v-tab4"],
  .tabs-vertical:has(#v-tab5:checked) label[for="v-tab5"],
  .tabs-vertical:has(#v-tab6:checked) label[for="v-tab6"] {
    background: var(--surface-selected);
    color: var(--body-color);
    font-weight: 600;
  }
  @media (max-width: 45em) {
    .tabs-vertical {
      flex-direction: column;
    }
    .tabs-vertical-nav {
      flex-direction: row;
      flex-wrap: wrap;
      width: 100%;
    }
  }
/* Modal */
.modal {
  opacity: 0;
  visibility: hidden;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  text-align: left;
  background: var(--surface-overlay);
  transition: opacity var(--duration-base, 0.25s) var(--easing, ease);
  z-index: var(--z-modal, 1000);
}
.modal__bg {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  cursor: pointer;
}
.modal-state { display: none; }
.modal-state:checked+.modal { opacity: 1; visibility: visible; }
.modal-state:checked+.modal .modal__inner { top: 0; }
.modal__inner {
  transition: top var(--duration-base, 0.25s) var(--easing, ease);
  position: absolute;
  top: -20%;
  right: 0;
  bottom: 0;
  left: 0;
  width: 50%;
  margin: auto;
  overflow: auto;
  background: var(--panel-bg);
  border-radius: var(--panel-radius);
  padding: var(--panel-padding);
  border: var(--panel-border);
  box-shadow: var(--panel-shadow);
  height: 50vh;
}
.modal__close {
  position: absolute;
  right: 1em;
  top: 1em;
  width: 1.1em;
  height: 1.1em;
  cursor: pointer;
}
.modal__close:after, .modal__close:before {
  content: "";
  position: absolute;
  width: 0.125rem;
  height: 1.5em;
  background: var(--dark, #ccc);
  display: block;
  transform: rotate(45deg);
  left: 50%;
  margin: -0.1875rem 0 0 -0.0625rem;
  top: 0;
}
.modal__close:hover:after, .modal__close:hover:before {
  background: #aaa;
}
.modal__close:before {
  transform: rotate(-45deg);
}
@media screen and (max-width: 768px) {
  .modal__inner {
    width: 90%;
    height: 90%;
    box-sizing: border-box;
  }
}
/* Notification */
.notification-panel{
  z-index: var(--z-floating, 100);
  position: fixed;
  top:5rem;
  right: 1rem;
  display: none;
  width: 22rem;
  background:var(--panel-bg);
  border:var(--panel-border);
  border-radius:var(--panel-radius);
  box-shadow:var(--panel-shadow);
  padding:var(--panel-padding);
}
/* Resize */
.resize-grip {
  top: 0;
  right: 0;
  bottom: 0;
  width: 0.45rem;
  position: absolute;
  cursor: col-resize;
}
.resize-grip:hover {
  background-color: color-mix(in srgb, var(--info, blue) 10%, transparent);
}
/* Bento Grid */
.bento {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: minmax(10rem, auto);
  gap: var(--default-gap);
}
.bento-1x1 { grid-column: span 1; grid-row: span 1; }
.bento-2x1 { grid-column: span 2; grid-row: span 1; }
.bento-1x2 { grid-column: span 1; grid-row: span 2; }
.bento-2x2 { grid-column: span 2; grid-row: span 2; }
.bento-3x1 { grid-column: span 3; grid-row: span 1; }
.bento-3x2 { grid-column: span 3; grid-row: span 2; }
.bento-4x1 { grid-column: span 4; grid-row: span 1; }
.bento-item {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background: var(--panel-bg);
  border: var(--panel-border);
  border-radius: var(--panel-radius);
  box-shadow: var(--panel-shadow);
  padding: var(--panel-padding);
}
@media (max-width: 768px) {
  .bento { grid-template-columns: repeat(2, 1fr); }
  .bento-3x1, .bento-4x1, .bento-3x2 { grid-column: span 2; }
}
/* Stepper */
.stepper { display: flex; list-style: none; padding: 0; margin: 0; width: 100%; }
.stepper-step { flex: 1; position: relative; text-align: center; }
.stepper-step::after {
  content: "";
  position: absolute;
  top: 1rem;
  left: 50%;
  width: 100%;
  height: 0.125rem;
  background: var(--light-grey);
  z-index: 0;
}
.stepper-step:last-child::after { display: none; }
.stepper-step.is-complete::after { background: var(--color-1); }
.stepper-circle {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--surface-dim);
  color: var(--dark);
  font-weight: 600;
  border: 0.125rem solid var(--light-grey);
}
.stepper-step.is-active .stepper-circle,
.stepper-step.is-complete .stepper-circle {
  background: var(--color-1);
  color: var(--white);
  border-color: var(--color-1);
}
.stepper-label { display: block; margin-top: 0.5rem; font-size: 0.85rem; color: var(--dark); }
.stepper-step.is-active .stepper-label { color: var(--heading-color); font-weight: 600; }
.stepper-vertical { display: flex; flex-direction: column; }
.stepper-vertical .stepper-step { flex: none; text-align: left; padding-left: 2.75rem; padding-bottom: var(--space-2); }
.stepper-vertical .stepper-step::after { top: 2rem; left: 1rem; width: 0.125rem; height: 100%; }
.stepper-vertical .stepper-circle { position: absolute; left: 0; top: 0; }
.stepper-vertical .stepper-label { margin-top: 0; }
/* File Tree */
.file-tree, .file-tree ul { list-style: none; margin: 0; padding: 0; }
.file-tree ul { padding-left: 1.25rem; }
.file-tree-toggle { display: none; }
.file-tree-folder {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.3rem 0.4rem;
  border-radius: var(--control-radius);
  cursor: pointer;
}
.file-tree-folder:hover { background: var(--surface-hover); }
.file-tree-file {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.3rem 0.4rem;
  border-radius: var(--control-radius);
}
.file-tree-file:hover { background: var(--surface-hover); }
.file-tree-chevron {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  transition: transform var(--duration-fast, 0.15s) var(--easing, ease);
}
.file-tree-toggle:checked + .file-tree-folder .file-tree-chevron { transform: rotate(90deg); }
.file-tree-children { display: none; }
.file-tree-toggle:checked ~ .file-tree-children { display: block; }
/* Empty State */
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-1-2);
  padding: var(--space-4) var(--space-2);
  color: var(--dark);
}
.empty-state-icon { width: 4rem; height: 4rem; fill: var(--grey); }
.empty-state-title { color: var(--heading-color); font-weight: var(--heading-font-weight); font-size: var(--h4-size); }
.empty-state-actions { display: flex; gap: var(--space-1-2); margin-top: var(--space-1-2); }
/* Skeleton Loader */
.skeleton {
  display: block;
  background: linear-gradient(90deg, var(--surface-dim) 25%, var(--surface-hover) 50%, var(--surface-dim) 75%);
  background-size: 200% 100%;
  border-radius: var(--panel-radius);
  animation: skeleton-shimmer 1.4s ease-in-out infinite;
}
.skeleton-text { height: 0.9em; border-radius: 0.25rem; margin-bottom: 0.5em; }
.skeleton-text-sm { width: 40%; }
.skeleton-text-md { width: 65%; }
.skeleton-text-lg { width: 90%; }
.skeleton-avatar { width: 3rem; height: 3rem; border-radius: 50%; }
.skeleton-thumb { width: 100%; aspect-ratio: 16 / 9; }
.skeleton-button { width: 6rem; height: 2.25rem; border-radius: var(--control-radius); }
@keyframes skeleton-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
/* Drawer / Off-canvas */
.drawer-state { display: none; }
.drawer-backdrop {
  position: fixed;
  inset: 0;
  display: block;
  background: var(--surface-overlay);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--duration-base, 0.25s) var(--easing, ease);
  z-index: var(--z-modal, 1000);
}
.drawer-state:checked ~ .drawer-backdrop { opacity: 1; visibility: visible; }
.drawer {
  position: fixed;
  top: 0;
  bottom: 0;
  width: 20rem;
  max-width: 90vw;
  background: var(--panel-bg);
  border: var(--panel-border);
  box-shadow: var(--panel-shadow);
  padding: var(--panel-padding);
  z-index: var(--z-modal, 1000);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  transition: transform var(--duration-base, 0.25s) var(--easing, ease);
}
.drawer-left { left: 0; transform: translateX(-100%); }
.drawer-right { right: 0; transform: translateX(100%); }
.drawer-bottom {
  left: 0; right: 0; top: auto; bottom: 0;
  width: auto; max-width: none; max-height: 80vh;
  transform: translateY(100%);
}
.drawer-state:checked ~ .drawer-left,
.drawer-state:checked ~ .drawer-right { transform: translate(0); }
.drawer-state:checked ~ .drawer-bottom { transform: translateY(0); }
.drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: var(--space-1-2);
  border-bottom: 0.0625rem solid var(--light-grey);
}
.drawer-close { cursor: pointer; flex-shrink: 0; }
.drawer-body { flex: 1; overflow-y: auto; }
.drawer-footer {
  padding-top: var(--space-1-2);
  border-top: 0.0625rem solid var(--light-grey);
}
}
@layer utilities {
/* Surface utilities */
.bg-surface-raised, .bg-surface-raised-hover:hover {
  background-color: var(--surface-raised, #fff);
}
.bg-surface-dim, .bg-surface-dim-hover:hover {
  background-color: var(--surface-dim, #f6f6f6);
}
.bg-surface-overlay {
  background-color: var(--surface-overlay);
}
.bg-surface-inverse {
  background-color: var(--surface-inverse, #000);
  color: var(--surface-inverse-color, #fff);
}
/* state surfaces — static utilities, not hover-triggered pairs (see note above) */
.bg-surface-hover    { background-color: var(--surface-hover); }
.bg-surface-active   { background-color: var(--surface-active); }
.bg-surface-selected { background-color: var(--surface-selected); }
.bg-surface-disabled { background-color: var(--surface-disabled); }
/* Panel utilities */
.bg-panel     { background-color: var(--panel-bg); }
.border-panel { border: var(--panel-border); }
.rounded-panel{ border-radius: var(--panel-radius); }
.shadow-panel { box-shadow: var(--panel-shadow); }
.p-panel      { padding: var(--panel-padding); }
/* Control utilities */
.bg-control, .bg-control-hover:hover {
  background-color: var(--control-bg, var(--color-1));
}
.color-control  { color: var(--control-color, #fff); }
.rounded-control{ border-radius: var(--control-radius); }
.shadow-control { box-shadow: var(--control-shadow); }
.p-control      { padding: var(--control-padding); }
/* Input utilities */
.bg-input     { background-color: var(--input-bg); }
.color-input  { color: var(--input-color); }
.border-input { border: var(--input-border); }
.rounded-input{ border-radius: var(--input-radius); }
.shadow-input { box-shadow: var(--input-shadow); }
/* Default style resets, as utilities */
.p-default     { padding: var(--default-padding); }
.m-default     { margin: var(--default-margin); }
.border-default{ border: var(--default-border); }
.shadow-default{ box-shadow: var(--box-shadow); }
.child-padding > * { padding: var(--child-padding, 0); }
.child-padding-1-2 > * { padding: var(--space-1-2, clamp(0.25rem, 3.33vw, 0.5rem)); }
.child-padding-1 > * { padding: var(--space-1, clamp(0.5rem, 3.33vw, 1rem)); }
.child-padding-2 > * { padding: var(--space-2, clamp(1rem, 3.33vw, 2rem)); }
.child-padding-3 > * { padding: var(--space-3, clamp(1.5rem, 3.33vw, 3rem)); }
.child-padding-4 > * { padding: var(--space-4, clamp(2rem, 3.33vw, 4rem)); }
/* Gap utility — For Flex/Grid spacing (no edge bleed) */
.gap { gap: var(--default-gap, 1rem); }
.gap-1 { gap: var(--space-1, clamp(0.5rem, 3.33vw, 1rem)); }
.gap-2 { gap: var(--space-2, clamp(1rem, 3.33vw, 2rem)); }
.gap-3 { gap: var(--space-3, clamp(1.5rem, 3.33vw, 3rem)); }
.gap-4 { gap: var(--space-4, clamp(2rem, 3.33vw, 4rem)); }
/* Grid gutters — replaces native `gap` for horizontal spacing only, .col-* widths never overflow */
.row.gap, .row.gap-1, .row.gap-2, .row.gap-3, .row.gap-4 { column-gap: 0; }
.row.gap {--col-h-padding: calc(var(--default-gap, 1rem) / 2); };
.row.gap-1 { --col-h-padding: calc(var(--space-1) / 2); }
.row.gap-2 { --col-h-padding: calc(var(--space-2) / 2); }
.row.gap-3 { --col-h-padding: calc(var(--space-3) / 2); }
.row.gap-4 { --col-h-padding: calc(var(--space-4) / 2); }
.gap-v-1 { row-gap: var(--space-1, clamp(0.5rem, 3.33vw, 1rem)); }
.gap-v-2 { row-gap: var(--space-2, clamp(1rem, 3.33vw, 2rem)); }
.gap-v-3 { row-gap: var(--space-3, clamp(1.5rem, 3.33vw, 3rem)); }
.gap-v-4 { row-gap: var(--space-4, clamp(2rem, 3.33vw, 4rem)); }
.gap-h-1 { column-gap: var(--space-1, clamp(0.5rem, 3.33vw, 1rem)); }
.gap-h-2 { column-gap: var(--space-2, clamp(1rem, 3.33vw, 2rem)); }
.gap-h-3 { column-gap: var(--space-3, clamp(1.5rem, 3.33vw, 3rem)); }
.gap-h-4 { column-gap: var(--space-4, clamp(2rem, 3.33vw, 4rem)); }
/* Non-flex/grid layouts, Nested structures, Overriding defaults, Older browsers (edge bleed absorbed) */
.child-margin > * { margin: var(--space-1, clamp(0.5rem, 3.33vw, 1rem)); }
.child-margin-2 > * { margin: var(--space-2, clamp(1rem, 3.33vw, 2rem)); }
.child-margin-3 > * { margin: var(--space-3, clamp(1.5rem, 3.33vw, 3rem)); }
.child-margin-4 > * { margin: var(--space-4, clamp(2rem, 3.33vw, 4rem)); }
.cluster {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.centered-row {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: var(--default-gap, 1rem);
}
.centered-col {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: var(--default-gap, 1rem);
}
.between-row {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  gap: var(--default-gap, 1rem);
}
.between-col {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: var(--default-gap, 1rem);
}
.stack {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--default-gap, 1rem);
}
.center-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}
.grid-center {
  display: grid;
  place-items: center;
}
.flow-1 > * + * { margin-top: var(--space-1, clamp(0.5rem, 3.33vw, 1rem)); }
.flow-2 > * + * { margin-top: var(--space-2, clamp(1rem, 3.33vw, 2rem)); }
.flow-3 > * + * { margin-top: var(--space-3, clamp(1.5rem, 3.33vw, 3rem)); }
.flow-4 > * + * { margin-top: var(--space-4, clamp(2rem, 3.33vw, 4rem)); }
.page-flow > * + * { margin-top: var(--page-flow, 0); }
.main-flow > * + * { margin-top: var(--main-flow, clamp(2rem, 3.33vw, 4rem)); }
/* Margin */
.m0 { margin: 0; }
.m-1-16 { margin: 0.0625rem; }
.m-1-8 { margin: 0.125rem; }
.m-1-4 { margin: 0.25rem; }
.m-1-2 { margin: 0.5rem; }
.m-3-4 { margin: 0.75rem; }
.m1 { margin: var(--space-dense-1, clamp(0.25rem, 2.03vw - 0.26rem, 1rem)); }
.m2 { margin: var(--space-dense-2, clamp(0.375rem, 4.39vw - 0.72rem, 2rem)); }
.m3 { margin: var(--space-dense-3, clamp(0.5rem, 6.76vw - 1.19rem, 3rem)); }
.m4 { margin: var(--space-dense-4, clamp(0.75rem, 8.78vw - 1.45rem, 4rem)); }

.m-v-0 { margin-block: 0; }
.m-v--1-16 { margin-block: 0.0625rem; }
.m-v--1-8 { margin-block: 0.125rem; }
.m-v--1-4 { margin-block: 0.25rem; }
.m-v--1-2 { margin-block: 0.5rem; }
.m-v--3-4 { margin-block: 0.75rem; }
.m-v-1 { margin-block: var(--space-1, clamp(0.5rem, 3.33vw, 1rem)); }
.m-v-2 { margin-block: var(--space-2, clamp(1rem, 3.33vw, 2rem)); }
.m-v-3 { margin-block: var(--space-3, clamp(1.5rem, 3.33vw, 3rem)); }
.m-v-4 { margin-block: var(--space-4, clamp(2rem, 3.33vw, 4rem)); }

.m-h-0 { margin-inline: 0; }
.m-h--1-16 { margin-inline: 0.0625rem; }
.m-h--1-8 { margin-inline: 0.125rem; }
.m-h--1-4 { margin-inline: 0.25rem; }
.m-h--1-2 { margin-inline: 0.5rem; }
.m-h--3-4 { margin-inline: 0.75rem; }
.m-h-1 { margin-inline: var(--space-dense-1, clamp(0.25rem, 2.03vw - 0.26rem, 1rem)); }
.m-h-2 { margin-inline: var(--space-dense-2, clamp(0.375rem, 4.39vw - 0.72rem, 2rem)); }
.m-h-3 { margin-inline: var(--space-dense-3, clamp(0.5rem, 6.76vw - 1.19rem, 3rem)); }
.m-h-4 { margin-inline: var(--space-dense-4, clamp(0.75rem, 8.78vw - 1.45rem, 4rem)); }

.m-r-0 { margin-right: 0; }
.m-r--1-16 { margin-right: 0.0625rem; }
.m-r--1-8 { margin-right: 0.125rem; }
.m-r--1-4 { margin-right: 0.25rem; }
.m-r--1-2 { margin-right: 0.5rem; }
.m-r--3-4 { margin-right: 0.75rem; }
.m-r-1 { margin-right: var(--space-dense-1, clamp(0.25rem, 2.03vw - 0.26rem, 1rem)); }
.m-r-2 { margin-right: var(--space-dense-2, clamp(0.375rem, 4.39vw - 0.72rem, 2rem)); }
.m-r-3 { margin-right: var(--space-dense-3, clamp(0.5rem, 6.76vw - 1.19rem, 3rem)); }
.m-r-4 { margin-right: var(--space-dense-4, clamp(0.75rem, 8.78vw - 1.45rem, 4rem)); }

.m-l-0 { margin-left: 0; }
.m-l--1-16 { margin-left: 0.0625rem; }
.m-l--1-8 { margin-left: 0.125rem; }
.m-l--1-4 { margin-left: 0.25rem; }
.m-l--1-2 { margin-left: 0.5rem; }
.m-l--3-4 { margin-left: 0.75rem; }
.m-l-1 { margin-left: var(--space-dense-1, clamp(0.25rem, 2.03vw - 0.26rem, 1rem)); }
.m-l-2 { margin-left: var(--space-dense-2, clamp(0.375rem, 4.39vw - 0.72rem, 2rem)); }
.m-l-3 { margin-left: var(--space-dense-3, clamp(0.5rem, 6.76vw - 1.19rem, 3rem)); }
.m-l-4 { margin-left: var(--space-dense-4, clamp(0.75rem, 8.78vw - 1.45rem, 4rem)); }

.m-t-0 { margin-top: 0; }
.m-t--1-16 { margin-top: 0.0625rem; }
.m-t--1-8 { margin-top: 0.125rem; }
.m-t--1-4 { margin-top: 0.25rem; }
.m-t--1-2 { margin-top: 0.5rem; }
.m-t--3-4 { margin-top: 0.75rem; }
.m-t-1 { margin-top: var(--space-1, clamp(0.5rem, 3.33vw, 1rem)); }
.m-t-2 { margin-top: var(--space-2, clamp(1rem, 3.33vw, 2rem)); }
.m-t-3 { margin-top: var(--space-3, clamp(1.5rem, 3.33vw, 3rem)); }
.m-t-4 { margin-top: var(--space-4, clamp(2rem, 3.33vw, 4rem)); }

.m-b-0 { margin-bottom: 0; }
.m-b--1-16 { margin-bottom: 0.0625rem; }
.m-b--1-8 { margin-bottom: 0.125rem; }
.m-b--1-4 { margin-bottom: 0.25rem; }
.m-b--1-2 { margin-bottom: 0.5rem; }
.m-b--3-4 { margin-bottom: 0.75rem; }
.m-b-1 { margin-bottom: var(--space-1, clamp(0.5rem, 3.33vw, 1rem)); }
.m-b-2 { margin-bottom: var(--space-2, clamp(1rem, 3.33vw, 2rem)); }
.m-b-3 { margin-bottom: var(--space-3, clamp(1.5rem, 3.33vw, 3rem)); }
.m-b-4 { margin-bottom: var(--space-4, clamp(2rem, 3.33vw, 4rem)); }
.m-auto { margin: auto; }
.m-h-auto { margin-right: auto; margin-left: auto; }
.m-v-auto { margin-top: auto; margin-bottom:auto; }
.m-t-auto { margin-top: auto; }
.m-b-auto { margin-bottom: auto; }
.m-l-auto { margin-left: auto; }
.m-r-auto { margin-right: auto; }

.-m-1 { margin: calc(-1 * var(--space-dense-1, clamp(0.25rem, 2.03vw - 0.26rem, 1rem))); }
.-m-2 { margin: calc(-1 * var(--space-dense-2, clamp(0.375rem, 4.39vw - 0.72rem, 2rem))); }
.-m-3 { margin: calc(-1 * var(--space-dense-3, clamp(0.5rem, 6.76vw - 1.19rem, 3rem))); }
.-m-4 { margin: calc(-1 * var(--space-dense-4, clamp(0.75rem, 8.78vw - 1.45rem, 4rem))); }
.-m-v-1 { margin-block: calc(-1 * var(--space-1, clamp(0.5rem, 3.33vw, 1rem))); }
.-m-v-2 { margin-block: calc(-1 * var(--space-2, clamp(1rem, 3.33vw, 2rem))); }
.-m-v-3 { margin-block: calc(-1 * var(--space-3, clamp(1.5rem, 3.33vw, 3rem))); }
.-m-v-4 { margin-block: calc(-1 * var(--space-4, clamp(2rem, 3.33vw, 4rem))); }
.-m-h-1 { margin-inline: calc(-1 * var(--space-dense-1, clamp(0.25rem, 2.03vw - 0.26rem, 1rem))); }
.-m-h-2 { margin-inline: calc(-1 * var(--space-dense-2, clamp(0.375rem, 4.39vw - 0.72rem, 2rem))); }
.-m-h-3 { margin-inline: calc(-1 * var(--space-dense-3, clamp(0.5rem, 6.76vw - 1.19rem, 3rem))); }
.-m-h-4 { margin-inline: calc(-1 * var(--space-dense-4, clamp(0.75rem, 8.78vw - 1.45rem, 4rem))); }
.-m-t-1 { margin-top: calc(-1 * var(--space-1, clamp(0.5rem, 3.33vw, 1rem))); }
.-m-t-2 { margin-top: calc(-1 * var(--space-2, clamp(1rem, 3.33vw, 2rem))); }
.-m-t-3 { margin-top: calc(-1 * var(--space-3, clamp(1.5rem, 3.33vw, 3rem))); }
.-m-t-4 { margin-top: calc(-1 * var(--space-4, clamp(2rem, 3.33vw, 4rem))); }
.-m-b-1 { margin-bottom: calc(-1 * var(--space-1, clamp(0.5rem, 3.33vw, 1rem))); }
.-m-b-2 { margin-bottom: calc(-1 * var(--space-2, clamp(1rem, 3.33vw, 2rem))); }
.-m-b-3 { margin-bottom: calc(-1 * var(--space-3, clamp(1.5rem, 3.33vw, 3rem))); }
.-m-b-4 { margin-bottom: calc(-1 * var(--space-4, clamp(2rem, 3.33vw, 4rem))); }
.-m-l-1 { margin-left: calc(-1 * var(--space-dense-1, clamp(0.25rem, 2.03vw - 0.26rem, 1rem))); }
.-m-l-2 { margin-left: calc(-1 * var(--space-dense-2, clamp(0.375rem, 4.39vw - 0.72rem, 2rem))); }
.-m-l-3 { margin-left: calc(-1 * var(--space-dense-3, clamp(0.5rem, 6.76vw - 1.19rem, 3rem))); }
.-m-l-4 { margin-left: calc(-1 * var(--space-dense-4, clamp(0.75rem, 8.78vw - 1.45rem, 4rem))); }
.-m-r-1 { margin-right: calc(-1 * var(--space-dense-1, clamp(0.25rem, 2.03vw - 0.26rem, 1rem))); }
.-m-r-2 { margin-right: calc(-1 * var(--space-dense-2, clamp(0.375rem, 4.39vw - 0.72rem, 2rem))); }
.-m-r-3 { margin-right: calc(-1 * var(--space-dense-3, clamp(0.5rem, 6.76vw - 1.19rem, 3rem))); }
.-m-r-4 { margin-right: calc(-1 * var(--space-dense-4, clamp(0.75rem, 8.78vw - 1.45rem, 4rem))); }
/* Padding */
.p0 { padding: 0; }
.p-1-16 { padding: 0.0625rem; }
.p-1-8 { padding: 0.125rem; }
.p-1-4 { padding: 0.25rem; }
.p-1-2 { padding: 0.5rem; }
.p-3-4 { padding: 0.75rem; }
.p1 { padding: var(--space-dense-1, clamp(0.25rem, 2.03vw - 0.26rem, 1rem)); }
.p2 { padding: var(--space-dense-2, clamp(0.375rem, 4.39vw - 0.72rem, 2rem)); }
.p3 { padding: var(--space-dense-3, clamp(0.5rem, 6.76vw - 1.19rem, 3rem)); }
.p4 { padding: var(--space-dense-4, clamp(0.75rem, 8.78vw - 1.45rem, 4rem)); }

.p-v-0 { padding-block: 0; }
.p-v--1-16 { padding-block: 0.0625rem; }
.p-v--1-8 { padding-block: 0.125rem; }
.p-v--1-4 { padding-block: 0.25rem; }
.p-v--1-2 { padding-block: 0.5rem; }
.p-v--3-4 { padding-block: 0.75rem; }
.p-v-1 { padding-block: var(--space-1, clamp(0.5rem, 3.33vw, 1rem)); }
.p-v-2 { padding-block: var(--space-2, clamp(1rem, 3.33vw, 2rem)); }
.p-v-3 { padding-block: var(--space-3, clamp(1.5rem, 3.33vw, 3rem)); }
.p-v-4 { padding-block: var(--space-4, clamp(2rem, 3.33vw, 4rem)); }

.p-h-0 { padding-inline: 0; }
.p-h--1-16 { padding-inline: 0.0625rem; }
.p-h--1-8 { padding-inline: 0.125rem; }
.p-h--1-4 { padding-inline: 0.25rem; }
.p-h--1-2 { padding-inline: 0.5rem; }
.p-h--3-4 { padding-inline: 0.75rem; }
.p-h-1 { padding-inline: var(--space-dense-1, clamp(0.25rem, 2.03vw - 0.26rem, 1rem)); }
.p-h-2 { padding-inline: var(--space-dense-2, clamp(0.375rem, 4.39vw - 0.72rem, 2rem)); }
.p-h-3 { padding-inline: var(--space-dense-3, clamp(0.5rem, 6.76vw - 1.19rem, 3rem)); }
.p-h-4 { padding-inline: var(--space-dense-4, clamp(0.75rem, 8.78vw - 1.45rem, 4rem)); }

.p-r-0 { padding-right: 0; }
.p-r--1-16 { padding-right: 0.0625rem; }
.p-r--1-8 { padding-right: 0.125rem; }
.p-r--1-4 { padding-right: 0.25rem; }
.p-r--1-2 { padding-right: 0.5rem; }
.p-r--3-4 { padding-right: 0.75rem; }
.p-r-1 { padding-right: var(--space-dense-1, clamp(0.25rem, 2.03vw - 0.26rem, 1rem)); }
.p-r-2 { padding-right: var(--space-dense-2, clamp(0.375rem, 4.39vw - 0.72rem, 2rem)); }
.p-r-3 { padding-right: var(--space-dense-3, clamp(0.5rem, 6.76vw - 1.19rem, 3rem)); }
.p-r-4 { padding-right: var(--space-dense-4, clamp(0.75rem, 8.78vw - 1.45rem, 4rem)); }

.p-l-0 { padding-left: 0; }
.p-l--1-16 { padding-left: 0.0625rem; }
.p-l--1-8 { padding-left: 0.125rem; }
.p-l--1-4 { padding-left: 0.25rem; }
.p-l--1-2 { padding-left: 0.5rem; }
.p-l--3-4 { padding-left: 0.75rem; }
.p-l-1 { padding-left: var(--space-dense-1, clamp(0.25rem, 2.03vw - 0.26rem, 1rem)); }
.p-l-2 { padding-left: var(--space-dense-2, clamp(0.375rem, 4.39vw - 0.72rem, 2rem)); }
.p-l-3 { padding-left: var(--space-dense-3, clamp(0.5rem, 6.76vw - 1.19rem, 3rem)); }
.p-l-4 { padding-left: var(--space-dense-4, clamp(0.75rem, 8.78vw - 1.45rem, 4rem)); }

.p-t-0 { padding-top: 0; }
.p-t--1-16 { padding-top: 0.0625rem; }
.p-t--1-8 { padding-top: 0.125rem; }
.p-t--1-4 { padding-top: 0.25rem; }
.p-t--1-2 { padding-top: 0.5rem; }
.p-t--3-4 { padding-top: 0.75rem; }
.p-t-1 { padding-top: var(--space-1, clamp(0.5rem, 3.33vw, 1rem)); }
.p-t-2 { padding-top: var(--space-2, clamp(1rem, 3.33vw, 2rem)); }
.p-t-3 { padding-top: var(--space-3, clamp(1.5rem, 3.33vw, 3rem)); }
.p-t-4 { padding-top: var(--space-4, clamp(2rem, 3.33vw, 4rem)); }

.p-b-0 { padding-bottom: 0; }
.p-b--1-16 { padding-bottom: 0.0625rem; }
.p-b--1-8 { padding-bottom: 0.125rem; }
.p-b--1-4 { padding-bottom: 0.25rem; }
.p-b--1-2 { padding-bottom: 0.5rem; }
.p-b--3-4 { padding-bottom: 0.75rem; }
.p-b-1 { padding-bottom: var(--space-1, clamp(0.5rem, 3.33vw, 1rem)); }
.p-b-2 { padding-bottom: var(--space-2, clamp(1rem, 3.33vw, 2rem)); }
.p-b-3 { padding-bottom: var(--space-3, clamp(1.5rem, 3.33vw, 3rem)); }
.p-b-4 { padding-bottom: var(--space-4, clamp(2rem, 3.33vw, 4rem)); }

@media (min-width: 992px) {
  .p-d-1 { padding: 1rem; }
  .p-d-2 { padding: 2rem; }
  .m-d-1 { margin: 1rem; }
  .m-d-2 { margin: 2rem; }
}
/* Positioning */
.position-static {  position: static;}
.position-fixed {  position: fixed;}
.position-absolute {  position: absolute;}
.position-relative {  position: relative;}
.position-sticky {  position: sticky;}

.top-0 {  top: 0;}
.bottom-0 {  bottom: 0;}
.right-0 {  right: 0;}
.left-0 {  left: 0;}
.top-1 { top: 1rem; }
.bottom-1{ bottom: 1rem; }
.right-1 { right: 1rem; }
.left-1 { left: 1rem; }
.top-2 { top: 2rem; }
.bottom-2 { bottom: 2rem; }
.right-2 { right: 2rem; }
.left-2 { left: 2rem; }
.top-3 { top: 3rem; }
.bottom-3 { bottom: 3rem; }
.right-3 { right: 3rem; }
.left-3 { left: 3rem; }
.top-4 { top: 4rem; }
.bottom-4 { bottom: 4rem; }
.right-4 { right: 4rem; }
.left-4 { left: 4rem; }
.top-25 { top: 25%; }
.right-25 { right: 25%; }
.top-50 { top: 50%; }
.bottom-50 { bottom: 50%; }
.right-50 { right: 50%; }
.left-50   { left: 50%; }
.top-75 { top: 75%; }
.right-75 { right: 75%; }
.top-25-vh { top: 25vh; }
.right-25-vw { right: 25vw; }
.top-50-vh { top: 50vh; }
.right-50-vw { right: 50vw; }
.top-75-vh { top: 75vh; }
.right-75-vw { right: 75vw; }
/* Override components defaults */
.top-auto    { top: auto; }
.right-auto  { right: auto; }
.bottom-auto { bottom: auto; }
.left-auto   { left: auto; }
.translate-x--50 { transform: translateX(-50%); }
.translate-y--50 { transform: translateY(-50%); }
.translate-xy--50 { transform: translate(-50%, -50%); }
/* Background colors */
.bg-color-1, .bg-color-1-hover:hover { background-color: var(--color-1, black); }
.bg-color-2, .bg-color-2-hover:hover { background-color: var(--color-2, black); }
.bg-success, .bg-success-hover:hover { background-color: var(--success, green); }
.bg-info, .bg-info-hover:hover { background-color: var(--info, blue); }
.bg-danger, .bg-danger-hover:hover { background-color: var(--danger, red); }
.bg-dark, .bg-dark-hover:hover { background-color: var(--dark, darkgray); }
.bg-black, .bg-black-hover:hover { background-color: var(--black, #000); }
.bg-grey, .bg-grey-hover:hover { background-color: var(--grey, grey); }
.bg-white, .bg-white-hover:hover { background-color: var(--white, white); }
.bg-body-bg, .bg-body-bg-hover:hover { background-color: var(--body-bg, white); }
.bg-light-grey, .bg-lite-grey, .bg-light-grey-hover:hover { background-color: var(--light-grey, grey); }
.bg-warning, .bg-warning-hover:hover { background-color: var(--warning, black); }
.bg-luxury, .bg-luxury-hover:hover { background-color: var(--luxury, black); }
/* colors */
.color-1, .color-1-hover:hover { color: var(--color-1, black); }
.color-2, .color-2-hover:hover { color: var(--color-2, black); }
.success, .success-hover:hover { color: var(--success, green); }
.info, .info-hover:hover { color: var(--info, blue); }
.danger, .danger-hover:hover { color: var(--danger, red); }
.dark, .dark-hover:hover { color: var(--dark, rgba(41, 40, 40, 0.707)); }
.grey, .grey-hover:hover { color: var(--grey, rgba(204, 204, 204, 1)); }
.light-grey, .light-grey-hover:hover { color: var(--light-grey, rgba(128, 128, 128, 0.808)); }
.white, .white-hover:hover { color: var(--white, #fff); }
.black, .black-hover:hover { color: var(--black, #000); }
.warning, .warning-hover:hover { color: var(--warning, yellow); }
.luxury, .luxury-hover:hover { color: var(--luxury, yellow); }
.color-gradient, .color-gradient-hover:hover {
  background: linear-gradient( to top, var(--color-1, black) 0, var(--color-2, black) 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
/* outlined */
.outline-color-1 { outline: 0.075rem solid var(--color-1, black); }
.outline-color-2 { outline: 0.075rem solid var(--color-2, black); }
.outline-color-dark, .outline-dark { outline: 0.075rem solid var(--dark, black); }
.outline-color-grey, .outline-grey { outline: 0.075rem solid var(--grey, black); }
.outline-color-info, .outline-info { outline: 0.075rem solid var(--info, black); }
.outline-color-success, .outline-success { outline: 0.075rem solid var(--success, black); }
.outline-color-danger, .outline-danger { outline: 0.075rem solid var(--danger, black); }
.outline-light-grey { outline: 0.075rem solid var(--light-grey, black); }
.outline-color-white, .outline-white { outline: 0.075rem solid var(--white, white); }
.outline-color-black, .outline-black { outline: 0.075rem solid black; }
.outline-warning { outline: 0.0625rem solid var(--warning, black); }
.outline-luxury { outline: 0.0625rem solid var(--luxury, black); }
.invalid { outline: 0.075rem solid var(--input-invalid-border, red); }
/* round and circle */
.rounded { border-radius: 0.5rem; }
.rounded-style { border-radius: var(--default-border-radius);}
.rounded-1-4 { border-radius: 0.25rem; }
.rounded-1-8 { border-radius: 0.125rem; }
.rounded-0 { border-radius: 0; }
.rounded-t { border-radius: 0.5rem 0.5rem 0 0; }
.rounded-t-1-4 { border-radius: 0.25rem 0.25rem 0 0; }
.rounded-t-1-8 { border-radius: 0.125rem 0.125rem 0 0; }
.rounded-b { border-radius: 0 0 0.5rem 0.5rem; }
.rounded-b-1-4 { border-radius: 0 0 0.25rem 0.25rem; }
.rounded-b-1-8 { border-radius: 0 0 0.125rem 0.125rem; }
.rounded-r { border-radius: 0 0.5rem 0.2rem 0; }
.rounded-r-1-4 { border-radius: 0 0.25rem 0.25rem 0; }
.rounded-r-1-8 { border-radius: 0 0.125rem 0.125rem 0; }
.rounded-l { border-radius: 0.5rem 0 0 0.5rem; }
.rounded-l-1-4 { border-radius: 0.25rem 0 0 0.25rem; }
.rounded-l-1-8 { border-radius: 0.125rem 0 0 0.125rem; }
.circle { border-radius: 50%; }
.circle-t { border-radius: 50% 50% 0 0; }
.circle-b { border-radius: 0 0 50% 50%; }
.circle-r { border-radius: 50% 0 0 50%; }
.circle-l { border-radius: 0 50% 50% 0; }
/* Width and height utilities */
/* ===== Percent — fixed/min/max ===== */
.w-25 { width: 25%; }
.w-33 { width: 33.3333%; }
.w-50 { width: 50%; }
.w-66 { width: 66.6667%; }
.w-75 { width: 75%; }
.w-100 { width: 100%; }
.h-25 { height: 25%; }
.h-33 { height: 33.3333%; }
.h-50 { height: 50%; }
.h-66 { height: 66.6667%; }
.h-75 { height: 75%; }
.h-100 { height: 100%; }
.w-25-min { min-width: 25%; }
.w-33-min { min-width: 33.3333%; }
.w-50-min { min-width: 50%; }
.w-66-min { min-width: 66.6667%; }
.w-75-min { min-width: 75%; }
.w-100-min { min-width: 100%; }
.h-25-min { min-height: 25%; }
.h-33-min { min-height: 33.3333%; }
.h-50-min { min-height: 50%; }
.h-66-min { min-height: 66.6667%; }
.h-75-min { min-height: 75%; }
.h-100-min { min-height: 100%; }
.w-25-max { max-width: 25%; }
.w-33-max { max-width: 33.3333%; }
.w-50-max { max-width: 50%; }
.w-66-max { max-width: 66.6667%; }
.w-75-max { max-width: 75%; }
.w-100-max { max-width: 100%; }
.h-25-max { max-height: 25%; }
.h-33-max { max-height: 33.3333%; }
.h-50-max { max-height: 50%; }
.h-66-max { max-height: 66.6667%; }
.h-75-max { max-height: 75%; }
.h-100-max { max-height: 100%; }
/* ===== vh/vw — fixed/min/max ===== */
.w-25-vw { width: 25vw; }
.w-33-vw { width: 33.3333vw; }
.w-50-vw { width: 50vw; }
.w-66-vw { width: 66.6667vw; }
.w-75-vw { width: 75vw; }
.w-100-vw { width: 100vw; }
.h-25-vh { height: 25vh; }
.h-33-vh { height: 33.3333vh; }
.h-50-vh { height: 50vh; }
.h-66-vh { height: 66.6667vh; }
.h-75-vh { height: 75vh; }
.h-100-vh { height: 100vh; }
.w-25-vw-min { min-width: 25vw; }
.w-33-vw-min { min-width: 33.3333vw; }
.w-50-vw-min { min-width: 50vw; }
.w-66-vw-min { min-width: 66.6667vw; }
.w-75-vw-min { min-width: 75vw; }
.w-100-vw-min { min-width: 100vw; }
.h-25-vh-min { min-height: 25vh; }
.h-33-vh-min { min-height: 33.3333vh; }
.h-50-vh-min { min-height: 50vh; }
.h-66-vh-min { min-height: 66.6667vh; }
.h-75-vh-min { min-height: 75vh; }
.h-100-vh-min { min-height: 100vh; }
.w-25-vw-max { max-width: 25vw; }
.w-33-vw-max { max-width: 33.3333vw; }
.w-50-vw-max { max-width: 50vw; }
.w-66-vw-max { max-width: 66.6667vw; }
.w-75-vw-max { max-width: 75vw; }
.w-90-vw-max { max-width: 90vw; }
.w-100-vw-max { max-width: 100vw; }
.h-25-vh-max { max-height: 25vh; max-height: 25dvh; }
.h-33-vh-max { max-height: 33.3333vh; max-height: 33.3333dvh; }
.h-50-vh-max { max-height: 50vh; max-height: 50dvh; }
.h-66-vh-max { max-height: 66.6667vh; max-height: 66.6667dvh; }
.h-75-vh-max { max-height: 75vh; max-height: 75dvh; }
.h-90-vh-max { max-height: 90vh; max-height: 90dvh; }
.h-100-vh-max { max-height: 100vh; max-height: 100dvh; }
/* ===== rem (height) — fixed/min/max ===== */
.h-1rem {height: 1rem;}
.h-2rem {height: 2rem;}
.h-3rem {height: 3rem;}
.h-4rem {height: 4rem;}
.h-5rem {height: 5rem;}
.h-6rem {height: 6rem;}
.h-8rem {height: 8rem;}
.h-10rem {height: 10rem;}
.h-1rem-min {min-height: 1rem;}
.h-2rem-min {min-height: 2rem;}
.h-3rem-min {min-height: 3rem;}
.h-4rem-min {min-height: 4rem;}
.h-5rem-min {min-height: 5rem;}
.h-6rem-min {min-height: 6rem;}
.h-8rem-min {min-height: 8rem;}
.h-10rem-min {min-height: 10rem;}
.h-1rem-max {max-height: 1rem;}
.h-2rem-max {max-height: 2rem;}
.h-3rem-max {max-height: 3rem;}
.h-4rem-max {max-height: 4rem;}
.h-5rem-max {max-height: 5rem;}
.h-6rem-max {max-height: 6rem;}
.h-8rem-max {max-height: 8rem;}
.h-10rem-max {max-height: 10rem;}
/* ===== rem (width) — fixed/min/max ===== */
.w-1rem {width: 1rem;}
.w-2rem {width: 2rem;}
.w-3rem {width: 3rem;}
.w-4rem {width: 4rem;}
.w-5rem {width: 5rem;}
.w-6rem {width: 6rem;}
.w-8rem {width: 8rem;}
.w-10rem {width: 10rem;}
.w-1rem-min {min-width: 1rem;}
.w-2rem-min {min-width: 2rem;}
.w-3rem-min {min-width: 3rem;}
.w-4rem-min {min-width: 4rem;}
.w-5rem-min {min-width: 5rem;}
.w-6rem-min {min-width: 6rem;}
.w-8rem-min {min-width: 8rem;}
.w-10rem-min {min-width: 10rem;}
.w-1rem-max {max-width: 1rem;}
.w-2rem-max {max-width: 2rem;}
.w-3rem-max {max-width: 3rem;}
.w-4rem-max {max-width: 4rem;}
.w-5rem-max {max-width: 5rem;}
.w-6rem-max {max-width: 6rem;}
.w-8rem-max {max-width: 8rem;}
.w-10rem-max {max-width: 10rem;}
/* ===== rem — subtract-from-100%  ===== */
.w--1rem {width: calc(100% - 1rem)}
.w--2rem {width: calc(100% - 2rem)}
.w--3rem {width: calc(100% - 3rem)}
.w--4rem {width: calc(100% - 4rem)}
.h--1rem {height: calc(100% - 1rem)}
.h--2rem {height: calc(100% - 2rem)}
.h--3rem {height: calc(100% - 3rem)}
.h--4rem {height: calc(100% - 4rem)}
/* Text utilities */
.double { font-size: 200%; }
.large { font-size: 150%; }
.larger { font-size: 125%; }
.smaller { font-size: 85%; }
.small { font-size: 75%; }
.half { font-size: 50%; }
.font-weight-200, .font-thin { font-weight: 200; }
.font-weight-400, .font-regular { font-weight: 400; }
.font-weight-600, .font-semibold { font-weight: 600; }
.bold, b, strong { font-weight: bold; }
.italic { font-style: italic; }
.text-uppercase { text-transform: uppercase; }
.text-capitalize { text-transform: capitalize; }
.text-lowercase { text-transform: lowercase; }
.letter-spacing-0 { letter-spacing: 0; }
.letter-spacing-1 { letter-spacing: 0.075rem; }
.letter-spacing-2 { letter-spacing: 0.15rem; }
.letter-spacing-3 { letter-spacing: 0.3rem; }
.letter-spacing-4 { letter-spacing: 0.45rem; }
.letter-spacing-5 { letter-spacing: 0.6rem; }
.center { text-align: center; }
.left { text-align: left; }
.right { text-align: right; }
.justified { text-align: justify; }
.unselectable{ user-select: none; }
.height-1lines{ height:1.4rem; overflow:hidden; }
.height-2lines{ height:2.8rem; overflow:hidden; }
.height-3lines{ height:4.8rem; overflow:hidden; }
.content-in-middle { position: relative; top: 50%; transform: translateY(-50%); }
.word-wrap-break { word-wrap:break-word; }
.heading-color { color: var(--heading-color); }
.heading-font { font-family: var(--heading-font); }
.mono-font { font-family: var(--font-mono); }
.heading-font-weight { font-weight: var(--heading-font-weight); }
.heading-line-height { line-height: var(--heading-line-height); }
.heading-letter-spacing { letter-spacing: var(--heading-letter-spacing); }
.old-info { text-decoration: line-through; }
.overline { text-decoration: overline; }
.underline { text-decoration: underline; }
.decoration-none { text-decoration: none; }
.hover-underline:hover { text-decoration: underline; }
.hover-white:hover { background-color: var(--white, black)}
.hover-grey:hover {  background-color: var(--grey, black);}
.line-height-1 {  line-height: 1;}
.line-height-17 {  line-height: 1.7;}
.line-height-2 {  line-height: 2;}
/* Border */
.border { border-style: solid; border-width: 0.0625rem; }
.border-style { border: var(--default-border);}
.border-0 { border-width: 0; }
.border { border-width: 0.0625rem; }
.border-2 { border-width: 0.125rem; }
.border-4 { border-width: 0.25rem; }
.border-8 { border-width: 0.5rem; }
.border-t { border-top-width: 0.0625rem; }
.border-t-0 { border-top-width: 0; }
.border-t-2 { border-top-width: 0.125rem; }
.border-t-4 { border-top-width: 0.25rem; }
.border-t-8 { border-top-width: 0.5rem; }
.border-r { border-right-width: 0.0625rem; }
.border-r-0 { border-right-width: 0; }
.border-r-2 { border-right-width: 0.125rem; }
.border-r-4 { border-right-width: 0.25rem; }
.border-r-8 { border-right-width: 0.5rem; }
.border-b { border-bottom-width: 0.0625rem; }
.border-b-0 { border-bottom-width: 0; }
.border-b-2 { border-bottom-width: 0.125rem; }
.border-b-4 { border-bottom-width: 0.25rem; }
.border-b-8 { border-bottom-width: 0.5rem; }
.border-l { border-left-width: 0.0625rem; }
.border-l-0 { border-left-width: 0; }
.border-l-2 { border-left-width: 0.125rem; }
.border-l-4 { border-left-width: 0.25rem; }
.border-l-8 { border-left-width: 0.5rem; }
.border-h { border-left-width: 0.0625rem; border-right-width: 0.0625rem; }
.border-h-0 { border-left-width: 0; border-right-width: 0; }
.border-h-2 { border-left-width: 0.125rem; border-right-width: 0.125rem; }
.border-h-4 { border-left-width: 0.25rem; border-right-width: 0.25rem; }
.border-h-8 { border-left-width: 0.5rem; border-right-width: 0.5rem; }
.border-v { border-top-width: 0.0625rem; border-bottom-width: 0.0625rem; }
.border-v-0 { border-top-width: 0; border-bottom-width: 0; }
.border-v-2 { border-top-width: 0.125rem; border-bottom-width: 0.125rem; }
.border-v-4 { border-top-width: 0.25rem; border-bottom-width: 0.25rem; }
.border-v-8 { border-top-width: 0.5rem; border-bottom-width: 0.5rem; }

.border-solid { border-style: solid; }
.border-dashed { border-style: dashed; }
.border-dotted { border-style: dotted; }
.border-double { border-style: double; }
.border-none { border-style: none; }

.border-color-1 { border-color: var(--color-1, black); }
.border-color-2 { border-color: var(--color-2, black); }
.border-info { border-color: var(--info, blue); }
.border-success { border-color: var(--success, green); }
.border-danger { border-color: var(--danger, red); }
.border-dark { border-color: var(--dark, darkgray); }
.border-grey { border-color: var(--grey, grey); }
.border-light-grey { border-color: var(--light-grey, grey); }
.border-warning { border-color: var(--warning, black); }
.border-luxury { border-color: var(--luxury, black); }
.border-white { border-color: var(--white, white); }
.border-a-black { border-color: var(--black, black); }
.border-a-color-1 { border-color: color-mix(in srgb, var(--color-1, black) 10%, transparent); }
.border-a-color-2 { border-color: color-mix(in srgb, var(--color-2, black) 10%, transparent); }
.border-a-info { border-color: color-mix(in srgb, var(--info, blue) 10%, transparent); }
.border-a-success { border-color: color-mix(in srgb, var(--success, green) 10%, transparent); }
.border-a-danger { border-color: color-mix(in srgb, var(--danger, red) 10%, transparent); }
.border-a-dark { border-color: color-mix(in srgb, var(--dark, darkgray) 10%, transparent); }
.border-a-grey { border-color: color-mix(in srgb, var(--grey, grey) 10%, transparent); }
.border-a-light-grey { border-color: color-mix(in srgb, var(--light-grey, grey) 10%, transparent); }
.border-a-warning { border-color: color-mix(in srgb, var(--warning, black) 10%, transparent); }
.border-a-luxury { border-color: color-mix(in srgb, var(--luxury, black) 10%, transparent); }
.border-a-white { border-color: color-mix(in srgb, var(--white, white) 10%, transparent); }
.border-a-black { border-color: color-mix(in srgb, var(--black, black) 10%, transparent); }
/* Display */
.d-none { display: none; }
.d-inline { display: inline; }
.d-inline-block { display: inline-block; }
.d-block { display: block; }
.d-table { display: table; }
.d-table-row { display: table-row; }
.d-table-cell { display: table-cell; }
.d-flex { display: flex; }
.d-inline-flex { display: inline-flex; }
.flex-row { flex-direction: row; }
.flex-row-reverse { flex-direction: row-reverse; }
.flex-column {  flex-direction: column;}
.flex-column-reverse { flex-direction: column-reverse; }
.flex-wrap { flex-wrap: wrap; }
.flex-nowrap { flex-wrap: nowrap; }
.flex-wrap-reverse { flex-wrap: wrap-reverse; }
.flex-fill { flex: 1 1 auto; }
.flex-grow-0 { flex-grow: 0; }
.flex-grow-1 { flex-grow: 1; }
.flex-shrink-0 { flex-shrink: 0; }
.flex-shrink-1 { flex-shrink: 1; }
.justify-content-start    { justify-content: flex-start; }
.justify-content-end      { justify-content: flex-end; }
.justify-content-center   { justify-content: center; }
.justify-content-between  { justify-content: space-between; }
.justify-content-around   { justify-content: space-around;}
.align-items-start    { align-items: flex-start; }
.align-items-end      { align-items: flex-end; }
.align-items-center   { align-items: center; }
.align-items-baseline { align-items: baseline; }
.align-items-stretch  { align-items: stretch; }
.align-content-start    { align-content: flex-start; }
.align-content-end      { align-content: flex-end; }
.align-content-center   { align-content: center; }
.align-content-between  { align-content: space-between; }
.align-content-around   { align-content: space-around; }
.align-content-stretch { align-content: stretch; }
.align-self-auto { align-self: auto; }
.align-self-start { align-self: flex-start; }
.align-self-end { align-self: flex-end; }
.align-self-center    { align-self: center; }
.align-self-baseline  { align-self: baseline; }
.align-self-stretch   { align-self: stretch; }
/*Grid Display Utilities */
.d-grid { display: grid; }
.d-inline-grid { display: inline-grid; }
.grid-cols-1 { grid-template-columns: repeat(1, 1fr); }
.grid-cols-2 { grid-template-columns: repeat(2, 1fr); }
.grid-cols-3 { grid-template-columns: repeat(3, 1fr); }
.grid-cols-4 { grid-template-columns: repeat(4, 1fr); }
.grid-cols-6 { grid-template-columns: repeat(6, 1fr); }
.grid-cols-12 { grid-template-columns: repeat(12, 1fr); }
.col-span-1 { grid-column: span 1 / span 1; }
.col-span-2 { grid-column: span 2 / span 2; }
.col-span-3 { grid-column: span 3 / span 3; }
.col-span-4 { grid-column: span 4 / span 4; }
.col-span-6 { grid-column: span 6 / span 6; }
.col-span-full { grid-column: 1 / -1; }
/* float, Overflow and z-index */
.float-right { float: right; }
.float-left { float: left; }
.float-none { float: none; }
.clear-right { clear: right; }
.clear-left { clear: left; }
.clear-both {clear: both; }
.clear-fix, .overflow-auto { overflow: auto;}
.overflow-x-auto {  overflow-x: auto;}
.overflow-x-scroll {overflow-x: scroll;}
.overflow-x-hidden {overflow-x: hidden;}
.overflow-y-auto {overflow-y: auto;}
.overflow-y-scroll {overflow-y: scroll;}
.overflow-y-hidden {overflow-y: hidden;}
.overflow-hidden {overflow: hidden;}
.overflow-visible {overflow: visible;}
.scrollbar-none {scrollbar-width: none;}
.scrollbar-thin {  scrollbar-width: thin;}
.z--1 {z-index: -1;}
.z-0 {z-index: 0;}
.z-1 {z-index: 1;}
.z-2 {z-index: 2;}
.z-3 {z-index: 3;}
.z-10 {z-index: 10;}
.z-100 {z-index: 100;}
.z-floating { z-index: var(--z-floating, 100); }
.z-overlay { z-index: var(--z-overlay, 999); }
.z-modal { z-index: var(--z-modal, 1000); }
/* 1. Property axis — sets transition-property + a DEFAULT duration/easing */
.transition-none { transition-property: none; }
.transition { transition-property: all; transition-duration: var(--duration-base, 0.25s); transition-timing-function: var(--easing, ease); }
.transition-opacity { transition-property: opacity; transition-duration: var(--duration-base, 0.25s); transition-timing-function: var(--easing, ease); }
.transition-transform { transition-property: transform; transition-duration: var(--duration-base, 0.25s); transition-timing-function: var(--easing, ease); }
.transition-colors { transition-property: color, background-color, border-color; transition-duration: var(--duration-base, 0.25s); transition-timing-function: var(--easing-in-out, ease-in-out); }
.transition-shadow { transition-property: box-shadow; transition-duration: var(--duration-base, 0.25s); transition-timing-function: var(--easing-in-out, ease-in-out); }
/* 2. Duration axis — declared AFTER */
.transition-fast { transition-duration: var(--duration-fast, 0.15s); }
.transition-slow { transition-duration: var(--duration-slow, 0.4s); }
.ease-in-out { transition-timing-function: var(--easing-in-out, ease-in-out); }
}
@layer utilities-advanced {
/* Shadows */
.shadow, .shadow-hover:hover{
  box-shadow: var(--shadow-style, 0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.12), 0 0.0625rem 0.125rem rgba(0, 0, 0, 0.24));
}
.shadow-1, .shadow-1-hover:hover {
  box-shadow: 0 0.0625rem 0.1875rem rgba(0, 0, 0, 0.12), 0 0.0625rem 0.125rem rgba(0, 0, 0, 0.24);
}
.shadow-2, .shadow-2-hover:hover {
  border: solid 0.0625rem var(--light-grey, #f5f5f5);
  box-shadow: 0.1875rem 0.1875rem 0.125rem #aaaaaa;
}
.shadow-3, .shadow-3-hover:hover {
  border: solid 0.0625rem var(--light-grey, #f5f5f5);
  box-shadow: 0 0.33rem 1rem rgba(0, 0, 0, 0.08);
}
.shadow-4, .shadow-4-hover:hover, .hover-shadow:hover {
  box-shadow: 0 0.9rem 1.8rem rgba(0, 0, 0, 0.25), 0 0.625rem 0.625rem rgba(0, 0, 0, 0.22);
}
.shadow-color, .shadow-color-hover:hover {
  box-shadow: 0 0.0625rem 0.1875rem color-mix(in srgb, var(--color-1, black) 10%, transparent), 0 0.0625rem 0.125rem color-mix(in srgb, var(--color-1, black) 10%, transparent);
}
.shadow-color-2, .shadow-color-2-hover:hover {
  border: solid 0.0625rem color-mix(in srgb, var(--color-1, black) 10%, transparent);
  box-shadow: 0.1875rem 0.1875rem 0.125rem var(--color-1, black);
}
.shadow-color-3, .shadow-color-3-hover:hover {
  border: solid 0.0625rem #f5f5f5;
  box-shadow: 0 0.33rem 1rem color-mix(in srgb, var(--color-1, black) 10%, transparent);
}
.shadow-color-4, .shadow-color-4-hover:hover {
  box-shadow: 0 0.625rem 1.25rem color-mix(in srgb, var(--color-1, black) 10%, transparent), 0 0.625rem 0.625rem color-mix(in srgb, var(--color-1, black) 10%, transparent);
}
.shadow-none, .shadow-none-hover:hover { box-shadow: none; }
/* Backgrounds with alpha */
.bga-color-1, .bga-color-1-hover:hover {
  background-color: color-mix(in srgb, var(--color-1, black) 10%, transparent);
  color: var(--color-1, black);
}
.bga-color-2, .bga-color-2-hover:hover {
  background-color: color-mix(in srgb, var(--color-2, black) 10%, transparent);
  color: var(--color-2, black);
}
.bga-info, .bga-info-hover:hover {
  background-color: color-mix(in srgb, var(--info, blue) 10%, transparent);
  color: var(--info, blue);
}
.bga-dark, .bga-dark-hover:hover {
  background-color: color-mix(in srgb, var(--dark, darkgray) 10%, transparent);
  color: var(--dark, darkgray);
}
.bga-grey, .bga-grey-hover:hover {
  background-color: color-mix(in srgb, var(--grey, grey) 10%, transparent);
  color: var(--grey, black);
}
.bga-danger, .bga-danger-hover:hover {
  background-color: color-mix(in srgb, var(--danger, red) 10%, transparent);
  color: var(--danger, black);
}
.bga-success, .bga-success-hover:hover {
  background-color: color-mix(in srgb, var(--success, green) 10%, transparent);
  color: var(--success, black);
}
.bga-warning, .bga-warning-hover:hover {
  background-color: color-mix(in srgb, var(--warning, yellow) 10%, transparent);
  color: var(--warning, black);
}
.bga-luxury, .bga-luxury-hover:hover {
  background-color: color-mix(in srgb, var(--luxury, purple) 10%, transparent);
  color: var(--luxury, black);
}
.bg-gradient, .bg-gradient-hover:hover {
  background: linear-gradient( to right, var(--color-1, black) 0, var(--color-2, black) 100%);
}
.bg-gradient-info, .bg-gradient-info-hover:hover {
  background: linear-gradient( to right, var(--color-1, black) 0, var(--info, blue) 100%);
}
.bg-gradient-success, .bg-gradient-success-hover:hover {
  background: linear-gradient( to right, var(--color-1, black) 0, var(--success, green) 100%);
}
.bg-gradient-danger, .bg-gradient-danger-hover:hover {
  background: linear-gradient( to right, var(--color-1, black) 0, var(--danger, red) 100%);
}
.bg-gradient-warning, .bg-gradient-warning-hover:hover {
  background: linear-gradient( to right, var(--color-1, black) 0, var(--warning, yellow) 100%);
}
.bg-gradient-luxury, .bg-gradient-luxury-hover:hover {
  background: linear-gradient( to right, var(--color-1, black) 0, var(--luxury, purple) 100%);
}
.bg-gradient-black, .bg-gradient-black-hover:hover {
  background: linear-gradient( to right, var(--color-1, black) 0, var(--black, black) 100%);
}
.bg-gradient-white, .bg-gradient-white-hover:hover {
  background: linear-gradient( to right, var(--color-1, black) 0, var(--white, white) 100%);
}
.border-gradient { border-image: linear-gradient(to right, var(--color-1, black), var(--color-2, black)) 1; }
.border-gradient-info { border-image: linear-gradient(to right, var(--color-1, black), var(--info, blue)) 1; }
.border-gradient-success { border-image: linear-gradient(to right, var(--color-1, black), var(--success, green)) 1; }
.border-gradient-danger { border-image: linear-gradient(to right, var(--color-1, black), var(--danger, red)) 1; }
.border-gradient-warning { border-image: linear-gradient(to right, var(--color-1, black), var(--warning, yellow)) 1; }
.border-gradient-luxury { border-image: linear-gradient(to right, var(--color-1, black), var(--luxury, purple)) 1; }
.border-gradient-black { border-image: linear-gradient(to right, var(--color-1, black), var(--black, black)) 1; }
.border-gradient-white { border-image: linear-gradient(to right, var(--color-1, black), var(--white, white)) 1; }
/* Brightness utilities */
.brightness-150, .brightness-150-hover:hover { filter: brightness(150%); }
.brightness-100, .brightness-100-hover:hover { filter: brightness(100%); }
.brightness-90, .brightness-90-hover:hover { filter: brightness(90%); }
.brightness-80, .brightness-80-hover:hover { filter: brightness(80%); }
.brightness-66, .brightness-66-hover:hover { filter: brightness(66%); }
.brightness-33, .brightness-33-hover:hover { filter: brightness(33%); }
.desktop-only { display: none !important; }
.mobile-only { display: inline-block; }
@media (min-width: 992px) {
  .desktop-only { display: inline-block !important; }
  .mobile-only { display: none !important; }
}
/* Screen-reader-only content — visually hidden, still announced */
.sr-only {
  position: absolute;
  width: 0.0625rem;
  height: 0.0625rem;
  padding: 0;
  margin: -0.0625rem;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
/* Skip link — hidden until keyboard-focused, then jumps above content */
.skip-link {
  position: absolute;
  top: -3rem;
  left: 0.5rem;
  z-index: 1000;
  padding: var(--control-padding);
  background-color: var(--control-bg);
  color: var(--control-color);
  border-radius: var(--control-radius);
  text-decoration: none;
  transition: top 0.2s ease;
}
.skip-link:focus {
  top: 0.5rem;
}
}
@layer overrides {
  /* Universal focus-visible ring — keyboard-only, uses outline (not box-shadow) */
  a:focus-visible, button:focus-visible, .button:focus-visible, input:focus-visible,
  select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible,
  .menu-item a:focus-visible, .menu-item label:focus-visible, .pill:focus-visible,
  .dropdown-toggle:focus-visible {
    outline: 0.1875rem solid var(--color-1);
    outline-offset: 0.125rem;
  }
  /* Mouse/touch clicks never show the ring; keyboard nav always does */
  a:focus:not(:focus-visible),
  button:focus:not(:focus-visible),
  .button:focus:not(:focus-visible),
  [tabindex]:focus:not(:focus-visible) {
    outline: none;
  }
  /* Respect reduced-motion preference across every animation/transition */
  @media (prefers-reduced-motion: reduce) {
    :root {
      --duration-fast: 0s;
      --duration-base: 0s;
      --duration-slow: 0s;
    }
    [style*="transition"], [style*="animation"] {
      transition-duration: 0.01ms !important;
      animation-duration: 0.01ms !important;
    }
  }
  /* Forced-colors mode (Windows High Contrast) — this restores borders so component boundaries stay visible */
  @media (forced-colors: active) {
    .card, .panel, .button, button, .pill, .chip,
    .dropdown-menu, .modal__inner, .accordion-content, .tabs .tab {
      border: 0.0625rem solid CanvasText;
    }
    .button:focus-visible, button:focus-visible, a:focus-visible {
      outline: 0.1875rem solid Highlight;
    }
  }
}