/* 由生成器合并（site/config.cjs cssBundle），勿手改：改 /assets/fonts/inter.css、/css/tokens.css、/css/base.css、/css/components.css 后重新生成。 */
/* ---- /assets/fonts/inter.css ---- */
@font-face {
  font-family: "Inter";
  src: url("/assets/fonts/inter-latin.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0020-007E, U+00A0-00FF, U+0100-017F, U+2013-2014, U+2018-201D, U+2026, U+2039-203A, U+20AC, U+2190-2193, U+2197;
}
@font-face {
  font-family: "Inter zh";
  src: url("/assets/fonts/inter-latin.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0020-007E, U+00A0-00FF, U+0100-017F, U+2013, U+2039-203A, U+20AC, U+2190-2193, U+2197;
}
@font-face {
  font-family: "Inter Fallback";
  src: local("Arial");
  size-adjust: 108.13%;
  ascent-override: 89.59%;
  descent-override: 22.31%;
  line-gap-override: 0.00%;
}

/* ---- /css/tokens.css ---- */
@layer reset, tokens, base, layout, components, pages, utilities;

@layer tokens {
  :root {
    color-scheme: light;

    --blue-50: #f2f7ff;   
    --blue-100: #e4efff;  
    --blue-200: #cbdfff;  
    --blue-300: #a6c7fe;  
    --blue-400: #70a1fd;  
    --blue-500: #3f75e9;  
    --blue-600: #2454c6;  
    --blue-700: #1a44a8;  
    --blue-800: #143787;  
    --blue-900: #102b67;  
    --blue-950: #081c44;  

    --navy-800: #253c60;
    --navy-900: #1b2f4f;  
    --navy-950: #0f1f39;
    --navy-text-secondary: #cdd1d8; 

    --gray-0: #ffffff;
    --gray-25: #fbfcfd;
    --gray-50: #f5f5f6;   
    --gray-100: #eef0f3;  
    --gray-200: #e7e8ec;  
    --gray-300: #cdd1d8;  
    --gray-400: #9ea5af;  
    --gray-450: #868d97;  
    --gray-500: #6e7480;  
    --gray-600: #3d4350;  
    --gray-700: #2c313b;  
    --gray-800: #292e36;  
    --gray-900: #0b0d12;  
    --gray-950: #0c1015;

    --success-bg: #eaf8ec;
    --success-border: #bce3c3;
    --success-solid: #0a7e3a;
    --success-text: #045d28;
    --warning-bg: #fff1e2;
    --warning-border: #f2d1ad;
    --warning-solid: #8a5600;
    --warning-text: #734803;
    --danger-bg: #ffefee;
    --danger-border: #fdc9c4;
    --danger-solid: #ba2b2e;
    --danger-text: #910e19;
    --info-bg: #f2f7ff;
    --info-border: #cbdfff;
    --info-solid: #2454c6;
    --info-text: #1a44a8;

    --cat-stand-bg: #eff5ff;
    --cat-stand-hover: #e4edff;
    --cat-stand-border: #cdddfb;
    --cat-stand-icon: #2f54a0;
    --cat-translation-bg: #f5f2ff;
    --cat-translation-hover: #eee9ff;
    --cat-translation-border: #ded7f8;
    --cat-translation-icon: #5f4598;
    
    --cat-freight-bg: #f1f4f8;
    --cat-freight-hover: #e6ebf2;
    --cat-freight-border: #d3dbe6;
    --cat-freight-icon: #46546b;
    --cat-catering-bg: #fdf3e8;
    --cat-catering-hover: #faead8;
    --cat-catering-border: #f0d8bd;
    --cat-catering-icon: #7a4d04;
    --cat-host-bg: #fff0f2;
    --cat-host-hover: #ffe6e8;
    --cat-host-border: #f9d1d4;
    --cat-host-icon: #923144;

    --border-subtle: rgb(16 43 103 / 0.08);
    --border-default: rgb(16 43 103 / 0.14);
    --border-strong: rgb(16 43 103 / 0.22);
    --border-control: var(--gray-450);

    --white-a10: rgb(255 255 255 / 0.1);
    --white-a12: rgb(255 255 255 / 0.12);
    --white-a16: rgb(255 255 255 / 0.16);
    --white-a18: rgb(255 255 255 / 0.18);
    --white-a20: rgb(255 255 255 / 0.2);
    --white-a22: rgb(255 255 255 / 0.22);
    --white-a32: rgb(255 255 255 / 0.32);
    --white-a86: rgb(255 255 255 / 0.86);
    --white-a90: rgb(255 255 255 / 0.9);

    --shadow-ring: 0 0 0 1px rgb(16 43 103 / 0.08);
    --shadow-ring-hover: 0 0 0 1px rgb(16 43 103 / 0.14);
    --shadow-xs: 0 1px 2px rgb(16 43 103 / 0.06);
    --shadow-sm: 0 1px 2px rgb(16 43 103 / 0.06), 0 2px 4px rgb(16 43 103 / 0.04);
    --shadow-md: 0 2px 4px rgb(16 43 103 / 0.04), 0 8px 16px -4px rgb(16 43 103 / 0.08);
    --shadow-lg: 0 4px 8px -2px rgb(16 43 103 / 0.05), 0 16px 32px -8px rgb(16 43 103 / 0.12);
    --shadow-xl: 0 1px 1px rgb(16 43 103 / 0.03), 0 8px 16px -4px rgb(16 43 103 / 0.06), 0 24px 48px -12px rgb(16 43 103 / 0.16);
    --shadow-btn-primary: inset 0 1px 0 rgb(255 255 255 / 0.16), 0 1px 2px rgb(16 43 103 / 0.24);
    --focus-ring-soft: 0 0 0 3px rgb(36 84 198 / 0.2);

    --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --font-sans-zh: "Inter zh", "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans SC", "Noto Sans CJK SC", sans-serif;
    --font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    --font-body: var(--font-sans);

    --text-display: clamp(2.25rem, 1.454rem + 3.395vw, 4.25rem);  
    --text-h1: clamp(2.125rem, 1.379rem + 3.182vw, 4rem);         
    --text-h2: clamp(1.875rem, 1.33rem + 2.32vw, 3.25rem);        
    --text-h3: clamp(1.375rem, 1.226rem + 0.635vw, 1.75rem);      
    --text-h4: 1.125rem;    
    --text-lead: 1.0625rem; 
    --text-body: 1.0625rem; 
    --text-sm: 0.875rem;    
    --text-xs: 0.8125rem;   
    --text-badge: 0.75rem;  
    --text-btn: 0.9375rem;  
    --text-nav: 0.9375rem;  

    --leading-display: 1.06;
    --leading-h1: 1.08;
    --leading-h2: 1.1;
    --leading-h3: 1.25;
    --leading-h4: 1.35;
    --leading-lead: 1.65;
    --leading-body: 1.65;
    --leading-sm: 1.5;
    --leading-xs: 1.45;
    --leading-badge: 1.3;

    --tracking-display: -0.04em;
    --tracking-h1: -0.04em;
    --tracking-h2: -0.035em;
    --tracking-h3: -0.025em;
    --tracking-h4: -0.01em;
    --tracking-body: 0;
    --tracking-badge: 0.01em;

    --weight-regular: 400;
    --weight-medium: 500;
    --weight-semibold: 600;
    --weight-heading: 600;
    --weight-label: 500;   
    --weight-btn: 600;
    --weight-nav: 500;
    --weight-badge: 500;

    --measure: 42.5rem;    

    --space-0: 0;
    --space-px: 1px;
    --space-0-5: 2px;
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-8: 32px;
    --space-10: 40px;
    --space-12: 48px;
    --space-16: 64px;
    --space-20: 80px;
    --space-24: 96px;
    --space-32: 128px;
    --section-y: clamp(4rem, 2.757rem + 5.304vw, 7rem);   
    --gutter: clamp(1rem, 0.586rem + 1.768vw, 2rem);      
    --container-max: 1200px;
    --grid-gap: 24px;
    --card-pad: 24px;
    --card-pad-compact: 20px;
    --card-pad-large: 32px;
    --card-gap: 24px;
    --header-h: 72px;
    --filter-bar-h: 64px;

    --radius-xs: 4px;     
    --radius-sm: 6px;     
    --radius-md: 8px;     
    --radius-lg: 12px;    
    --radius-xl: 16px;    
    --radius-pill: 999px; 

    --z-content: 0;
    --z-sticky: 20;
    --z-header: 40;
    --z-panel: 50;
    --z-mobile-menu: 60;
    --z-dialog: 80;
    --z-toast: 90;
    --z-skip: 100;

    --dur-instant: 80ms;   
    --dur-fast: 120ms;     
    --dur-base: 180ms;     
    --dur-slow: 260ms;     
    --dur-slide: 600ms;    
    --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-in: cubic-bezier(0.4, 0, 1, 1);
    --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
    
    --motion-y-4: 4px;
    --motion-y-8: 8px;
    --motion-press: 0.98;

    --color-bg: var(--gray-0);
    --color-bg-band: var(--gray-50);
    --color-surface: var(--gray-0);
    --color-surface-raised: var(--gray-100);
    --color-surface-hover: var(--gray-50);
    --color-text: var(--gray-900);
    --color-text-strong: var(--gray-800);
    --color-text-secondary: var(--gray-600);
    --color-text-tertiary: var(--gray-500);
    --color-text-disabled: var(--gray-400);
    --color-text-nav: var(--gray-700);
    --color-text-on-brand: var(--gray-0);
    --color-text-on-dark: var(--gray-0);
    --color-text-on-dark-secondary: var(--navy-text-secondary);
    --color-brand: var(--blue-600);
    --color-brand-hover: var(--blue-700);
    --color-brand-active: var(--blue-800);
    --color-brand-soft: var(--blue-50);
    --color-brand-soft-hover: var(--blue-100);
    --color-brand-text: var(--blue-700);
    
    --color-link: var(--gray-900);
    --color-link-hover: var(--gray-900);
    --link-underline: var(--gray-200);
    --color-focus: var(--blue-600);
    --color-divider: var(--gray-200);
    --color-dark-band: var(--navy-900);
    --color-dark-band-hover: var(--navy-800);

    --btn-primary-bg: var(--gray-900);
    --btn-primary-hover: var(--gray-900);
    --btn-primary-active: var(--gray-800);
    --btn-primary-text: var(--gray-0);
    --radius-btn: var(--radius-pill);

    --accent: var(--color-brand);
    --text: var(--color-text);
    --muted: var(--color-text-secondary);
    --line: var(--gray-200);
    --bg: var(--gray-50);
    --surface: var(--gray-0);
    --surface-raised: var(--gray-100);
    --error: var(--danger-text);
    --success: var(--success-text);
  }

  :lang(zh) {
    --font-body: var(--font-sans-zh);
    --text-display: clamp(2rem, 1.337rem + 2.829vw, 3.5rem);       
    --text-h1: clamp(1.875rem, 1.295rem + 2.475vw, 3.25rem);       
    --text-h2: clamp(1.625rem, 1.211rem + 1.768vw, 2.625rem);      
    --text-h3: clamp(1.25rem, 1.15rem + 0.425vw, 1.5rem);          
    --text-lead: 1.0625rem;  
    --text-body: 1rem;       
    --leading-display: 1.2;
    --leading-h1: 1.25;
    --leading-h2: 1.3;
    --leading-h3: 1.4;
    --leading-h4: 1.45;
    --leading-lead: 1.75;
    --leading-body: 1.75;
    --leading-sm: 1.7;
    --leading-xs: 1.6;
    --leading-badge: 1.4;
    --tracking-display: 0;
    --tracking-h1: 0;
    --tracking-h2: 0;
    --tracking-h3: 0;
    --tracking-h4: 0;
    --tracking-badge: 0;
    --weight-medium: 600;   
    --weight-label: 600;
    --weight-btn: 600;
    --weight-nav: 400;
    --weight-badge: 600;
    --measure: 36em;
  }

  :lang(zh) :is(:lang(en), :lang(de), :lang(nl), :lang(fr), :lang(it), :lang(es)) {
    --font-body: var(--font-sans);
  }
}

/* ---- /css/base.css ---- */
@layer reset, tokens, base, layout, components, pages, utilities;

@layer reset {
  *,
  ::before,
  ::after {
    box-sizing: border-box;
    border-width: 0;
    border-style: solid;
    border-color: currentColor;
  }

  html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    tab-size: 4;
    line-height: 1.6;
  }

  body {
    margin: 0;
    min-height: 100dvh;
  }

  h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd, pre, fieldset, legend, hr {
    margin: 0;
  }

  ul, ol, menu {
    margin: 0;
    padding: 0;
  }

  fieldset,
  legend {
    padding: 0;
  }

  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }

  abbr[title] {
    text-decoration: underline dotted;
  }

  b, strong {
    font-weight: bolder;
  }

  code, kbd, samp, pre {
    font-family: var(--font-mono);
    font-size: 1em;
  }

  small {
    font-size: 80%;
  }

  sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }

  sub { bottom: -0.25em; }
  sup { top: -0.5em; }

  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }

  img, svg, video, canvas, audio, iframe, embed, object, picture {
    display: block;
    vertical-align: middle;
  }

  img, video {
    max-width: 100%;
    height: auto;
  }

  button, input, optgroup, select, textarea {
    font: inherit;
    color: inherit;
    letter-spacing: inherit;
    margin: 0;
    padding: 0;
    background-color: transparent;
    border-radius: 0;
  }

  button, select {
    text-transform: none;
  }

  button,
  [type="button"],
  [type="reset"],
  [type="submit"] {
    -webkit-appearance: button;
    appearance: button;
    background-image: none;
    cursor: pointer;
  }

  :disabled {
    cursor: default;
  }

  ::-moz-focus-inner {
    border-style: none;
    padding: 0;
  }

  :-moz-focusring {
    outline: auto;
  }

  :-moz-ui-invalid {
    box-shadow: none;
  }

  legend {
    padding: 0;
  }

  progress {
    vertical-align: baseline;
  }

  summary {
    display: list-item;
  }

  textarea {
    resize: vertical;
  }

  ::-webkit-inner-spin-button,
  ::-webkit-outer-spin-button {
    height: auto;
  }

  [type="search"] {
    -webkit-appearance: textfield;
    appearance: textfield;
    outline-offset: -2px;
  }

  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }

  ::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit;
  }

  dialog {
    padding: 0;
  }

  :target {
    scroll-margin-block: 5ex;
  }
}

@layer base {
  html {
    font-family: var(--font-body);
    font-size: 100%;
    font-synthesis: none;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--header-h) + var(--space-4));
    background: var(--color-bg);
    color: var(--color-text);
    accent-color: var(--color-brand);
  }

  body {
    font-family: var(--font-body);
    font-size: var(--text-body);
    line-height: var(--leading-body);
    letter-spacing: var(--tracking-body);
    font-weight: var(--weight-regular);
    background: var(--color-bg);
    color: var(--color-text);
    overflow-wrap: break-word;
    -webkit-tap-highlight-color: transparent;
  }

  :lang(zh) {
    text-autospace: normal;
    text-spacing-trim: space-first;
  }

  h1, h2, h3, h4, h5, h6 {
    font-weight: var(--weight-heading);
    color: var(--color-text);
    overflow-wrap: anywhere;
  }

  h1, h2, h3 {
    text-wrap: balance;
    hyphens: auto;
  }

  h1 {
    font-size: var(--text-h1);
    line-height: var(--leading-h1);
    letter-spacing: var(--tracking-h1);
  }

  h2 {
    font-size: var(--text-h2);
    line-height: var(--leading-h2);
    letter-spacing: var(--tracking-h2);
  }

  h3 {
    font-size: var(--text-h3);
    line-height: var(--leading-h3);
    letter-spacing: var(--tracking-h3);
  }

  h4, h5, h6 {
    font-size: var(--text-h4);
    line-height: var(--leading-h4);
    letter-spacing: var(--tracking-h4);
  }

  .display {
    font-size: var(--text-display);
    line-height: var(--leading-display);
    letter-spacing: var(--tracking-display);
    font-weight: var(--weight-heading);
  }

  .lead {
    font-size: var(--text-lead);
    line-height: var(--leading-lead);
    color: var(--color-text-secondary);
  }

  small,
  .text-sm {
    font-size: var(--text-sm);
    line-height: var(--leading-sm);
  }

  .text-xs {
    font-size: var(--text-xs);
    line-height: var(--leading-xs);
  }

  a {
    color: var(--color-link);
    text-decoration-line: none;
    text-decoration-color: var(--link-underline);
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
    transition: color var(--dur-fast) var(--ease-standard), text-decoration-color var(--dur-fast) var(--ease-standard);
  }

  a:hover {
    color: var(--color-link-hover);
    text-decoration-line: underline;
    text-decoration-color: currentColor;
  }

  p a,
  li a:not([class]),
  dd a:not([class]) {
    text-decoration-line: underline;
  }

  ul, ol {
    padding-inline-start: 1.25em;
  }

  ul[role="list"],
  ol[role="list"],
  nav ul,
  nav ol {
    list-style: none;
    padding-inline-start: 0;
  }

  hr {
    border-top: 1px solid var(--color-divider);
  }

  blockquote {
    padding-inline-start: var(--space-4);
    border-inline-start: 2px solid var(--gray-200);
    color: var(--color-text-secondary);
  }

  code {
    font-size: 0.9em;
    padding: 0.1em 0.35em;
    border-radius: var(--radius-xs);
    background: var(--gray-100);
    color: var(--color-text-strong);
  }

  pre {
    overflow: auto;
    padding: var(--space-4);
    border-radius: var(--radius-md);
    background: var(--gray-50);
    box-shadow: var(--shadow-ring);
    font-size: var(--text-xs);
    line-height: 1.6;
  }

  pre code {
    padding: 0;
    background: none;
    font-size: inherit;
  }

  table {
    width: 100%;
    font-size: var(--text-sm);
    line-height: var(--leading-sm);
  }

  th, td {
    text-align: start;
    vertical-align: top;
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--color-divider);
  }

  th {
    font-weight: var(--weight-semibold);
    color: var(--color-text);
  }

  thead th {
    font-size: var(--text-xs);
    font-weight: var(--weight-medium);
    letter-spacing: 0.02em;
    color: var(--color-text-tertiary);
    border-bottom-color: var(--color-text);
  }

  td {
    color: var(--color-text-secondary);
  }

  input:not([type="checkbox"], [type="radio"], [type="range"], [type="file"], [type="color"]),
  select,
  textarea {
    width: 100%;
    min-height: 44px;
    padding: 0 var(--space-3);
    font-size: 1rem;
    line-height: 1.5;
    color: var(--color-text);
    background: var(--color-surface);
    border: 1px solid var(--border-control);
    border-radius: var(--radius-md);
    transition: border-color var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard);
  }

  textarea {
    min-height: 120px;
    padding-block: var(--space-3);
  }

  select {
    -webkit-appearance: none;
    appearance: none;
    padding-inline-end: var(--space-10);
    cursor: pointer;
  }

  select[multiple],
  select[size] {
    min-height: auto;
    padding: var(--space-2);
  }

  input:not([type="checkbox"], [type="radio"]):hover,
  select:hover,
  textarea:hover {
    border-color: var(--gray-600);
  }

  input:not([type="checkbox"], [type="radio"]):focus-visible,
  select:focus-visible,
  textarea:focus-visible {
    outline: none;
    border-color: var(--color-brand);
    box-shadow: var(--focus-ring-soft);
  }

  input[aria-invalid="true"],
  select[aria-invalid="true"],
  textarea[aria-invalid="true"] {
    border-color: var(--danger-solid);
  }

  input[aria-invalid="true"]:focus-visible,
  select[aria-invalid="true"]:focus-visible,
  textarea[aria-invalid="true"]:focus-visible {
    box-shadow: 0 0 0 3px var(--danger-border);
  }

  input:disabled,
  select:disabled,
  textarea:disabled {
    background: var(--gray-50);
    color: var(--color-text-disabled);
    border-color: var(--gray-300);
    cursor: not-allowed;
  }

  ::placeholder {
    color: var(--color-text-tertiary);
    opacity: 1;
  }

  input[type="checkbox"],
  input[type="radio"] {
    width: 18px;
    height: 18px;
    flex: none;
    accent-color: var(--color-brand);
    cursor: pointer;
  }

  label,
  legend {
    color: var(--color-text);
  }

  input[type="file"] {
    font-size: var(--text-sm);
  }

  :focus-visible {
    outline: 2px solid var(--color-focus);
    outline-offset: 2px;
  }

  :focus:not(:focus-visible) {
    outline: none;
  }

  ::selection {
    background: var(--blue-100);
    color: var(--gray-900);
  }

  summary {
    cursor: pointer;
  }

  summary::-webkit-details-marker {
    display: none;
  }

  .skip-link {
    position: absolute;
    inset-inline-start: var(--space-4);
    top: calc(-1 * var(--space-24));
    z-index: var(--z-skip);
    padding: var(--space-3) var(--space-4);
    background: var(--color-surface);
    color: var(--color-text);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-ring), var(--shadow-lg);
    font-weight: var(--weight-medium);
    text-decoration: none;
  }

  .skip-link:focus {
    top: var(--space-2);
  }

  @media (prefers-reduced-motion: reduce) {
    :root {
      --dur-instant: 0ms;
      --dur-fast: 80ms;
      --dur-base: 80ms;
      --dur-slow: 0ms;
      --dur-slide: 0ms;
      --motion-y-4: 0px;
      --motion-y-8: 0px;
      --motion-press: 1;
    }

    html {
      scroll-behavior: auto;
    }
  }
}

@layer utilities {
  [hidden]:not([hidden="until-found"]) {
    display: none;
  }

  .visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
  }
}

/* ---- /css/components.css ---- */
@layer components {
  .icon {
    display: inline-block;
    width: 1em;
    height: 1em;
    flex: none;
    vertical-align: -0.125em;
    color: inherit;
  }
}

@layer layout {
  .container {
    width: min(100% - 2 * var(--gutter), var(--container-max));
    margin-inline: auto;
  }

  .cluster {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--cluster-gap, var(--space-3));
  }
  .cluster--4 { --cluster-gap: var(--space-4); }

  .card-grid {
    display: grid;
    gap: var(--card-gap);
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
  }

  .section {
    padding-block: var(--section-y);
  }

  .section--tight {
    padding-block: var(--space-12);
  }

  .section--flush-top {
    padding-top: 0;
  }

  .band {
    background: var(--color-bg-band);
  }

  .section-head {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    max-width: 44rem;
    margin-bottom: var(--space-10);
  }

  .section-head--row {
    flex-direction: row;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-3) var(--space-6);
    max-width: none;
  }

  .section-head .lead {
    max-width: 40rem;
  }

  .section-head--split {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
    align-items: end;
    gap: var(--space-4) var(--space-16);
    max-width: none;
    margin-bottom: var(--space-16);
  }

  .section-head--split > :only-child {
    grid-column: 1 / -1;
  }

  .section-head--split .lead {
    margin: 0;
  }

  .ev-table {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--color-text);
  }

  .ev-table__row {
    position: relative;
    display: grid;
    grid-template-columns: 10rem minmax(0, 1.2fr) minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-2) var(--space-6);
    padding: var(--space-5) 0;
    border-bottom: 1px solid var(--color-divider);
  }

  .ev-table__date {
    font-size: 1.25rem;
    font-weight: var(--weight-semibold);
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
  }

  .ev-table__link {
    font-size: 1.25rem;
    font-weight: var(--weight-semibold);
    letter-spacing: -0.015em;
    line-height: 1.3;
    color: var(--color-text);
    text-decoration: none;
  }

  .ev-table__link::after {
    content: "";
    position: absolute;
    inset: 0;
  }

  .ev-table__link:focus-visible {
    outline: none;
  }

  .ev-table__row:has(.ev-table__link:focus-visible) {
    outline: 2px solid var(--color-focus);
    outline-offset: 2px;
  }

  .ev-table__meta {
    display: block;
    margin-top: var(--space-1);
    font-size: var(--text-sm);
    color: var(--color-text-tertiary);
  }

  .ev-table__where {
    font-size: var(--text-btn);
    color: var(--color-text-secondary);
  }

  .ev-table__go {
    font-size: var(--text-btn);
    font-weight: var(--weight-semibold);
    color: var(--color-text);
    text-decoration-line: underline;
    text-decoration-color: var(--link-underline);
    text-underline-offset: 4px;
    transition: text-decoration-color var(--dur-fast) var(--ease-standard);
  }

  .ev-table__row:hover .ev-table__go {
    text-decoration-color: currentColor;
  }

  .text-link {
    text-decoration-line: underline;
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--text-btn);
    font-weight: var(--weight-medium);
    color: var(--color-link);
    white-space: nowrap;
  }

  .text-link .icon {
    width: 16px;
    height: 16px;
  }

  @media (pointer: coarse) {
    .text-link {
      min-height: 44px;
    }
  }

  @media (min-width: 1024px) {
    .card-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .card-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  }

  @media (max-width: 1023.98px) {

    .section-head {
      margin-bottom: var(--space-8);
    }

    .section-head--split {
      grid-template-columns: minmax(0, 1fr);
      margin-bottom: var(--space-10);
    }
  }

  @media (max-width: 767.98px) {
    .ev-table__row {
      grid-template-columns: 6.5rem minmax(0, 1fr);
      align-items: start;
    }

    .ev-table__date,
    .ev-table__link {
      font-size: 1.0625rem;
    }

    .ev-table__where,
    .ev-table__go {
      grid-column: 2;
    }

    .ev-table__go {
      display: none;
    }
  }

  @media (max-width: 767.98px) {
    .card-grid {
      grid-template-columns: minmax(0, 1fr);
    }
  }
}

@layer components {
  
  .site-header {
    position: sticky;
    top: 0;
    z-index: var(--z-header);
    height: var(--header-h);
    background: var(--white-a86);
    -webkit-backdrop-filter: saturate(180%) blur(12px);
    backdrop-filter: saturate(180%) blur(12px);
    box-shadow: 0 1px 0 transparent;
    transition: box-shadow var(--dur-base) var(--ease-standard);
  }

  @supports not (backdrop-filter: blur(1px)) {
    .site-header {
      background: var(--color-surface);
    }
  }

  .site-header[data-scrolled] {
    box-shadow: 0 1px 0 var(--border-subtle), var(--shadow-xs);
  }

  .site-header__inner {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    height: 100%;
  }

  .brand {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--color-text);
    font-size: 1.125rem;
    font-weight: var(--weight-semibold);
    letter-spacing: var(--tracking-h4);
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
  }

  .brand:hover {
    color: var(--color-text);
    text-decoration: none;
  }

  .brand__mark {
    width: 28px;
    height: 28px;
    flex: none;
  }

  .brand__text {
    display: flex;
    flex-direction: column;
  }

  .brand__sub {
    font-size: var(--text-xs);
    font-weight: var(--weight-regular);
    letter-spacing: 0;
    color: var(--color-text-secondary);
  }

  .site-nav {
    display: flex;
    align-items: stretch;
    flex: 1 1 auto;
    min-width: 0;
    height: 100%;
  }

  .site-nav__list {
    display: flex;
    align-items: stretch;
    gap: var(--space-1);
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .site-nav__item {
    position: relative;
    display: flex;
    align-items: center;
  }

  .nav-trigger {
    position: relative;
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: var(--space-2) var(--space-3);
    font-size: var(--text-nav);
    font-weight: var(--weight-nav);
    line-height: 1.2;
    color: var(--color-text-nav);
    background: transparent;
    white-space: nowrap;
    transition: color var(--dur-fast) var(--ease-standard);
  }

  .nav-trigger::after {
    content: "";
    position: absolute;
    inset: auto var(--space-3) 6px;
    height: 1.5px;
    background: var(--color-text);
    scale: 0 1;
    transform-origin: left;
    transition: scale 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
  }

  .nav-trigger[aria-expanded="true"],
  .nav-trigger.is-current {
    color: var(--color-text);
  }

  .nav-trigger[aria-expanded="true"]::after {
    scale: 1 1;
  }

  @media (hover: hover) {
    .nav-trigger:hover {
      color: var(--color-text);
    }

    .nav-trigger:hover::after {
      scale: 1 1;
    }
  }

  .site-header__actions {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-inline-start: auto;
    flex: none;
  }

  .site-header__end {
    display: flex;
    align-items: stretch;
    align-self: stretch;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .site-nav__item.site-nav__item--end {
    position: relative;
    display: flex;
    align-items: center;
  }

  .nav-panel.nav-panel--small {
    inset-inline: auto calc(-1 * var(--space-2));
    display: block;
    width: max-content;
    padding: var(--space-3) var(--space-5);
    border: 1px solid var(--color-divider);
    border-radius: 16px;
    box-shadow: var(--shadow-lg);
  }

  .nav-panel--small .nav-list {
    min-width: 11rem;
  }

  .nav-panel--small .nav-link {
    font-size: 1rem;
  }

  button.nav-link {
    width: 100%;
    text-align: start;
    cursor: pointer;
  }

  .nav-link[aria-pressed="true"],
  .nav-link[aria-current="page"] {
    color: var(--color-text);
    font-weight: var(--weight-semibold);
  }

  .btn.site-header__menu-btn {
    display: none;
    margin-inline-start: auto;
  }

  .lang-switch {
    position: relative;
    display: inline-flex;
  }

  .lang-switch select {
    width: auto;
    min-height: 40px;
    padding: 0 var(--space-8) 0 var(--space-3);
    font-size: var(--text-sm);
    font-weight: var(--weight-medium);
    color: var(--color-text-nav);
    background: transparent;
    border-color: transparent;
    cursor: pointer;
  }

  .lang-switch select:hover {
    background: var(--gray-100);
    border-color: transparent;
    color: var(--color-text);
  }

  .lang-switch select:focus-visible {
    outline: 2px solid var(--color-focus);
    outline-offset: 2px;
    box-shadow: none;
  }

  .lang-switch::after,
  .select-wrap::after {
    content: "";
    position: absolute;
    inset-inline-end: 16px;
    top: 50%;
    width: 8px;
    height: 8px;
    border-inline-end: 1.5px solid var(--color-text-nav);
    border-bottom: 1.5px solid var(--color-text-nav);
    translate: 0 -70%;
    rotate: 45deg;
    pointer-events: none;
  }

  .lang-switch::after {
    inset-inline-end: 14px;
  }

  .site-header__menu-btn[aria-expanded="true"] .site-header__menu-open,
  .site-header__menu-btn:not([aria-expanded="true"]) .site-header__menu-close {
    display: none;
  }

  html.nav-open {
    overflow: hidden;
  }

  @media (max-width: 1199.98px) {
    html {
      --header-h: 56px;
    }

    .site-nav,
  .site-header__actions {
      display: none;
    }

    .btn.site-header__menu-btn {
      display: inline-flex;
    }
  }

  .site-nav__item {
    position: static;
  }

  .nav-panel {
    position: absolute;
    top: 100%;
    inset-inline: 0;
    z-index: var(--z-panel);
    display: flex;
    gap: var(--space-10);
    padding: var(--space-8) max(var(--gutter), calc((100% - var(--container-max)) / 2)) var(--space-10);
    background: var(--color-surface);
    border-bottom: 1px solid var(--color-divider);
    box-shadow: 0 40px 60px -48px rgb(11 13 18 / 0.35);
    opacity: 0;
    visibility: hidden;
    translate: 0 -6px;
    transition:
      opacity var(--dur-fast) var(--ease-in),
      translate var(--dur-fast) var(--ease-in),
      visibility 0s linear var(--dur-fast);
  }

  .nav-panel[data-open] {
    opacity: 1;
    visibility: visible;
    translate: 0 0;
    transition:
      opacity 0.25s var(--ease-out),
      translate 0.3s cubic-bezier(0.2, 0.8, 0.2, 1),
      visibility 0s;
  }

  .nav-list {
    min-width: 14rem;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .nav-link {
    display: flex;
    align-items: center;
    min-height: 40px;
    padding: var(--space-1) 0;
    color: var(--gray-700);
    font-size: 1.125rem;
    font-weight: var(--weight-medium);
    letter-spacing: -0.01em;
    line-height: 1.3;
    white-space: nowrap;
    text-decoration-line: none;
    transition: color var(--dur-fast) var(--ease-standard), translate var(--dur-fast) var(--ease-standard);
  }

  .nav-link:hover {
    color: var(--color-text);
    text-decoration-line: none;
    translate: 3px 0;
  }

  :where(.entry, .svc-row, .service-card, .date-block, .badge--category, .service-head) {
    --tile-bg: var(--color-brand-soft);
    --tile-hover: var(--color-brand-soft-hover);
    --tile-border: var(--border-subtle);
    --tile-icon: var(--color-brand-text);
  }

  .is-blue {
    --tile-bg: var(--color-brand-soft);
    --tile-hover: var(--color-brand-soft-hover);
    --tile-border: var(--border-subtle);
    --tile-icon: var(--color-brand-text);
  }

  .is-neutral {
    --tile-bg: var(--gray-50);
    --tile-hover: var(--gray-100);
    --tile-border: var(--border-subtle);
    --tile-icon: var(--color-text-nav);
  }

  .is-stand {
    --tile-bg: var(--cat-stand-bg);
    --tile-hover: var(--cat-stand-hover);
    --tile-border: var(--cat-stand-border);
    --tile-icon: var(--cat-stand-icon);
  }

  .is-translation {
    --tile-bg: var(--cat-translation-bg);
    --tile-hover: var(--cat-translation-hover);
    --tile-border: var(--cat-translation-border);
    --tile-icon: var(--cat-translation-icon);
  }

  .is-freight {
    --tile-bg: var(--cat-freight-bg);
    --tile-hover: var(--cat-freight-hover);
    --tile-border: var(--cat-freight-border);
    --tile-icon: var(--cat-freight-icon);
  }

  .is-catering {
    --tile-bg: var(--cat-catering-bg);
    --tile-hover: var(--cat-catering-hover);
    --tile-border: var(--cat-catering-border);
    --tile-icon: var(--cat-catering-icon);
  }

  .is-host {
    --tile-bg: var(--cat-host-bg);
    --tile-hover: var(--cat-host-hover);
    --tile-border: var(--cat-host-border);
    --tile-icon: var(--cat-host-icon);
  }

  .entry-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr));
    gap: var(--space-2) var(--space-5);
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .entry {
    display: flex;
    align-items: flex-start;
    min-height: 56px;
    padding: var(--space-3) 0 var(--space-2);
    border-top: 1px solid var(--color-text);
    color: var(--color-text);
    font-weight: var(--weight-label);
    line-height: 1.35;
    text-decoration: none;
    transition: color var(--dur-fast) var(--ease-standard);
  }

  .entry:hover {
    color: var(--color-text);
    text-decoration-line: underline;
    text-underline-offset: 4px;
  }

  .svc-list {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--color-divider);
  }

  .svc-list > li {
    border-bottom: 1px solid var(--color-divider);
  }

  .svc-row {
    display: grid;
    gap: var(--space-1);
    padding: var(--space-5) var(--space-4);
    color: var(--color-text);
    text-decoration: none;
    transition: background-color var(--dur-fast) var(--ease-standard);
  }

  .svc-list {
    counter-reset: svc;
  }

  .svc-list > li {
    counter-increment: svc;
  }

  .svc-row::before {
    content: counter(svc, decimal-leading-zero);
    font-size: var(--text-sm);
    font-variant-numeric: tabular-nums;
    color: var(--color-text-tertiary);
  }

  .svc-row:hover {
    background: var(--color-surface-hover);
    color: var(--color-text);
    text-decoration: none;
  }

  .svc-row:focus-visible {
    outline-offset: -2px;
  }

  .svc-row__name {
    margin: 0;
    font-size: var(--text-h3);
    line-height: var(--leading-h3);
    letter-spacing: var(--tracking-h3);
    font-weight: var(--weight-heading);
    transition: color var(--dur-fast) var(--ease-standard);
  }

  .svc-row:hover .svc-row__name {
    color: var(--color-text);
  }

  .svc-row__text {
    font-size: var(--text-sm);
    line-height: var(--leading-sm);
    color: var(--color-text-secondary);
  }

  @media (max-width: 639.98px) {
    .svc-row {
      padding-inline: var(--space-1);
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .entry,
    .svc-row,
    .svc-row__name {
      transition: none;
    }
  }

  .nav-mobile {
    position: fixed;
    inset: var(--header-h) 0 0 0;
    z-index: var(--z-mobile-menu);
    display: flex;
    flex-direction: column;
    background: var(--color-surface);
    opacity: 0;
    visibility: hidden;
    translate: 0 var(--motion-y-8);
    transition:
      opacity var(--dur-fast) var(--ease-in),
      translate var(--dur-fast) var(--ease-in),
      visibility 0s linear var(--dur-fast);
  }

  .nav-mobile[data-open] {
    opacity: 1;
    visibility: visible;
    translate: 0 0;
    transition:
      opacity var(--dur-slow) var(--ease-out),
      translate var(--dur-slow) var(--ease-out),
      visibility 0s;
  }

  .nav-mobile__scroll {
    flex: 1 1 auto;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: var(--space-4) var(--gutter) var(--space-8);
  }

  .nav-mobile__group {
    border-top: 1px solid var(--color-divider);
  }

  .nav-mobile__title {
    margin: 0;
    font-size: 1.375rem;
    font-weight: var(--weight-semibold);
    letter-spacing: -0.02em;
    line-height: 1.3;
  }

  .nav-mobile__toggle {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    min-height: 64px;
    padding: var(--space-4) 0;
    color: var(--color-text);
    text-align: left;
    cursor: pointer;
  }

  .nav-mobile__toggle::after {
    content: "+";
    font-weight: var(--weight-regular);
    color: var(--color-text-tertiary);
    transition: rotate 0.3s var(--ease-standard);
  }

  .nav-mobile__toggle[aria-expanded="true"]::after {
    rotate: 45deg;
  }

  .nav-mobile__list {
    margin: 0;
    padding: 0 0 var(--space-4);
    list-style: none;
  }

  .nav-mobile__list[hidden] {
    display: none;
  }

  .nav-mobile__link {
    display: flex;
    align-items: center;
    min-height: 44px;
    color: var(--color-text-secondary);
    font-size: 1.0625rem;
    font-weight: var(--weight-nav);
    line-height: 1.3;
    text-decoration-line: none;
  }

  .nav-mobile__link:hover,
  .nav-mobile__link:active {
    color: var(--color-text);
    text-decoration-line: none;
  }

  .nav-mobile__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-3) var(--gutter) calc(var(--space-3) + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--border-subtle);
    background: var(--color-surface);
  }

  .nav-mobile__footer .btn-primary {
    flex: 1 1 100%;
    order: 1;
  }

  @media (min-width: 1200px) {
    .nav-mobile {
      display: none;
    }
  }

  .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    min-height: 46px;
    padding: 0 22px;
    border: 1px solid transparent;
    border-radius: var(--radius-btn);
    font-size: var(--text-btn);
    font-weight: var(--weight-btn);
    line-height: 1.2;
    text-decoration-line: none;
    white-space: nowrap;
    cursor: pointer;
    -webkit-user-select: none;
    user-select: none;
    transition:
      background-color var(--dur-fast) var(--ease-standard),
      border-color var(--dur-fast) var(--ease-standard),
      color var(--dur-fast) var(--ease-standard),
      box-shadow 0.25s var(--ease-standard),
      translate 0.25s cubic-bezier(0.2, 0.8, 0.2, 1);
  }

  .btn:hover {
    text-decoration-line: none;
  }

  .btn:focus-visible {
    outline: 2px solid var(--color-focus);
    outline-offset: 2px;
  }

  .btn .icon {
    width: 16px;
    height: 16px;
  }

  .btn-block {
    width: 100%;
  }

  .btn-primary {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background: var(--btn-primary-bg);
    color: var(--btn-primary-text);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.08), 0 6px 16px -6px rgb(11 13 18 / 0.45);
  }

  .btn-primary::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(110deg, transparent 30%, rgb(255 255 255 / 0.28) 48%, rgb(120 160 255 / 0.35) 52%, transparent 70%);
    translate: -120% 0;
    pointer-events: none;
  }

  .btn-primary:hover {
    background: var(--btn-primary-hover);
    color: var(--btn-primary-text);
  }

  .btn-primary:active {
    background: var(--btn-primary-active);
    box-shadow: 0 4px 10px -4px rgb(11 13 18 / 0.4);
  }

  .btn-secondary {
    background: var(--color-surface);
    color: var(--color-text);
    border-color: var(--gray-200);
  }

  .btn-secondary:hover {
    background: var(--color-surface);
    color: var(--color-text);
    border-color: var(--color-text);
  }

  .btn-secondary:active {
    background: var(--gray-50);
  }

  .btn-shine::after {
    animation: btn-sheen-loop 6s var(--ease-standard) 1.2s infinite;
  }

  .btn-shine--slow::after {
    animation-duration: 7s;
    animation-delay: 1.5s;
  }

  @media (hover: hover) {
    .btn-primary:hover {
      translate: 0 -2px;
      box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.1), 0 14px 28px -10px rgb(36 84 198 / 0.55);
    }

    .btn-primary:hover::after {
      animation: btn-sheen 0.9s var(--ease-standard) forwards;
    }

    .btn-secondary:hover {
      translate: 0 -2px;
      box-shadow: 0 10px 22px -12px rgb(11 13 18 / 0.25);
    }
  }

  .btn:active {
    translate: 0 0;
  }

  @keyframes btn-sheen {
    from { translate: -120% 0; }
    to { translate: 120% 0; }
  }

  @keyframes btn-sheen-loop {
    0% { translate: -120% 0; }
    18%, 100% { translate: 120% 0; }
  }

  @media (prefers-reduced-motion: reduce) {
    .btn,
    .nav-trigger::after,
    .nav-link,
    .nav-mobile__toggle::after {
      transition: none;
    }

    .btn:hover,
    .nav-link:hover {
      translate: none;
    }

    .btn-primary::after {
      display: none;
    }
  }

  .btn-ghost {
    background: transparent;
    color: var(--color-text-nav);
  }

  .btn-ghost:hover {
    background: var(--gray-100);
    color: var(--color-text);
  }

  .btn-ghost:active {
    background: var(--gray-200);
  }

  .btn:is(:disabled, [aria-disabled="true"])::after {
    display: none;
  }

  .btn:disabled,
  .btn[aria-disabled="true"] {
    translate: none;
    background: var(--gray-100);
    color: var(--color-text-disabled);
    border-color: transparent;
    box-shadow: none;
    cursor: not-allowed;
    scale: 1;
  }

  .btn[aria-busy="true"] {
    pointer-events: none;
  }

  .btn[aria-busy="true"]::before {
    content: "";
    width: 16px;
    height: 16px;
    flex: none;
    border-radius: var(--radius-pill);
    border: 2px solid currentColor;
    border-inline-end-color: transparent;
    animation: btn-spin 800ms linear infinite;
  }

  .btn[aria-busy="true"] > .icon {
    display: none;
  }

  @keyframes btn-spin {
    to { rotate: 1turn; }
  }

  @keyframes btn-pulse {
    50% { opacity: 0.35; }
  }

  @media (pointer: coarse) {
    .btn { min-height: 44px; }
  }

  @media (prefers-reduced-motion: reduce) {
    .btn[aria-busy="true"]::before {
      border-inline-end-color: currentColor;
      animation: btn-pulse 1200ms ease-in-out infinite;
    }
  }

  .card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--space-5) 0 0;
    border-top: 1px solid var(--color-text);
    color: var(--color-text);
  }

  .card:has(.card-link):hover .card-link {
    text-decoration-line: underline;
  }

  .card-link {
    color: inherit;
    text-decoration: none;
  }

  .card-link:hover {
    color: inherit;
    text-decoration: none;
  }

  .card-link::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: var(--radius-lg);
  }

  .card-link:focus-visible {
    outline: none;
  }

  .card:has(.card-link:focus-visible) {
    outline: 2px solid var(--color-focus);
    outline-offset: 2px;
  }

  .card__actions,
  .card .btn {
    position: relative;
    z-index: 2;
  }

  .card__title {
    font-size: var(--text-h4);
    line-height: var(--leading-h4);
    letter-spacing: var(--tracking-h4);
    font-weight: var(--weight-heading);
  }

  .card__text {
    font-size: var(--text-btn);
    line-height: 1.55;
    color: var(--color-text-secondary);
  }

  .card__meta {
    font-size: var(--text-sm);
    color: var(--color-text-secondary);
  }

  .card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: auto;
  }

  .event-card {
    flex-direction: row;
    align-items: flex-start;
    gap: var(--space-4);
    padding: var(--card-pad-compact);
  }

  .date-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    width: 96px;
    flex: none;
    padding: var(--space-3);
    border-radius: var(--radius-md);
    background: var(--tile-bg);
    color: var(--color-text);
    text-align: center;
    font-variant-numeric: tabular-nums;
    font-family: var(--font-sans);
  }

  .date-block__month {
    font-size: var(--text-xs);
    line-height: 1.2;
    color: var(--color-text-secondary);
  }

  .date-block__days {
    font-size: 1.5rem;
    line-height: 1.1;
    font-weight: var(--weight-semibold);
    letter-spacing: -0.02em;
    white-space: nowrap;
    color: var(--tile-icon);
  }

  .date-block__year {
    font-size: var(--text-badge);
    line-height: 1.2;
    color: var(--color-text-secondary);
  }

  .date-block--span {
    padding-inline: var(--space-2);
  }

  .date-block__range {
    display: flex;
    flex-direction: column;
    align-items: center;
    font-size: var(--text-body);
    line-height: 1.25;
    font-weight: var(--weight-semibold);
    white-space: nowrap;
    color: var(--tile-icon);
  }

  .event-card__body {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
  }

  .event-card__body > .badge {
    align-self: flex-start;
    margin-bottom: var(--space-1);
  }

  .event-card__title {
    font-size: var(--text-h4);
    line-height: var(--leading-h4);
    letter-spacing: var(--tracking-h4);
    font-weight: var(--weight-heading);
    overflow-wrap: anywhere;
  }

  .event-card__city {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--text-sm);
    line-height: 1.4;
    color: var(--color-text-secondary);
  }

  .event-card__city .icon {
    width: 16px;
    height: 16px;
    color: var(--color-text-tertiary);
  }

  .event-card__venue {
    font-size: var(--text-xs);
    line-height: 1.4;
    color: var(--color-text-tertiary);
    overflow-wrap: anywhere;
  }

  .month-heading {
    position: sticky;
    top: var(--header-h);
    z-index: calc(var(--z-sticky) - 10);
    display: flex;
    align-items: baseline;
    gap: var(--space-3);
    margin: 0;
    padding: var(--space-8) 0 var(--space-3);
    background: var(--color-surface);
    font-size: var(--text-btn);
    font-weight: var(--weight-semibold);
    line-height: 1.4;
    letter-spacing: 0;
    color: var(--color-text);
  }

  .month-heading__count,
  .month-heading .badge {
    font-weight: var(--weight-regular);
    color: var(--color-text-tertiary);
    font-variant-numeric: tabular-nums;
  }

  .service-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    padding: var(--card-pad);
    border-radius: var(--radius-lg);
    background: var(--tile-bg);
    box-shadow: 0 0 0 1px var(--tile-border);
    color: var(--color-text);
    text-decoration: none;
    transition: background-color var(--dur-fast) var(--ease-standard), box-shadow var(--dur-base) var(--ease-standard);
  }

  .service-card:hover {
    background: var(--tile-hover);
    box-shadow: var(--shadow-ring-hover), var(--shadow-md);
    color: var(--color-text);
    text-decoration: none;
  }

  .badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    height: 24px;
    padding: 0 var(--space-2);
    border-radius: var(--radius-sm);
    background: var(--gray-100);
    color: var(--color-text-nav);
    font-size: var(--text-xs);
    font-weight: var(--weight-badge);
    line-height: 1;
    letter-spacing: var(--tracking-badge);
    white-space: nowrap;
  }

  .badge:not(:lang(zh)) {
    font-size: var(--text-badge);
  }

  .badge .icon {
    width: 14px;
    height: 14px;
  }

  .badge--category {
    background: transparent;
    color: var(--color-text-secondary);
    box-shadow: inset 0 0 0 1px var(--color-divider);
  }

  .badge--success,
  .badge--warning,
  .badge--danger,
  .badge--info {
    padding: 0 10px;
    border-radius: var(--radius-pill);
    border: 1px solid var(--badge-border);
    background: var(--badge-bg);
    color: var(--badge-text);
  }

  .badge--success { --badge-bg: var(--gray-900); --badge-border: var(--gray-900); --badge-text: var(--gray-0); }
  .badge--warning { --badge-bg: var(--gray-100); --badge-border: var(--gray-100); --badge-text: var(--color-text); }
  .badge--danger { --badge-bg: var(--gray-100); --badge-border: var(--gray-500); --badge-text: var(--color-text); border-style: dashed; }
  .badge--info { --badge-bg: transparent; --badge-border: var(--gray-900); --badge-text: var(--color-text); }

  .badge--count {
    justify-content: center;
    height: 20px;
    min-width: 20px;
    padding: 0 6px;
    border-radius: var(--radius-pill);
    background: var(--gray-100);
    color: var(--color-text-secondary);
    font-family: var(--font-sans);
    font-size: var(--text-badge);
    font-weight: var(--weight-semibold);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0;
  }

  .status {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    font-size: var(--text-sm);
    line-height: 1.4;
    color: var(--color-text-secondary);
  }

  .status .icon {
    width: 16px;
    height: 16px;
  }

  .form {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
  }

  .field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
  }

  .field__label {
    display: flex;
    align-items: baseline;
    gap: var(--space-2);
    font-size: var(--text-sm);
    font-weight: var(--weight-label);
    line-height: 1.4;
    color: var(--color-text);
  }

  .select-wrap {
    position: relative;
  }

  .select-wrap select {
    width: 100%;
  }

  .input-wrap {
    position: relative;
  }

  .input-wrap > .icon {
    position: absolute;
    inset-inline-start: 12px;
    top: 50%;
    width: 18px;
    height: 18px;
    translate: 0 -50%;
    color: var(--color-text-tertiary);
    pointer-events: none;
  }

  .input-wrap > input {
    padding-inline-start: 40px;
  }

  .choice {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-height: 44px;
    font-size: 1rem;
    line-height: 1.4;
    cursor: pointer;
  }

  .choice input {
    margin: 0;
  }

  .choice__text small {
    display: block;
    margin-top: 2px;
    font-size: var(--text-xs);
    color: var(--color-text-secondary);
  }

  .form-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
    padding-top: var(--space-2);
  }

  .segmented {
    position: relative;
    display: inline-flex;
    flex-wrap: wrap;
    max-width: 100%;
    padding: 2px;
    border-radius: var(--radius-md);
    background: var(--gray-100);
  }

  .segmented input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
  }

  .segmented__option {
    display: inline-flex;
    flex: 1 1 auto;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 0 var(--space-3);
    border-radius: var(--radius-sm);
    font-size: var(--text-sm);
    font-weight: var(--weight-medium);
    color: var(--color-text-secondary);
    white-space: nowrap;
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard);
  }

  .segmented__option:hover {
    color: var(--color-text);
  }

  .segmented input:checked + .segmented__option {
    background: var(--color-surface);
    color: var(--color-text);
    box-shadow: var(--shadow-ring), var(--shadow-xs);
  }

  .segmented input:focus-visible + .segmented__option {
    outline: 2px solid var(--color-focus);
    outline-offset: 2px;
  }

  .site-footer {
    padding: var(--space-16) 0 var(--space-8);
    border-top: 1px solid var(--gray-200);
    background: var(--color-surface);
    color: var(--color-text-secondary);
  }

  .site-footer__grid {
    display: grid;
    grid-template-columns: minmax(240px, 1.6fr) repeat(4, minmax(0, 1fr));
    gap: var(--space-8);
  }

  .site-footer__brand {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-4);
  }

  .site-footer .brand {
    font-size: 1.25rem;
  }

  .site-footer .brand__mark {
    width: 32px;
    height: 32px;
  }

  .site-footer__desc {
    max-width: 28em;
    font-size: var(--text-btn);
    line-height: 1.6;
    color: var(--color-text-secondary);
  }

  .site-footer__title {
    margin: 0 0 var(--space-4);
    font-size: var(--text-xs);
    font-weight: var(--weight-medium);
    line-height: 1.4;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-tertiary);
  }

  .site-footer__links {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .site-footer__links a {
    font-size: var(--text-btn);
    line-height: 1.4;
    color: var(--color-text-secondary);
    text-decoration: none;
    overflow-wrap: anywhere;
  }

  .site-footer__links a:hover {
    color: var(--color-text);
    text-decoration: none;
  }

  .site-footer__bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    margin-top: var(--space-12);
    padding-top: var(--space-6);
    border-top: 1px solid var(--border-subtle);
    font-size: var(--text-xs);
  }

  @media (max-width: 1023.98px) {
    .site-footer__grid {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: var(--space-8) var(--space-6);
    }

    .site-footer__brand {
      grid-column: 1 / -1;
    }

    .site-footer__links {
      gap: 0;
    }

    .site-footer__links a {
      display: flex;
      align-items: center;
      min-height: 44px;
      padding-block: var(--space-3);
    }

    .site-footer__title {
      margin-bottom: var(--space-2);
    }

    .site-footer__bottom a {
      display: inline-flex;
      align-items: center;
      min-height: 44px;
    }

    .site-footer .brand,
    .site-footer select {
      min-height: 44px;
    }
  }

  .breadcrumb {
    margin-bottom: var(--space-4);
  }

  .breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: var(--text-sm);
    line-height: 1.4;
    color: var(--color-text-secondary);
  }

  .breadcrumb li {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
  }

  .breadcrumb a {
    display: inline-flex;
    align-items: center;
    gap: var(--space-1);
    color: var(--color-text-secondary);
    text-decoration: none;
  }

  .breadcrumb a:hover {
    color: var(--color-text);
    text-decoration-line: underline;
  }

  .breadcrumb [aria-current="page"] {
    color: var(--color-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .breadcrumb__sep {
    color: var(--gray-400);
  }

  @media (max-width: 767.98px) {
    .breadcrumb li:not(:nth-last-child(2)) {
      display: none;
    }

    .breadcrumb li:nth-last-child(2) .breadcrumb__sep {
      display: none;
    }
  }

  .steps {
    display: flex;
    flex-direction: column;
    list-style: none;
    counter-reset: step;
    margin: 0;
    padding: 0;
  }

  .steps__item {
    position: relative;
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    gap: var(--space-4);
    padding-bottom: var(--space-6);
    counter-increment: step;
  }

  .steps__item:last-child {
    padding-bottom: 0;
  }

  .steps__item::before {
    content: counter(step, decimal-leading-zero);
    padding-top: 6px;
    font-family: var(--font-sans);
    font-size: var(--text-sm);
    font-weight: var(--weight-medium);
    font-variant-numeric: tabular-nums;
    color: var(--color-text-tertiary);
  }

  .steps__title {
    margin-top: 4px;
    font-size: var(--text-h4);
    font-weight: var(--weight-semibold);
    line-height: var(--leading-h4);
    letter-spacing: var(--tracking-h4);
  }

  .steps__text {
    margin-top: var(--space-1);
    font-size: var(--text-btn);
    line-height: 1.55;
    color: var(--color-text-secondary);
  }

  .steps__body {
    min-width: 0;
  }

  @media (min-width: 768px) {
    .steps--row {
      flex-direction: row;
      gap: var(--space-6);
    }

    .steps--row .steps__item {
      flex: 1 1 0;
      align-content: start;   
      grid-template-columns: minmax(0, 1fr);
      gap: var(--space-3);
      padding-bottom: 0;
    }

    .steps--row .steps__item:not(:last-child)::after {
      inset-inline-start: 40px;
      inset-inline-end: calc(-1 * var(--space-6));
      top: 15.5px;
      bottom: auto;
      width: auto;
      height: 1px;
    }

    .steps--row .steps__title {
      margin-top: 0;
    }
  }

  .art {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-radius: var(--radius-xl);
    background: var(--gray-100);
    box-shadow: var(--shadow-ring), var(--shadow-md);
  }

  .art > picture,
  .art > img,
  .art > video {
    width: 100%;
    height: 100%;
  }

  .art img,
  .art video {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .accordion {
    border-top: 1px solid var(--border-subtle);
  }

  .accordion__item {
    border-bottom: 1px solid var(--border-subtle);
  }

  .accordion__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    min-height: 56px;
    padding: var(--space-4) 0;
    font-size: 1rem;
    font-weight: var(--weight-semibold);
    line-height: 1.4;
    color: var(--color-text);
    list-style: none;
    cursor: pointer;
  }

  .accordion__summary::-webkit-details-marker {
    display: none;
  }

  .accordion__summary::after {
    content: "+";
    flex: none;
    font-size: 1.25rem;
    font-weight: var(--weight-regular);
    color: var(--color-text-tertiary);
    transition: rotate var(--dur-base) var(--ease-standard);
  }

  .accordion__item[open] .accordion__summary::after {
    rotate: 45deg;
    color: var(--color-text);
  }

  .accordion__summary:hover {
    color: var(--color-text);
  }

  .accordion__content {
    max-width: var(--measure);
    padding: 0 0 var(--space-5);
    font-size: var(--text-btn);
    line-height: 1.6;
    color: var(--color-text-secondary);
  }

  .accordion__content > * + * {
    margin-top: var(--space-3);
  }

  .accordion__item[open] .accordion__content {
    animation: acc-fade var(--dur-base) var(--ease-out);
  }

  @keyframes acc-fade {
    from { opacity: 0; }
  }

  .notice {
    --notice-bg: var(--gray-50);
    --notice-border: var(--gray-200);
    --notice-text: var(--color-text-secondary);
    --notice-icon: var(--color-text);
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--notice-border);
    border-radius: var(--radius-md);
    background: var(--notice-bg);
    color: var(--notice-text);
    font-size: var(--text-sm);
    line-height: 1.5;
  }

  .notice > .icon {
    width: 18px;
    height: 18px;
    margin-top: 1px;
    color: var(--notice-icon);
  }

  .notice a {
    color: inherit;
    text-decoration-line: underline;
  }

  .notice--warning { --notice-bg: var(--warning-bg); --notice-border: var(--warning-border); --notice-text: var(--warning-text); --notice-icon: var(--warning-solid); }
  .notice--info { --notice-bg: var(--gray-50); --notice-border: var(--gray-200); --notice-text: var(--color-text-secondary); --notice-icon: var(--color-text); }

  .prose {
    max-width: var(--measure);
    font-size: var(--text-body);
    line-height: var(--leading-body);
  }

  .prose > * + * {
    margin-top: var(--space-4);
  }

  .prose > h2 {
    margin-top: var(--space-12);
    font-size: var(--text-h3);
    line-height: var(--leading-h3);
    letter-spacing: var(--tracking-h3);
  }

  .prose > h3 {
    margin-top: var(--space-8);
    font-size: var(--text-h4);
    line-height: var(--leading-h4);
    letter-spacing: var(--tracking-h4);
  }

  .prose > :is(h2, h3):first-child {
    margin-top: 0;
  }

  .prose > :is(h2, h3) + * {
    margin-top: var(--space-3);
  }

  .prose ul,
  .prose ol {
    padding-inline-start: 1.25em;
  }

  .prose li + li {
    margin-top: var(--space-1);
  }

  .prose .lead {
    margin-bottom: var(--space-6);
  }

  .dl {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: var(--space-3) var(--space-6);
    margin: 0;
  }

  .dl dt {
    font-weight: var(--weight-semibold);
    color: var(--color-text);
  }

  .dl dd {
    color: var(--color-text-secondary);
  }

  @media (max-width: 479.98px) {
    .dl {
      grid-template-columns: minmax(0, 1fr);
      gap: var(--space-1);
    }

    .dl dd {
      margin-bottom: var(--space-3);
    }
  }

  .checklist {
    display: grid;
    gap: var(--space-3);
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .checklist li {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    font-size: var(--text-btn);
    line-height: 1.55;
  }

  .checklist .icon {
    width: 16px;
    height: 16px;
    margin-top: 0.3em;
    color: var(--color-brand-text);
  }

  .table-wrap {
    overflow-x: auto;
  }

  .table-wrap table {
    min-width: 520px;
  }

  .table-wrap th:first-child {
    padding-inline-start: 0;
  }

  .table-wrap td:first-child {
    padding-inline-start: 0;
  }

  .page-head {
    padding-block: var(--space-12);
  }

  .page-head__inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-4);
  }

  .page-head__inner .lead {
    max-width: 40rem;
  }

  @media (max-width: 1023.98px) {
    .page-head {
      padding-block: var(--space-8);
    }
  }

  .statement {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    max-width: var(--measure);
    font-size: var(--text-body);
    line-height: var(--leading-body);
    color: var(--color-text-secondary);
  }

  .statement > .icon {
    width: 18px;
    height: 18px;
    margin-top: 0.35em;
    color: var(--color-text-tertiary);
  }

  .statement a {
    color: var(--color-link);
    text-decoration-line: underline;
  }

  .help-more {
    margin-top: var(--space-5);
  }
}

@layer components {
  
  .lang-links ul {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1) var(--space-3);
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: var(--text-sm);
  }

  .lang-links a {
    color: var(--color-text-secondary);
    text-decoration: none;
  }

  .lang-links a:hover {
    color: var(--color-text);
    text-decoration-line: underline;
  }

  .lang-links a[aria-current="page"] {
    color: var(--color-text);
    font-weight: var(--weight-semibold);
  }

  .info-card__list {
    display: grid;
    grid-template-columns: 18px fit-content(8rem) minmax(0, 1fr);
    gap: var(--space-3);
  }

  .info-card__row {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: subgrid;
    align-items: start;
  }

  .info-card__row dt {
    display: contents;
  }

  .info-card__row dt > .icon {
    width: 18px;
    height: 18px;
    margin-top: calc((var(--text-sm) * var(--leading-sm) - 18px) / 2);
    color: var(--color-text-tertiary);
  }

  .info-card__row dt > span,
  .info-card__row dd {
    font-size: var(--text-sm);
    line-height: var(--leading-sm);
  }

  .info-card__row dt > span {
    color: var(--color-text-tertiary);
  }

  .info-card__row dd {
    color: var(--color-text);
    overflow-wrap: anywhere;
  }

  .checklist--muted .icon {
    color: var(--color-text-tertiary);
  }

  .checklist--muted li {
    color: var(--color-text-secondary);
  }

  .filter-bar__chips {
    display: contents;
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .source {
    font-size: var(--text-xs);
    line-height: 1.6;
    color: var(--color-text-tertiary);
  }

  .source a {
    color: var(--color-text-secondary);
  }

  .event-head__zh,
  .event-head__official {
    display: block;
  }

  .event-head__official {
    margin-top: var(--space-1);
    font-size: var(--text-h3);
    line-height: var(--leading-h3);
    letter-spacing: var(--tracking-h3);
    font-weight: var(--weight-medium);
    color: var(--color-text-secondary);
  }

  .table-wrap caption {
    caption-side: top;
  }

  .info-card {
    position: sticky;
    top: calc(var(--header-h) + var(--space-6));
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    padding: var(--card-pad);
    border-radius: var(--radius-lg);
    background: var(--color-surface);
    box-shadow: var(--shadow-ring), var(--shadow-lg);
  }

  .info-card__title {
    font-size: var(--text-h4);
    font-weight: var(--weight-semibold);
    line-height: var(--leading-h4);
    letter-spacing: var(--tracking-h4);
  }

  .info-card__list {
    margin: 0;
  }

  .info-card__actions {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
  }

  @media (max-width: 1023.98px) {
    .info-card {
      position: static;
      box-shadow: var(--shadow-ring), var(--shadow-sm);
    }
  }

}

@layer components {
  :is([data-page^="services"], [data-page^="fees"], [data-page="supplier-guide"], [data-page="about"], [data-page="help"], [data-page="privacy"], [data-page="terms"]) main > .section:not(.band) + .section:not(.band) {
    padding-top: 0;
  }

  .sub-title {
    font-size: var(--text-h3);
    line-height: var(--leading-h3);
    letter-spacing: var(--tracking-h3);
  }

  .page-group {
    margin-top: var(--space-12);
    padding-top: var(--space-10);
    border-top: 1px solid var(--color-divider);
  }

  .page-group > .sub-title + * {
    margin-top: var(--space-4);
  }

  .page-end {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-6) var(--space-10);
    padding-top: var(--space-10);
    border-top: 1px solid var(--color-divider);
  }

  .page-end__copy {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    max-width: 40rem;
  }

  .page-end__copy p {
    color: var(--color-text-secondary);
  }

  @media (max-width: 639.98px) {
    .table-wrap th[scope="row"] {
      position: sticky;
      left: 0;
      z-index: 1;
      box-shadow: inset -1px 0 0 var(--color-divider);
    }
  }
}

@layer components {
  .supplier-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: var(--space-2);
    margin: var(--space-6) 0 0;
    padding: 0 var(--space-4);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    font-size: var(--text-sm);
    line-height: var(--leading-sm);
    color: var(--color-text-secondary);
  }

  .supplier-strip .icon {
    flex: none;
    width: 18px;
    height: 18px;
    color: var(--color-text-tertiary);
  }

  .supplier-strip > span {
    padding-block: var(--space-2);
  }

  .supplier-strip a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-weight: var(--weight-medium);
    text-decoration-line: underline;
  }
}

@layer components {
  @media (max-width: 639.98px) {
    .supplier-strip > span {
      flex: 1 1 0;
      min-width: 0;
    }

    .supplier-strip a {
      flex-basis: 100%;
    }
  }
}
