@layer gf.reset, gf.tokens, gf.theme, gf.base, gf.layout, gf.components, gf.utilities;

@property --gf-pattern-shift {
  syntax: "<length>";
  inherits: false;
  initial-value: 0px;
}

@property --gf-step-offset {
  syntax: "<length>";
  inherits: true;
  initial-value: 0px;
}

@layer gf.reset {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body,
  h1, h2, h3, h4, h5, h6,
  p, figure, blockquote, dl, dd {
    margin: 0;
  }

  img,
  picture,
  svg,
  video,
  iframe {
    display: block;
    max-inline-size: 100%;
  }

  img,
  video {
    block-size: auto;
  }

  input,
  button,
  textarea,
  select {
    font: inherit;
    color: inherit;
  }

  @media (prefers-reduced-motion: reduce) {
    .gf-deco--motion.gf-pattern::after,
    .gf-deco--motion .gf-deco__light,
    .gf-deco--motion .gf-deco__stars::before,
    .gf-deco--motion .gf-deco__stars::after {
      animation: none !important;
    }

    *,
    *::before,
    *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
  }
}

@layer gf.tokens {
  :root {
    --gf-color-primary: #1f3a5f;
    --gf-color-secondary: #2a9fd6;
    --gf-color-accent: #d6336c;
    --gf-color-dark: #14202e;
    --gf-color-light: #f2f5f8;
    --gf-color-text: #1d2733;
    --gf-color-muted: #5b6876;
    --gf-color-bg: #ffffff;
    --gf-color-border: color-mix(in srgb, var(--gf-color-text) 15%, transparent);
    --gf-color-link: var(--gf-color-secondary);
    --gf-color-link-hover: var(--gf-color-primary);
    --gf-color-on-primary: #ffffff;
    --gf-color-on-dark: #ffffff;
    --gf-color-on-light: #1d2733;
    --gf-color-focus: var(--gf-color-accent);
    --gf-color-accent-text: var(--gf-color-accent);
    --gf-color-error: #c62828;

    --gf-font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    --gf-font-heading: var(--gf-font-body);
    --gf-font-weight-body: 400;
    --gf-font-weight-bold: 700;
    --gf-font-weight-heading: 700;
    --gf-line-height: 1.6;
    --gf-line-height-heading: 1.15;

    --gf-fs-xs: clamp(0.75rem, 0.72rem + 0.15vw, 0.8125rem);
    --gf-fs-sm: clamp(0.875rem, 0.85rem + 0.15vw, 0.9375rem);
    --gf-fs-md: clamp(1rem, 0.96rem + 0.2vw, 1.0625rem);
    --gf-fs-lg: clamp(1.125rem, 1.06rem + 0.3vw, 1.25rem);
    --gf-fs-xl: clamp(1.25rem, 1.14rem + 0.55vw, 1.5rem);
    --gf-fs-2xl: clamp(1.5rem, 1.3rem + 1vw, 2rem);
    --gf-fs-3xl: clamp(1.875rem, 1.5rem + 1.8vw, 2.75rem);
    --gf-fs-4xl: clamp(2.25rem, 1.7rem + 2.8vw, 3.75rem);
    --gf-fs-5xl: clamp(2.75rem, 1.9rem + 4.2vw, 4.75rem);
    --gf-root-font-size: 100%;
    --gf-text-size: var(--gf-fs-md);
    --gf-h1-size: var(--gf-fs-4xl);
    --gf-h2-size: var(--gf-fs-3xl);
    --gf-h3-size: var(--gf-fs-2xl);
    --gf-h4-size: var(--gf-fs-xl);
    --gf-h5-size: var(--gf-fs-lg);
    --gf-heading-letter-spacing: normal;
    --gf-heading-hyphens: auto;
    --gf-h1-weight: var(--gf-font-weight-heading);
    --gf-h2-weight: var(--gf-font-weight-heading);
    --gf-h3-weight: var(--gf-font-weight-heading);
    --gf-h4-weight: var(--gf-font-weight-heading);
    --gf-h5-weight: var(--gf-font-weight-heading);
    --gf-h1-letter-spacing: var(--gf-heading-letter-spacing);
    --gf-h2-letter-spacing: var(--gf-heading-letter-spacing);
    --gf-h3-letter-spacing: var(--gf-heading-letter-spacing);
    --gf-h4-letter-spacing: var(--gf-heading-letter-spacing);
    --gf-h5-letter-spacing: var(--gf-heading-letter-spacing);
    --gf-h1-line-height: var(--gf-line-height-heading);
    --gf-h2-line-height: var(--gf-line-height-heading);
    --gf-h3-line-height: var(--gf-line-height-heading);
    --gf-h4-line-height: var(--gf-line-height-heading);
    --gf-h5-line-height: var(--gf-line-height-heading);

    --gf-space-xs: clamp(0.5rem, 0.45rem + 0.25vw, 0.75rem);
    --gf-space-s: clamp(1rem, 0.9rem + 0.5vw, 1.25rem);
    --gf-space-m: clamp(1.5rem, 1.3rem + 1vw, 2rem);
    --gf-space-l: clamp(2rem, 1.6rem + 2vw, 3rem);
    --gf-space-xl: clamp(3rem, 2.4rem + 3vw, 4.5rem);
    --gf-space-xxl: clamp(4rem, 3rem + 5vw, 7rem);
    --gf-flow: var(--gf-space-s);
    --gf-wrapper-padding: var(--gf-space-xl);
    --gf-wrapper-padding-inline: var(--gf-space-m);
    --gf-grid-gap: var(--gf-space-m);
    --gf-grid-min: 16rem;
    --gf-grid-divider-color: var(--gf-color-border);
    --gf-box-padding: var(--gf-space-m);
    --gf-glow-size: 48rem 28rem;
    --gf-stat-size-s: var(--gf-fs-2xl);
    --gf-stat-size-m: var(--gf-fs-4xl);
    --gf-stat-size-l: var(--gf-fs-5xl);
    --gf-stat-font: var(--gf-font-heading);
    --gf-stat-weight: var(--gf-h1-weight);
    --gf-stat-letter-spacing: var(--gf-h1-letter-spacing);
    --gf-stat-gap: 0.375rem;
    --gf-stat-label-size: var(--gf-fs-sm);
    --gf-pricecard-min: 17rem;
    --gf-pricecard-gap: var(--gf-space-m);
    --gf-pricecard-padding: var(--gf-space-m);
    --gf-pricecard-bg: var(--gf-color-light);
    --gf-pricecard-featured-bg: var(--gf-color-primary);
    --gf-pricecard-button-gap: var(--gf-space-m);
    --gf-pricecard-title-size: var(--gf-fs-xl);
    --gf-pricecard-price-size: var(--gf-fs-3xl);
    --gf-glow-position: 88% 8%;
    --gf-glow-strength: 14%;
    --gf-aurora-1: var(--gf-color-primary);
    --gf-aurora-2: var(--gf-color-accent);
    --gf-aurora-3: var(--gf-color-secondary);
    --gf-aurora-strength: 22%;
    --gf-aurora-blur: 4rem;
    --gf-aurora-duration: 18s;
    --gf-pattern-color: currentColor;
    --gf-pattern-strength: 8%;
    --gf-noise-opacity: 0.06;
    --gf-noise-blend: normal;
    --gf-grain-opacity: 0.25;
    --gf-grain-blend: overlay;
    --gf-grain-size: 13rem;
    --gf-grain-speed: 0.9s;
    --gf-grain-image: var(--gf-grain-image-light);
    --gf-grain-image-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='linear' slope='2.4' intercept='-0.7'/%3E%3CfeFuncG type='linear' slope='2.4' intercept='-0.7'/%3E%3CfeFuncB type='linear' slope='2.4' intercept='-0.7'/%3E%3CfeFuncA type='linear' slope='0' intercept='1'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
    --gf-grain-image-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2.4 0 0 0 -0.7'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
    --gf-pattern-size: 2rem;
    --gf-pattern-fade: radial-gradient(ellipse 70% 60% at 50% 35%, #000 30%, transparent 80%);
    --gf-surface-radius: calc(var(--gf-radius) * 2);
    --gf-iconlist-icon-size: 1.15em;
    --gf-social-size: 2.75rem;
    --gf-social-icon-size: 1.25rem;
    --gf-social-gap: var(--gf-space-xs);
    --gf-social-color: currentColor;
    --gf-social-color-hover: var(--gf-color-accent);
    --gf-header-float-offset: 1.5rem;
    --gf-header-float-radius: 999px;
    --gf-header-float-padding: var(--gf-space-m);
    --gf-header-float-bg: color-mix(in srgb, var(--gf-color-bg) 60%, transparent);
    --gf-header-float-blur: 16px;
    --gf-header-float-shadow: 0 1rem 2.5rem -1.25rem rgb(0 0 0 / 0.55);
    --gf-light-color: var(--gf-color-accent);
    --gf-light-strength: 22%;
    --gf-stars-color: var(--gf-color-on-dark);
    --gf-deco-duration: 30s;
    --gf-form-gap: var(--gf-space-s);
    --gf-bento-row-s: 10rem;
    --gf-bento-row-m: 14rem;
    --gf-bento-row-l: 18rem;
    --gf-overlay-fade: linear-gradient(to top, color-mix(in srgb, var(--gf-color-dark) 92%, transparent) 10%, color-mix(in srgb, var(--gf-color-dark) 35%, transparent) 55%, transparent);
    --gf-form-select-arrow-offset: 1.1em;
    --gf-card-text-size: inherit;
    --gf-card-text-line-height: inherit;
    --gf-iconbox-text-size: inherit;
    --gf-iconbox-text-line-height: inherit;
    --gf-form-step-size: 2rem;
    --gf-gallery-gap: var(--gf-space-s);
    --gf-marquee-height: 3.5rem;
    --gf-marquee-gap: var(--gf-space-xl);
    --gf-marquee-duration: 40s;
    --gf-marquee-fade: 12%;
    --gf-reveal-duration: 0.8s;
    --gf-reveal-distance: 2rem;
    --gf-reveal-easing: cubic-bezier(0.2, 0.7, 0.2, 1);
    --gf-reveal-stagger: 0.1s;
    --gf-highlight: linear-gradient(90deg, var(--gf-color-primary), var(--gf-color-accent));
    --gf-pill-border: color-mix(in srgb, currentColor 22%, transparent);
    --gf-pill-bg: color-mix(in srgb, currentColor 6%, transparent);
    --gf-pill-dot: var(--gf-color-accent);
    --gf-box-filled-bg: var(--gf-color-light);
    --gf-box-hover-border: color-mix(in srgb, var(--gf-color-accent) 45%, var(--gf-color-border));
    --gf-box-hover-lift: -0.125rem;
    --gf-overline-color: var(--gf-color-secondary);
    --gf-overline-gap: 0.5em;
    --gf-overline-size: var(--gf-fs-sm);
    --gf-overline-weight: var(--gf-font-weight-bold);
    --gf-overline-letter-spacing: 0.08em;
    --gf-overline-font: var(--gf-font-body);
    --gf-overline-large-size: var(--gf-fs-3xl);
    --gf-overline-heading-size: var(--gf-fs-xl);
    --gf-subline-heading-size: var(--gf-fs-xl);
    --gf-subline-color: var(--gf-color-muted);
    --gf-list-marker-color: var(--gf-color-accent);
    --gf-list-divider-color: var(--gf-color-border);
    --gf-list-item-gap: 0.35em;
    --gf-list-inline-gap: 0.5em 1.5em;
    --gf-rte-heading-space: var(--gf-space-l);
    --gf-table-font-size: 0.9375em;
    --gf-table-cell-padding: 0.75em 1em 0.75em 0;
    --gf-table-head-size: 0.8125rem;
    --gf-link-icon-size: 1.15em;
    --gf-download-color: var(--gf-color-link);
    --gf-download-icon-color: var(--gf-icon-color);
    --gf-download-icon-size: 1.35em;
    --gf-download-meta-color: var(--gf-color-muted);
    --gf-accordion-title-font: var(--gf-font-body);
    --gf-accordion-title-size: var(--gf-text-size);
    --gf-accordion-title-weight: var(--gf-font-weight-bold);
    --gf-accordion-title-color: inherit;
    --gf-accordion-title-color-active: var(--gf-color-accent);
    --gf-accordion-title-padding: var(--gf-space-xs);
    --gf-accordion-icon-size: 0.75em;
    --gf-accordion-indent: calc(var(--gf-accordion-icon-size) + 0.75em);
    --gf-accordion-content-padding: 0 0 var(--gf-space-s);
    --gf-accordion-border: var(--gf-color-border);
    --gf-accordion-bg: color-mix(in srgb, currentColor 6%, transparent);
    --gf-accordion-duration: 0.3s;
    --gf-number-color: var(--gf-color-accent);
    --gf-number-size: var(--gf-fs-3xl);
    --gf-number-weight: var(--gf-font-weight-heading);
    --gf-number-font: var(--gf-font-heading);
    --gf-number-style: decimal-leading-zero;
    --gf-number-gap: var(--gf-space-xs);
    --gf-number-indent: 4rem;
    --gf-number-border: 0;
    --gf-number-padding-top: 0;
    --gf-step-size: 2.25rem;
    --gf-step-gap: var(--gf-space-s);
    --gf-step-bg: color-mix(in srgb, var(--gf-number-color) 16%, transparent);
    --gf-step-color: var(--gf-number-color);
    --gf-step-font: var(--gf-font-body);
    --gf-step-font-size: var(--gf-fs-sm);
    --gf-step-weight: var(--gf-font-weight-bold);
    --gf-step-style: decimal;
    --gf-step-line: 1px solid var(--gf-color-border);
    --gf-step-line-gap: var(--gf-space-xs);
    --gf-shape-height: clamp(2.5rem, 8vw, 7rem);
    --gf-shape-reserve: 1;
    --gf-shape-slant: polygon(0 100%, 100% 0, 100% 100%);
    --gf-shape-ridge: polygon(0 100%, 0 72%, 10% 46%, 19% 64%, 33% 18%, 47% 58%, 58% 36%, 72% 74%, 86% 28%, 100% 60%, 100% 100%);
    --gf-shape-wave: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 100' preserveAspectRatio='none'%3E%3Cpath d='M0 60 C200 10 400 10 600 50 S1000 100 1200 40 V100 H0Z'/%3E%3C/svg%3E");
    --gf-accordion-circle-size: 2rem;
    --gf-accordion-circle-bg: color-mix(in srgb, var(--gf-color-accent) 14%, var(--gf-color-bg));
    --gf-accordion-circle-color: var(--gf-color-accent);
    --gf-accordion-circle-bg-active: var(--gf-color-accent);
    --gf-accordion-circle-color-active: var(--gf-color-on-primary);
    --gf-accordion-circle-icon-size: 1rem;
    --gf-accordion-circle-offset: 0px;
    --gf-accordion-icon-expand: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M12 5v14'/%3E%3C/svg%3E");
    --gf-accordion-icon-collapse: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");
    --gf-btn-font: var(--gf-font-body);
    --gf-btn-weight: var(--gf-font-weight-bold);
    --gf-btn-transform: none;
    --gf-btn-letter-spacing: normal;
    --gf-btn-radius: var(--gf-radius);
    --gf-btn-font-size: var(--gf-fs-sm);
    --gf-btn-font-size-l: var(--gf-fs-md);
    --gf-btn-padding: 0.8em 1.6em;
    --gf-btn-primary-bg-hover: color-mix(in srgb, var(--gf-color-primary) 82%, black);
    --gf-btn-secondary-bg-hover: color-mix(in srgb, var(--gf-color-secondary) 82%, black);
    --gf-btn-accent-bg-hover: color-mix(in srgb, var(--gf-color-accent) 82%, black);
    --gf-btn-outline-color: currentColor;
    --gf-btn-outline-bg-hover: color-mix(in srgb, currentColor 10%, transparent);
    --gf-btn-outline-border-hover: currentColor;
    --gf-btn-outline-color-hover: currentColor;
    --gf-btn-min-height: auto;
    --gf-btn-font-size-s: var(--gf-fs-xs);
    --gf-btn-padding-s: 0.55em 1.1em;
    --gf-btn-min-height-s: var(--gf-btn-min-height);
    --gf-pagination-size: 2.5rem;
    --gf-pagination-color: var(--gf-color-primary);
    --gf-pagination-border: var(--gf-color-border);
    --gf-pagination-active-bg: var(--gf-color-primary);
    --gf-pagination-active-color: var(--gf-color-on-primary);
    --gf-pagination-hover-color: var(--gf-color-accent);
    --gf-steps-size: 2.25rem;
    --gf-steps-color: var(--gf-color-primary);
    --gf-steps-color-on: var(--gf-color-on-primary);
    --gf-steps-line: var(--gf-color-border);
    --gf-newscategories-gap: var(--gf-space-xs) var(--gf-space-s);
    --gf-newscategories-color: var(--gf-color-text);
    --gf-newscategories-color-active: var(--gf-color-accent);
    --gf-newscategories-line: 1px;
    --gf-news-category-color: var(--gf-color-secondary);
    --gf-booknav-color: var(--gf-color-text);
    --gf-booknav-color-hover: var(--gf-color-accent);
    --gf-code-font: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;
    --gf-code-size: 0.875rem;
    --gf-code-bg: #16181d;
    --gf-code-bar-bg: #1f2229;
    --gf-code-color: #e4e6eb;
    --gf-code-muted: #8a909c;
    --gf-code-keyword: #c792ea;
    --gf-code-string: #b5e08b;
    --gf-code-number: #f7a26c;
    --gf-code-title: #82aaff;
    --gf-code-attr: #ffcb6b;
    --gf-code-tag: #ff7a8a;
    --gf-code-radius: var(--gf-radius-l);
    --gf-code-inline-bg: color-mix(in srgb, var(--gf-color-text) 7%, transparent);
    --gf-sticky-top: calc(var(--gf-header-min-height) + var(--gf-space-m));
    --gf-nav-sub-size: 1.75rem;
    --gf-nav-sub-size-desktop: 1.125rem;
    --gf-nav-dropdown-bg: color-mix(in srgb, var(--gf-header-bg) 78%, transparent);
    --gf-nav-dropdown-backdrop: blur(16px) saturate(1.4);
    --gf-nav-dropdown-offset: 0.625rem;
    --gf-nav-dropdown-item-padding: var(--gf-space-xs) var(--gf-space-s);
    --gf-nav-scroll-sub-width: 15rem;
    --gf-nav-sub-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    --gf-btn-padding-l: var(--gf-btn-padding);
    --gf-btn-min-height-l: var(--gf-btn-min-height);
    --gf-btn-line-height: 1.2;
    --gf-icon-color: var(--gf-color-secondary);
    --gf-icon-stroke: 1.75;
    --gf-person-role-color: var(--gf-color-accent);
    --gf-form-border: color-mix(in srgb, var(--gf-color-text) 25%, transparent);
    --gf-form-bg: var(--gf-color-bg);
    --gf-card-bg: var(--gf-color-bg);
    --gf-card-border: 0;
    --gf-card-image-gap: var(--gf-space-xs);
    --gf-card-title-line-height: var(--gf-line-height-heading);
    --gf-card-backdrop: none;
    --gf-glass-bg: color-mix(in srgb, var(--gf-color-bg) 55%, transparent);
    --gf-glass-bg-dark: color-mix(in srgb, var(--gf-color-on-dark) 8%, transparent);
    --gf-glass-border: 1px solid color-mix(in srgb, currentColor 14%, transparent);
    --gf-glass-blur: 14px;
    --gf-glass-highlight: inset 0 1px 0 color-mix(in srgb, white 8%, transparent);
    --gf-card-meta-color: var(--gf-color-muted);
    --gf-card-meta-weight: var(--gf-font-weight-body);
    --gf-iconbox-title-color: inherit;
    --gf-iconbox-title-size: var(--gf-fs-xl);
    --gf-person-title-size: var(--gf-fs-xl);
    --gf-person-image-width: 100%;
    --gf-person-placeholder-bg: color-mix(in srgb, var(--gf-color-primary) 8%, var(--gf-color-bg));
    --gf-person-placeholder-color: color-mix(in srgb, var(--gf-color-primary) 45%, var(--gf-color-bg));
    --gf-icon-size-s: 1.75rem;
    --gf-icon-size-m: 2.75rem;
    --gf-icon-size-l: 4rem;
    --gf-iconbox-gap: var(--gf-space-s);

    --gf-container: 75rem;
    --gf-container-narrow: 48rem;
    --gf-gutter: clamp(1rem, 4vw, 2rem);

    --gf-radius: 0.25rem;
    --gf-radius-l: 0.75rem;
    --gf-shadow: 0 0.25rem 1.5rem color-mix(in srgb, var(--gf-color-dark) 12%, transparent);
    --gf-image-shadow: 0 0.875rem 2rem -0.75rem color-mix(in srgb, var(--gf-color-dark) 45%, transparent);
    --gf-transition: 0.25s ease;

    --gf-frame-bar: 1.875rem;
    --gf-frame-bg: color-mix(in srgb, var(--gf-color-text) 7%, var(--gf-color-bg));
    --gf-frame-border: color-mix(in srgb, var(--gf-color-text) 12%, transparent);
    --gf-frame-radius: 0.75rem;
    --gf-frame-shadow: 0 1.75rem 3.5rem -1.5rem color-mix(in srgb, var(--gf-color-dark) 40%, transparent);
    --gf-frame-dot-1: #ff5f57;
    --gf-frame-dot-2: #febc2e;
    --gf-frame-dot-3: #28c840;
    --gf-frame-phone-width: 20rem;
    --gf-frame-phone-bezel: 0.625rem;
    --gf-frame-phone-radius: 2.5rem;
    --gf-frame-phone-bg: var(--gf-color-dark);

    --gf-header-bg: var(--gf-color-bg);
    --gf-header-color: var(--gf-color-text);
    --gf-header-min-height: 5rem;
    --gf-header-position: relative;
    --gf-header-backdrop: none;
    --gf-header-border: 0;
    --gf-header-padding: var(--gf-space-xs);
    --gf-topbar-bg: var(--gf-color-primary);
    --gf-topbar-color: var(--gf-color-on-primary);
    --gf-footer-bg: transparent;
    --gf-footer-color: inherit;
    --gf-footer-font-size: 1em;
    --gf-bottom-bg: var(--gf-color-dark);
    --gf-bottom-color: var(--gf-color-on-dark);
    --gf-bottom-padding: var(--gf-space-xl);
    --gf-bottom-font-size: 1em;
    --gf-bottom-link-color: currentColor;
    --gf-bottom-link-color-hover: var(--gf-color-accent);
    --gf-bottom-link-decoration: underline;
    --gf-bottom-strong-color: currentColor;

    --gf-nav-color: var(--gf-header-color);
    --gf-nav-color-active: var(--gf-color-accent);
    --gf-nav-font: var(--gf-font-body);
    --gf-nav-font-size: var(--gf-fs-md);
    --gf-nav-font-size-mobile: var(--gf-fs-lg);
    --gf-nav-font-weight: var(--gf-font-weight-body);
    --gf-nav-text-transform: none;
    --gf-nav-letter-spacing: normal;
    --gf-nav-line-color: var(--gf-color-accent);
    --gf-nav-line-size: 2px;
    --gf-nav-line-offset: 0.125rem;
    --gf-nav-gap: var(--gf-space-m);
    --gf-nav-hover-bg: color-mix(in srgb, var(--gf-color-accent) 14%, transparent);
    --gf-nav-hover-padding: 0.5rem 0.75rem;
    --gf-nav-hover-radius: var(--gf-btn-radius);
    --gf-nav-mobile-bg: var(--gf-header-bg);
    --gf-nav-mobile-color: var(--gf-nav-color);
    --gf-nav-mobile-color-active: var(--gf-nav-color-active);
    --gf-nav-mobile-active-bg: transparent;
    --gf-nav-mobile-font-weight: var(--gf-nav-font-weight);
    --gf-nav-mobile-divider: var(--gf-color-border);
    --gf-nav-mobile-padding: var(--gf-space-xs) var(--gf-gutter);
    --gf-nav-mobile-panel-padding: var(--gf-space-xs) 0 var(--gf-space-m);
    --gf-nav-fullscreen-font-size: var(--gf-fs-2xl);
    --gf-nav-mobile-sub-font-size: calc(var(--gf-nav-font-size-mobile) * 0.85);
    --gf-nav-mobile-sub-font-weight: var(--gf-font-weight-body);
    --gf-nav-mobile-sub-color: color-mix(in srgb, var(--gf-nav-mobile-color) 72%, transparent);
    --gf-nav-mobile-sub-padding: 0.45em var(--gf-gutter) 0.45em var(--gf-space-s);
    --gf-nav-panel-width: 22rem;
    --gf-nav-backdrop: color-mix(in srgb, var(--gf-color-dark) 55%, transparent);
    --gf-nav-cta-bg: var(--gf-color-primary);
    --gf-nav-cta-color: var(--gf-color-on-primary);
    --gf-nav-cta-bg-hover: color-mix(in srgb, var(--gf-nav-cta-bg) 82%, black);
    --gf-nav-cta-color-hover: var(--gf-nav-cta-color);
    --gf-nav-cta-height: 2.5rem;
    --gf-nav-cta-padding: 0.5rem 1.125rem;
    --gf-nav-cta-radius: var(--gf-btn-radius);
    --gf-nav-cta-weight: var(--gf-font-weight-bold);
    --gf-nav-cta-offset: var(--gf-space-xs);
    --gf-nav-duration: 0.4s;
    --gf-nav-easing: cubic-bezier(0.2, 0.7, 0.2, 1);
    --gf-topbar-font-size: var(--gf-fs-sm);
    --gf-topbar-font-weight: var(--gf-font-weight-body);
  }
}

@layer gf.base {
  html {
    font-size: var(--gf-root-font-size);
    scroll-behavior: smooth;
    scroll-padding-block-start: calc(var(--gf-header-min-height) + var(--gf-space-s));
  }

  body {
    min-block-size: 100dvb;
    display: flex;
    flex-direction: column;
    background: var(--gf-color-bg);
    color: var(--gf-color-text);
    font-family: var(--gf-font-body);
    font-size: var(--gf-text-size);
    font-weight: var(--gf-font-weight-body);
    line-height: var(--gf-line-height);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }

  h1, h2, h3, h4, h5, h6 {
    font-family: var(--gf-font-heading);
    font-weight: var(--gf-font-weight-heading);
    line-height: var(--gf-line-height-heading);
    text-wrap: balance;
    overflow-wrap: break-word;
    hyphens: var(--gf-heading-hyphens);
  }

  h1 { font-size: var(--gf-h1-size); font-weight: var(--gf-h1-weight); letter-spacing: var(--gf-h1-letter-spacing); line-height: var(--gf-h1-line-height); }
  h2 { font-size: var(--gf-h2-size); font-weight: var(--gf-h2-weight); letter-spacing: var(--gf-h2-letter-spacing); line-height: var(--gf-h2-line-height); }
  h3 { font-size: var(--gf-h3-size); font-weight: var(--gf-h3-weight); letter-spacing: var(--gf-h3-letter-spacing); line-height: var(--gf-h3-line-height); }
  h4 { font-size: var(--gf-h4-size); font-weight: var(--gf-h4-weight); letter-spacing: var(--gf-h4-letter-spacing); line-height: var(--gf-h4-line-height); }
  h5 { font-size: var(--gf-h5-size); font-weight: var(--gf-h5-weight); letter-spacing: var(--gf-h5-letter-spacing); line-height: var(--gf-h5-line-height); }
  h6 { font-size: var(--gf-fs-md); }

  p,
  ul,
  ol,
  dl,
  table,
  blockquote,
  figure {
    margin-block: 0 var(--gf-paragraph-gap, var(--gf-flow));
  }

  :is(p, ul, ol, dl, table, blockquote, figure):last-child {
    margin-block-end: 0;
  }

  p {
    text-wrap: pretty;
  }

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

  a {
    color: var(--gf-color-link);
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.2em;
    transition: color var(--gf-transition);
  }

  a:hover {
    color: var(--gf-color-link-hover);
  }

  strong,
  b {
    font-weight: var(--gf-font-weight-bold);
  }

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

  hr {
    border: 0;
    border-block-start: 1px solid var(--gf-color-border);
    margin-block: var(--gf-space-m);
  }

  .invisible,
  .gf-visually-hidden {
    position: absolute !important;
    inline-size: 1px;
    block-size: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
  }
}

@layer gf.layout {
  .gf-skip-link {
    position: absolute;
    inset-block-start: var(--gf-space-xs);
    inset-inline-start: var(--gf-space-xs);
    z-index: 1000;
    padding: var(--gf-space-xs) var(--gf-space-s);
    background: var(--gf-color-dark);
    color: var(--gf-color-on-dark);
    border-radius: var(--gf-radius);
    translate: 0 -200%;
    transition: translate var(--gf-transition);
  }

  .gf-skip-link:focus {
    translate: 0 0;
  }

  .gf-main {
    flex: 1;
  }

  .gf-main > .mod_article,
  .gf-main .gf-section,
  .gf-footer,
  .gf-bottom,
  .gf-topbar,
  .gf-header {
    display: grid;
    grid-template-columns:
      [full-start] minmax(var(--gf-gutter), 1fr)
      [content-start] min(100% - 2 * var(--gf-gutter), var(--gf-container))
      [content-end] minmax(var(--gf-gutter), 1fr)
      [full-end];
  }

  .gf-main > .mod_article > *,
  .gf-main .gf-section > *,
  .gf-footer > *,
  .gf-bottom > *,
  .gf-topbar > *,
  .gf-header > * {
    grid-column: content;
    min-inline-size: 0;
  }

  :is(.gf-main > .mod_article, .gf-main .gf-section, .gf-footer, .gf-bottom) > * {
    margin-block: 0 var(--gf-flow);
  }

  :is(.gf-main > .mod_article, .gf-main .gf-section, .gf-footer, .gf-bottom) > :last-child {
    margin-block-end: 0;
  }

  :is(.gf-main > .mod_article, .gf-main .gf-section, .gf-footer, .gf-bottom) > :has(+ [class*="gf-mt-"]) {
    margin-block-end: 0;
  }

  .gf-main > .mod_article:last-child > :last-child:not(.gf-full, .gf-section) {
    margin-block-end: var(--gf-space-xl);
  }

  :is(.gf-main > .mod_article, .gf-main .gf-section, .gf-footer, .gf-bottom) > .gf-full:has(+ .gf-full) {
    margin-block-end: 0;
  }

  :is(.gf-main > .mod_article, .gf-main .gf-section, .gf-footer, .gf-bottom) > .gf-full {
    grid-column: full;
  }

  .gf-main > .mod_article:not(.gf-section) + .mod_article:not(.gf-section) {
    margin-block-start: var(--gf-flow);
  }

  .gf-main > .mod_article > .gf-section {
    grid-column: full;
  }

  .gf-main .gf-section {
    position: relative;
    color: var(--gf-color-text);
  }

  .gf-main .gf-section > :not(.gf-wrapper__media, .gf-wrapper__overlay, .gf-wrapper__deco, .gf-video-toggle) {
    position: relative;
    z-index: 1;
  }

  .gf-main .gf-section > :is(.gf-wrapper__media, .gf-wrapper__overlay, .gf-wrapper__deco) {
    grid-area: auto;
    margin: 0;
  }

  .gf-main .gf-section:last-child > :last-child:not(.gf-full) {
    margin-block-end: 0;
  }

  .gf-main .gf-section--boxed {
    inline-size: min(100% - 2 * var(--gf-gutter), var(--gf-container));
    margin-inline: auto;
  }

  .gf-main .gf-section.gf-inner-narrow {
    --gf-container: var(--gf-container-narrow);
  }

  .gf-main .gf-section.gf-inner-full > * {
    grid-column: full;
  }

  .gf-main .gf-section[class*="gf-minh-"] {
    align-content: center;
  }

  .gf-main .gf-section.gf-valign-start { align-content: start; }
  .gf-main .gf-section.gf-valign-end { align-content: end; }

  .gf-topbar {
    background: var(--gf-topbar-bg);
    color: var(--gf-topbar-color);
    font-size: var(--gf-topbar-font-size);
    font-weight: var(--gf-topbar-font-weight);
  }

  .gf-topbar__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--gf-space-xs) var(--gf-space-m);
    padding-block: var(--gf-space-xs);
  }

  .gf-topbar a {
    color: inherit;
    text-decoration: none;
  }

  .gf-topbar a:hover {
    text-decoration: underline;
  }

  .gf-topbar :is(p, ul) {
    margin: 0;
  }

  .gf-header {
    position: var(--gf-header-position);
    inset-block-start: 0;
    z-index: 100;
    border-block-end: var(--gf-header-border);
    color: var(--gf-header-color);
  }

  .gf-header::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background: var(--gf-header-bg);
    -webkit-backdrop-filter: var(--gf-header-backdrop);
    backdrop-filter: var(--gf-header-backdrop);
    pointer-events: none;
  }

  .gf-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gf-space-m);
    min-block-size: var(--gf-header-min-height);
    padding-block: var(--gf-header-padding);
  }

  .gf-header__brand {
    display: flex;
    align-items: center;
    gap: var(--gf-space-s);
  }

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

  .gf-header__actions > * {
    margin: 0;
  }

  .gf-header__brand :is(p, figure) {
    display: flex;
    margin: 0;
  }

  .gf-header__brand img {
    max-block-size: calc(var(--gf-header-min-height) - 2 * var(--gf-space-xs));
    inline-size: auto;
  }

  .gf-footer {
    background: var(--gf-footer-bg);
    color: var(--gf-footer-color);
    font-size: var(--gf-footer-font-size);
  }

  .gf-bottom {
    --gf-color-border: color-mix(in srgb, currentColor 20%, transparent);
    background: var(--gf-bottom-bg);
    color: var(--gf-bottom-color);
    font-size: var(--gf-bottom-font-size);
    padding-block: var(--gf-bottom-padding);
  }

  .gf-bottom a {
    color: var(--gf-bottom-link-color);
    text-decoration-line: var(--gf-bottom-link-decoration);
  }

  .gf-bottom a:hover {
    color: var(--gf-bottom-link-color-hover);
  }

  .gf-bottom :is(strong, b) {
    color: var(--gf-bottom-strong-color);
  }

  .gf-bottom a:hover :is(strong, b) {
    color: inherit;
  }
}

@layer gf.components {

  .gf-icon {
    display: inline-block;
    flex: none;
    inline-size: 1em;
    block-size: 1em;
    vertical-align: -0.125em;
    fill: none;
    stroke: currentColor;
    stroke-width: var(--gf-icon-stroke);
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .gf-icon-color-primary { --gf-icon-color: var(--gf-color-primary); }
  .gf-icon-color-secondary { --gf-icon-color: var(--gf-color-secondary); }
  .gf-icon-color-accent { --gf-icon-color: var(--gf-color-accent); }

  .gf-scheme-dark {
    --gf-icon-color: var(--gf-color-on-dark);
  }

  .gf-topbar .gf-iconlist__items {
    gap: 0.25em 2em;
  }

  .content-gf-iconbox {
    display: flex;
    flex-direction: column;
    gap: var(--gf-iconbox-gap);
  }

  .gf-iconbox--left {
    flex-direction: row;
    align-items: flex-start;
  }

  .gf-text-center.gf-iconbox--top {
    align-items: center;
  }

  .gf-icon-size-s { --gf-icon-size: var(--gf-icon-size-s); }
  .gf-icon-size-m { --gf-icon-size: var(--gf-icon-size-m); }
  .gf-icon-size-l { --gf-icon-size: var(--gf-icon-size-l); }

  .gf-iconbox__icon {
    display: grid;
    place-items: center;
    flex: none;
    inline-size: var(--gf-icon-size);
    block-size: var(--gf-icon-size);
    font-size: var(--gf-icon-size);
    color: var(--gf-icon-color);
  }

  :is(.gf-icon-style-soft, .gf-icon-style-filled, .gf-icon-style-outline) .gf-iconbox__icon {
    font-size: calc(var(--gf-icon-size) * 0.5);
    border-radius: 50%;
  }

  .gf-icon-style-soft .gf-iconbox__icon {
    background: color-mix(in srgb, var(--gf-icon-color) 14%, transparent);
  }

  .gf-icon-style-filled .gf-iconbox__icon {
    background: var(--gf-icon-color);
    color: var(--gf-color-on-dark);
  }

  .gf-icon-style-outline .gf-iconbox__icon {
    border: 2px solid currentColor;
  }

  .gf-iconbox__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-self: stretch;
    min-inline-size: 0;
  }

  .gf-iconbox__body > :is(h1, h2, h3, h4, h5, h6) {
    font-size: var(--gf-iconbox-title-size);
    color: var(--gf-iconbox-title-color);
    hyphens: manual;
  }

  .gf-iconbox__body > .rte {
    font-size: var(--gf-iconbox-text-size);
    line-height: var(--gf-iconbox-text-line-height);
  }

  .gf-iconbox__body > * {
    margin-block: 0 var(--gf-space-xs);
  }

  .gf-iconbox__body > :last-child {
    margin-block-end: 0;
  }

  .gf-iconbox__body > .gf-iconbox__link {
    margin-block-start: auto;
  }

  .gf-iconbox__link a {
    font-weight: var(--gf-font-weight-bold);
  }

  .gf-stat__value {
    margin: 0 0 var(--gf-stat-gap);
    color: var(--gf-stat-color, var(--gf-color-text));
    font-family: var(--gf-stat-font);
    font-size: var(--gf-stat-size);
    font-weight: var(--gf-stat-weight);
    font-variant-numeric: tabular-nums;
    letter-spacing: var(--gf-stat-letter-spacing);
    line-height: 1;
  }

  .gf-stat__prefix {
    margin-inline-end: 0.12em;
  }

  .gf-stat__suffix {
    margin-inline-start: 0.04em;
  }

  .gf-stat__label {
    margin: 0;
    color: var(--gf-stat-label-color, var(--gf-color-muted));
    font-size: var(--gf-stat-label-size);
    line-height: 1.4;
  }

  .gf-pricecards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(var(--gf-pricecard-min), 100%), 1fr));
    gap: var(--gf-pricecard-gap);
  }

  .content-gf-pricecard {
    display: flex;
    block-size: 100%;
  }

  .gf-pricecard {
    position: relative;
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: var(--gf-space-xs);
    padding: var(--gf-pricecard-padding);
    border: 1px solid var(--gf-color-border);
    border-radius: var(--gf-radius);
    background: var(--gf-pricecard-bg);
    color: var(--gf-color-text);
  }

  .gf-pricecard > * {
    margin: 0;
  }

  .gf-pricecard--featured {
    --gf-list-marker-color: var(--gf-pricecard-featured-marker, currentColor);
    --gf-pricecard-badge-bg: var(--gf-pricecard-featured-badge-bg, color-mix(in srgb, var(--gf-color-on-dark) 18%, transparent));
    --gf-pricecard-badge-color: var(--gf-pricecard-featured-badge-color, var(--gf-color-on-dark));
    border-color: var(--gf-pricecard-featured-bg);
    background: var(--gf-pricecard-featured-bg);
  }

  .gf-pricecard__title {
    font-size: var(--gf-pricecard-title-size);
  }

  .gf-pricecard:has(> .gf-pricecard__badge) > .gf-pricecard__title {
    padding-inline-end: var(--gf-pricecard-badge-space, 7rem);
  }

  .gf-pricecard__text {
    min-block-size: var(--gf-pricecard-text-height, 0);
    color: var(--gf-color-muted);
  }

  .gf-pricecard__price {
    margin-block-start: var(--gf-space-xs);
    font-family: var(--gf-font-heading);
    font-size: var(--gf-pricecard-price-size);
    font-weight: var(--gf-h1-weight);
    letter-spacing: var(--gf-h1-letter-spacing);
    line-height: 1.1;
  }

  .gf-pricecard__price--text {
    font-size: var(--gf-fs-2xl);
  }

  .gf-pricecard__period {
    font-size: 0.5em;
    letter-spacing: 0;
  }

  .gf-pricecard__tax {
    color: var(--gf-color-muted);
    font-family: var(--gf-font-body);
    font-size: var(--gf-fs-sm);
    font-weight: var(--gf-font-weight-body);
    letter-spacing: 0;
  }

  .gf-pricecard__extra {
    font-size: var(--gf-fs-lg);
    font-weight: var(--gf-font-weight-bold);
  }

  .gf-pricecard__badge {
    position: absolute;
    inset-block-start: var(--gf-pricecard-badge-offset, var(--gf-pricecard-padding));
    inset-inline-end: var(--gf-pricecard-badge-offset, var(--gf-pricecard-padding));
    padding: 0.125rem 0.5rem;
    border-radius: 0.375rem;
    background: var(--gf-pricecard-badge-bg, color-mix(in srgb, var(--gf-color-accent) 14%, transparent));
    color: var(--gf-pricecard-badge-color, var(--gf-color-accent-text));
    font-size: var(--gf-fs-xs);
    font-weight: var(--gf-font-weight-bold);
  }

  .gf-pricecard__features {
    margin-block: var(--gf-space-s);
    padding-block-start: var(--gf-space-s);
    border-block-start: 1px solid var(--gf-color-border);
  }

  .gf-pricecard__button {
    margin-block-start: auto;
    inline-size: 100%;
  }

  .gf-pricecard:not(:has(.gf-pricecard__features)) .gf-pricecard__price {
    margin-block-start: auto;
  }

  .gf-pricecard:not(:has(.gf-pricecard__features)) .gf-pricecard__button {
    margin-block-start: var(--gf-pricecard-button-gap);
  }

  .gf-pricecard--featured .gf-pricecard__button:is(.gf-btn--primary, .gf-btn--accent) {
    border-color: var(--gf-color-on-dark);
    background: var(--gf-color-on-dark);
    color: var(--gf-color-dark);
  }

  .gf-grid:not(.gf-grid--bento) > .gf-grid__item:has(> .content-gf-pricecard),
  .gf-grid:not(.gf-grid--bento) > .gf-grid__item > .content-gf-pricecard,
  :is(.gf-grid:not(.gf-grid--bento) > .gf-grid__item > .content-gf-pricecard, .gf-pricecards) > .gf-pricecard {
    display: grid;
    grid-row: span 6;
    grid-template-rows: subgrid;
    grid-template-columns: minmax(0, 1fr);
    row-gap: 0;
  }

  .gf-grid:not(.gf-grid--bento):has(> .gf-grid__item > .content-gf-pricecard) {
    row-gap: 0;
    margin-block-end: calc(-1 * var(--gf-grid-gap));
  }

  .gf-grid:not(.gf-grid--bento) > .gf-grid__item:has(> .content-gf-pricecard) {
    margin-block-end: var(--gf-grid-gap);
  }

  .gf-pricecards {
    row-gap: 0;
    margin-block-end: calc(-1 * var(--gf-pricecard-gap));
  }

  .gf-pricecards > .gf-pricecard {
    margin-block-end: var(--gf-pricecard-gap);
  }

  :is(.gf-grid:not(.gf-grid--bento) > .gf-grid__item > .content-gf-pricecard, .gf-pricecards) > .gf-pricecard > :not(.gf-pricecard__badge) {
    margin-block-start: var(--gf-space-xs);
  }

  :is(.gf-grid:not(.gf-grid--bento) > .gf-grid__item > .content-gf-pricecard, .gf-pricecards) > .gf-pricecard > .gf-pricecard__title {
    grid-row: 1;
    margin-block-start: 0;
  }

  :is(.gf-grid:not(.gf-grid--bento) > .gf-grid__item > .content-gf-pricecard, .gf-pricecards) > .gf-pricecard > .gf-pricecard__text {
    grid-row: 2;
  }

  :is(.gf-grid:not(.gf-grid--bento) > .gf-grid__item > .content-gf-pricecard, .gf-pricecards) > .gf-pricecard > .gf-pricecard__price {
    grid-row: 3;
    margin-block-start: calc(2 * var(--gf-space-xs));
  }

  :is(.gf-grid:not(.gf-grid--bento) > .gf-grid__item > .content-gf-pricecard, .gf-pricecards) > .gf-pricecard > .gf-pricecard__extra {
    grid-row: 4;
  }

    :is(.gf-grid:not(.gf-grid--bento) > .gf-grid__item > .content-gf-pricecard, .gf-pricecards) > .gf-pricecard > .gf-pricecard__features {
    grid-row: 5;
    margin-block: calc(var(--gf-space-s) + var(--gf-space-xs)) var(--gf-space-s);
  }

  :is(.gf-grid:not(.gf-grid--bento) > .gf-grid__item > .content-gf-pricecard, .gf-pricecards) > .gf-pricecard > .gf-pricecard__button {
    grid-row: 6;
    align-self: end;
    margin-block-start: var(--gf-pricecard-button-gap);
  }

  :is(.gf-grid:not(.gf-grid--bento) > .gf-grid__item > .content-gf-pricecard, .gf-pricecards) > .gf-pricecard:has(> .gf-pricecard__features) > .gf-pricecard__button {
    margin-block-start: var(--gf-space-xs);
  }

  .gf-stat-size-s { --gf-stat-size: var(--gf-stat-size-s); }
  .gf-stat-size-m { --gf-stat-size: var(--gf-stat-size-m); }
  .gf-stat-size-l { --gf-stat-size: var(--gf-stat-size-l); }
  .gf-stat-color-primary { --gf-stat-color: var(--gf-color-primary); }
  .gf-stat-color-secondary { --gf-stat-color: var(--gf-color-secondary); }
  .gf-stat-color-accent { --gf-stat-color: var(--gf-color-accent); }

  .gf-scheme-dark :is(.gf-stat-color-primary, .gf-stat-color-secondary) {
    --gf-stat-color: var(--gf-color-on-dark);
  }

  .content-gf-person figure {
    max-inline-size: var(--gf-person-image-width);
    margin: 0 0 var(--gf-space-s);
  }

  .content-gf-person img {
    inline-size: 100%;
  }

  .gf-person__placeholder {
    display: grid;
    place-items: center;
    max-inline-size: var(--gf-person-image-width);
    margin: 0 0 var(--gf-space-s);
    aspect-ratio: var(--gf-person-ratio, 1);
    background: var(--gf-person-placeholder-bg);
    color: var(--gf-person-placeholder-color);
    container-type: inline-size;
  }

  .gf-person__placeholder span {
    font-family: var(--gf-font-heading);
    font-size: 30cqi;
    line-height: 1;
  }


  .gf-person__body > :is(h1, h2, h3, h4, h5, h6) {
    margin: 0;
    font-size: var(--gf-person-title-size);
    hyphens: manual;
  }

  .gf-person__role {
    margin: 0.35em 0 0.5em;
    font-weight: var(--gf-font-weight-bold);
    color: var(--gf-person-role-color);
  }

  .gf-iconlist__items {
    display: flex;
    flex-direction: column;
    gap: 0.5em;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .gf-iconlist--inline .gf-iconlist__items {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.5em 1.5em;
  }

  .gf-iconlist--lines .gf-iconlist__items {
    gap: 0;
    font-size: var(--gf-iconlist-lines-font-size, inherit);
  }

  .gf-iconlist--lines .gf-iconlist__item {
    padding-block: var(--gf-iconlist-lines-padding, 0.6em);
  }

  .gf-iconlist--lines .gf-iconlist__item + .gf-iconlist__item {
    border-block-start: 1px solid var(--gf-list-divider-color);
  }

  .gf-text-center .gf-iconlist__items {
    align-items: center;
    justify-content: center;
  }

  .gf-iconlist__item {
    display: flex;
    align-items: baseline;
    gap: 0.6em;
  }

  .gf-icon--image {
    object-fit: contain;
  }

  .gf-iconbox__icon--image,
  :is(.gf-icon-style-soft, .gf-icon-style-filled, .gf-icon-style-outline) .gf-iconbox__icon--image {
    font-size: var(--gf-icon-size);
    border: 0;
    border-radius: 0;
    background: none;
  }

  .gf-iconlist__item .gf-icon {
    font-size: var(--gf-iconlist-icon-size);
    color: var(--gf-icon-color);
    align-self: center;
  }

  .gf-iconlist__item a {
    color: inherit;
    text-decoration: none;
  }

  .gf-iconlist__item a:hover {
    text-decoration: underline;
  }

  form .widget {
    margin-block: 0 var(--gf-space-s);
  }

  form .widget > label,
  form fieldset > legend {
    display: block;
    margin-block-end: 0.35em;
    padding: 0;
    font-size: var(--gf-fs-sm);
    font-weight: var(--gf-font-weight-bold);
  }

  form fieldset {
    margin: 0;
    padding: 0;
    border: 0;
    min-inline-size: 0;
  }

  form:has(.gf-field-half) :is(.formbody, fieldset) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--gf-form-gap);
  }

  form:has(.gf-field-half) :is(.formbody, fieldset) > * {
    grid-column: 1 / -1;
  }

  form:has(.gf-field-half) :is(.formbody, fieldset) > .widget.gf-field-half {
    grid-column: auto;
  }

  form:has(.gf-field-half) .widget.gf-field-half {
    display: flex;
    flex-direction: column;
  }

  form:has(.gf-field-half) .widget.gf-field-half > label {
    flex: 1 0 auto;
  }

  .gf-form-numbered form {
    counter-reset: gf-fieldset;
  }

  .gf-form-numbered fieldset {
    counter-increment: gf-fieldset;
    margin-block-end: var(--gf-space-m);
    border-block-start: 1px solid var(--gf-color-border);
  }

  .gf-form-numbered fieldset:first-of-type {
    border-block-start: 0;
  }

  .gf-form-numbered fieldset > legend {
    display: flex;
    align-items: center;
    gap: 0.75em;
    margin-block-end: var(--gf-space-s);
    font-family: var(--gf-font-heading);
    font-size: var(--gf-fs-lg);
    font-weight: var(--gf-font-weight-heading);
  }

  .gf-form-numbered fieldset > legend::before {
    content: counter(gf-fieldset);
    display: grid;
    place-items: center;
    flex: none;
    inline-size: var(--gf-form-step-size);
    block-size: var(--gf-form-step-size);
    border-radius: 50%;
    background: color-mix(in srgb, var(--gf-color-accent) 16%, transparent);
    color: var(--gf-color-accent);
    font-family: var(--gf-font-body);
    font-size: var(--gf-fs-sm);
  }

  @container (width < 36rem) {
    .gf-row-span-2, .gf-row-span-3 { grid-row: auto; }
  }

  @media (width < 40rem) {
    form:has(.gf-field-half) :is(.formbody, fieldset) > .widget.gf-field-half {
      grid-column: 1 / -1;
    }
  }

  form :is(input:not([type="checkbox"], [type="radio"], [type="range"], [type="submit"], [type="hidden"], [type="file"]), select, textarea) {
    inline-size: 100%;
    padding: 0.7em 0.9em;
    border: 1px solid var(--gf-form-border);
    border-radius: var(--gf-radius);
    background: var(--gf-form-bg);
    color: var(--gf-color-text);
    line-height: 1.4;
    transition: border-color var(--gf-transition), box-shadow var(--gf-transition);
  }

  form textarea {
    min-block-size: 8rem;
    resize: vertical;
  }

  form select:not([multiple]) {
    -webkit-appearance: none;
    appearance: none;
    padding-inline-end: calc(var(--gf-form-select-arrow-offset) + 1.5em);
    background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
    background-position: calc(100% - var(--gf-form-select-arrow-offset) - 0.3em) 50%, calc(100% - var(--gf-form-select-arrow-offset)) 50%;
    background-size: 0.3em 0.3em;
    background-repeat: no-repeat;
  }

  form :is(input, select, textarea):focus-visible {
    outline: none;
    border-color: var(--gf-color-secondary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--gf-color-secondary) 25%, transparent);
  }

  form :is(input[type="checkbox"], input[type="radio"]) {
    flex: none;
    inline-size: 1.1em;
    block-size: 1.1em;
    margin: 0;
    translate: 0 0.15em;
    accent-color: var(--gf-color-primary);
  }

  form :is(.checkbox_container, .radio_container) > span {
    display: inline-flex;
    align-items: baseline;
    gap: 0.45em;
    margin-inline-end: 1.25em;
  }

  form :is(.checkbox_container, .radio_container) > span label {
    font-size: var(--gf-fs-md);
    font-weight: var(--gf-font-weight-body);
  }

  form span.mandatory {
    color: var(--gf-color-accent);
  }

  form .error {
    color: var(--gf-color-error);
    font-size: var(--gf-fs-sm);
  }

  form :is(input, select, textarea).error {
    border-color: var(--gf-color-error);
  }

  form .help {
    margin-block-start: 0.35em;
    font-size: var(--gf-fs-sm);
    color: var(--gf-color-muted);
  }

  .mod_newslist:has(.layout_latest) {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%), 1fr));
    gap: var(--gf-space-m);
  }

  .mod_newslist:has(.layout_latest) > :not(.layout_latest) {
    grid-column: 1 / -1;
  }

  .layout_latest {
    display: flex;
    flex-direction: column;
    padding: var(--gf-space-m);
    border-radius: var(--gf-radius);
    border: var(--gf-card-border);
    background: var(--gf-card-bg);
    box-shadow: var(--gf-shadow);
    color: var(--gf-color-text);
    -webkit-backdrop-filter: var(--gf-card-backdrop);
    backdrop-filter: var(--gf-card-backdrop);
  }

  .layout_latest > * {
    margin-block: 0 var(--gf-space-xs);
  }

  .layout_latest .info {
    order: 9;
    margin: auto 0 0;
    padding-block-start: var(--gf-space-xs);
    border-block-start: 1px solid var(--gf-color-border);
    font-size: var(--gf-fs-xs);
    font-weight: var(--gf-card-meta-weight);
    color: var(--gf-card-meta-color);
  }

  .layout_latest h2 {
    font-size: var(--gf-fs-xl);
    line-height: var(--gf-card-title-line-height);
  }

  .layout_latest .content-text {
    font-size: var(--gf-card-text-size);
    line-height: var(--gf-card-text-line-height);
  }

  .layout_latest > figure {
    margin-block-end: var(--gf-card-image-gap);
  }

  .layout_latest .more {
    order: 8;
    margin-block: auto 0;
    padding-block-start: var(--gf-space-xs);
  }

  .layout_latest:has(.more) .info {
    margin-block-start: var(--gf-space-xs);
  }

  .content-gallery:not(.gf-marquee) {
    container: gf-gallery / inline-size;
  }

  .content-gallery:not(.gf-marquee) > :is(ul, ol) {
    display: grid;
    grid-template-columns: repeat(var(--gf-gallery-cols, 4), minmax(0, 1fr));
    gap: var(--gf-gallery-gap);
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .content-gallery--cols-1 { --gf-gallery-cols: 1; }
  .content-gallery--cols-2 { --gf-gallery-cols: 2; }
  .content-gallery--cols-3 { --gf-gallery-cols: 3; }
  .content-gallery--cols-4 { --gf-gallery-cols: 4; }
  .content-gallery--cols-5 { --gf-gallery-cols: 5; }
  .content-gallery--cols-6 { --gf-gallery-cols: 6; }
  .content-gallery--cols-7 { --gf-gallery-cols: 7; }
  .content-gallery--cols-8 { --gf-gallery-cols: 8; }
  .content-gallery--cols-9 { --gf-gallery-cols: 9; }
  .content-gallery--cols-10 { --gf-gallery-cols: 10; }
  .content-gallery--cols-11 { --gf-gallery-cols: 11; }
  .content-gallery--cols-12 { --gf-gallery-cols: 12; }

  .content-gallery:not(.gf-marquee) figure {
    margin: 0;
  }

  .content-gallery:not(.gf-marquee) img {
    display: block;
    inline-size: 100%;
    block-size: auto;
  }

  @container gf-gallery (width < 36rem) {
    .content-gallery:not(.gf-marquee, .content-gallery--cols-1) > :is(ul, ol) {
      --gf-gallery-cols: 2;
    }
  }

  .gf-marquee {
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--gf-marquee-fade), #000 calc(100% - var(--gf-marquee-fade)), transparent);
    mask-image: linear-gradient(90deg, transparent, #000 var(--gf-marquee-fade), #000 calc(100% - var(--gf-marquee-fade)), transparent);
  }

  .gf-marquee :is(ul, ol) {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--gf-marquee-gap);
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .gf-marquee.is-running :is(ul, ol) {
    flex-wrap: nowrap;
    justify-content: flex-start;
    inline-size: max-content;
    animation: gf-marquee calc(var(--gf-marquee-duration) * var(--gf-marquee-speed, 1)) linear infinite;
  }

  .gf-marquee--slow { --gf-marquee-speed: 1.6; }
  .gf-marquee--fast { --gf-marquee-speed: 0.6; }

  .gf-marquee li,
  .gf-marquee figure {
    flex: none;
    margin: 0;
  }

  .gf-marquee img {
    inline-size: auto;
    block-size: var(--gf-marquee-height);
    object-fit: contain;
  }

  @keyframes gf-marquee {
    to { translate: calc(-50% - var(--gf-marquee-gap) / 2) 0; }
  }

  .gf-rounded {
    overflow: clip;
    border-radius: var(--gf-surface-radius);
  }

  .gf-social {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gf-social-gap);
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .gf-social a {
    display: grid;
    place-items: center;
    color: var(--gf-social-color);
    font-size: var(--gf-social-icon-size);
    transition: color var(--gf-transition, 0.2s ease), border-color var(--gf-transition, 0.2s ease), background-color var(--gf-transition, 0.2s ease);
  }

  :is(.gf-social--outline, .gf-social--filled) a {
    inline-size: var(--gf-social-size);
    block-size: var(--gf-social-size);
    border: 1px solid color-mix(in srgb, currentColor 30%, transparent);
    border-radius: 50%;
  }

  .gf-social--filled a {
    border-color: transparent;
    background: color-mix(in srgb, currentColor 10%, transparent);
  }

  .gf-social a:hover {
    color: var(--gf-social-color-hover);
    border-color: currentColor;
  }

  .gf-header[data-gf-sticky] {
    --gf-header-position: sticky;
    transition: translate var(--gf-transition, 0.3s ease);
  }

  .gf-header[data-gf-sticky].is-hidden {
    translate: 0 -100%;
  }

  .gf-header[data-gf-style="floating"] {
    --gf-header-bg: var(--gf-header-float-bg);
    --gf-header-backdrop: blur(var(--gf-header-float-blur)) saturate(1.4);
    --gf-header-float-space: calc(var(--gf-header-min-height) + var(--gf-header-float-offset));
    grid-template-columns: [full-start content-start] minmax(0, 1fr) [content-end full-end];
    inline-size: min(100% - 2 * (var(--gf-gutter) - var(--gf-header-float-outset, 0px)), var(--gf-container) + 2 * var(--gf-header-float-outset, 0px));
    margin: var(--gf-header-float-offset) auto 0;
    padding-inline: var(--gf-header-float-padding);
    border: 1px solid color-mix(in srgb, currentColor 14%, transparent);
    border-radius: var(--gf-header-float-radius);
    box-shadow: var(--gf-header-float-shadow), inset 0 1px 0 color-mix(in srgb, white 8%, transparent);
    inset-block-start: var(--gf-header-float-offset);
  }

  .gf-header[data-gf-style="floating"]::before {
    border-radius: inherit;
  }

  .gf-header[data-gf-style="floating"][data-gf-sticky].is-hidden {
    translate: 0 calc(-100% - 2 * var(--gf-header-float-offset));
  }

  body:has(.gf-header[data-gf-style="floating"]) .gf-main > :first-child {
    --gf-header-float-space: calc(var(--gf-header-min-height) + 2 * var(--gf-header-float-offset));
    margin-block-start: calc(-1 * (var(--gf-header-min-height) + var(--gf-header-float-offset) + 2px));
    border-block-start: var(--gf-header-float-space) solid transparent;
  }

  body:has(.gf-header[data-gf-style="floating"]) .gf-main > :first-child > :is(.gf-wrapper__media, .gf-wrapper__overlay, .gf-wrapper__deco) {
    inset-block-start: calc(-1 * var(--gf-header-float-space));
  }

  .layout_latest h2 a {
    color: inherit;
    text-decoration: none;
  }

  .gf-news-categories {
    display: flex;
    flex-wrap: wrap;
    gap: 0 var(--gf-space-xs);
    font-weight: var(--gf-font-weight-bold);
    color: var(--gf-news-category-color);
  }

  .gf-news-categories a {
    color: inherit;
    text-decoration: none;
  }

  .gf-news-categories a:hover {
    text-decoration: underline;
  }

  .mod_newscategories ul {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gf-newscategories-gap);
    margin: 0 0 var(--gf-space-m);
    padding: 0;
    list-style: none;
  }

  .mod_newscategories :is(a, strong) {
    display: inline-block;
    border-block-end: var(--gf-newscategories-line) solid currentColor;
    font-weight: inherit;
    color: var(--gf-newscategories-color);
    text-decoration: none;
  }

  .mod_newscategories :is(a:hover, strong) {
    color: var(--gf-newscategories-color-active);
  }

  .mod_newscategories .quantity {
    color: var(--gf-color-muted);
  }

  .layout_latest .more {
    font-size: var(--gf-fs-xs);
    font-weight: var(--gf-font-weight-bold);
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  .layout_latest .more a {
    color: var(--gf-color-accent);
    text-decoration: none;
  }

  .pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--gf-space-xs) var(--gf-space-m);
    margin-block-start: var(--gf-space-m);
  }

  .pagination p {
    margin: 0;
    font-size: var(--gf-fs-sm);
    color: var(--gf-color-muted);
  }

  .pagination ul {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .pagination :is(a, strong) {
    display: inline-grid;
    place-items: center;
    min-inline-size: var(--gf-pagination-size);
    min-block-size: var(--gf-pagination-size);
    padding-inline: 0.75em;
    border: 1px solid var(--gf-pagination-border);
    border-radius: var(--gf-radius);
    font-size: var(--gf-fs-sm);
    font-weight: var(--gf-font-weight-bold);
    color: var(--gf-pagination-color);
    text-decoration: none;
    transition: border-color var(--gf-transition), color var(--gf-transition);
  }

  .pagination a:hover {
    border-color: var(--gf-pagination-hover-color);
    color: var(--gf-pagination-hover-color);
  }

  .pagination .active {
    border-color: var(--gf-pagination-active-bg);
    background: var(--gf-pagination-active-bg);
    color: var(--gf-pagination-active-color);
  }

  .gf-scheme-dark .pagination {
    --gf-pagination-color: var(--gf-color-on-dark);
    --gf-pagination-border: color-mix(in srgb, var(--gf-color-on-dark) 35%, transparent);
    --gf-pagination-active-bg: var(--gf-color-on-dark);
    --gf-pagination-active-color: var(--gf-color-dark);
  }

  hgroup > :is(h1, h2, h3, h4, h5, h6) {
    margin: 0;
  }

  .gf-overline {
    margin: 0 0 var(--gf-overline-gap);
    font-family: var(--gf-overline-font);
    font-size: var(--gf-overline-size);
    font-weight: var(--gf-overline-weight);
    letter-spacing: var(--gf-overline-letter-spacing);
    text-transform: uppercase;
    color: var(--gf-overline-color);
  }

  .gf-subline {
    margin: 0.5em 0 0;
    font-size: var(--gf-fs-lg);
    color: var(--gf-subline-color);
  }

  .gf-overline--heading,
  .gf-overline--large {
    margin-block-end: 0.25em;
    font-family: var(--gf-font-heading);
    font-size: var(--gf-overline-heading-size);
    font-weight: var(--gf-font-weight-heading);
    letter-spacing: normal;
    line-height: var(--gf-line-height-heading);
    text-transform: none;
  }

  .gf-overline--large {
    font-size: var(--gf-overline-large-size);
  }

  .gf-overline--pill {
    display: inline-flex;
    align-items: center;
    gap: 0.6em;
    margin-block-end: 1.25em;
    padding: 0.4em 1em;
    border: 1px solid var(--gf-pill-border);
    border-radius: 999px;
    background: var(--gf-pill-bg);
    font-size: var(--gf-fs-xs, 0.75rem);
    letter-spacing: 0.12em;
  }

  .gf-overline--pill::before {
    content: "";
    inline-size: 0.5em;
    block-size: 0.5em;
    border-radius: 50%;
    background: var(--gf-pill-dot);
    box-shadow: 0 0 0 0.25em color-mix(in srgb, var(--gf-pill-dot) 25%, transparent);
  }

  :is(.gf-bg-primary, .gf-bg-secondary, .gf-bg-accent) {
    --gf-highlight: linear-gradient(90deg, var(--gf-color-dark), var(--gf-color-dark));
  }

  .gf-highlight {
    background: var(--gf-highlight);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
  }

  .gf-subline--heading {
    margin-block-start: 0.75em;
    font-family: var(--gf-font-heading);
    font-size: var(--gf-subline-heading-size);
    font-weight: var(--gf-font-weight-heading);
    line-height: var(--gf-line-height-heading);
    color: inherit;
  }

  .gf-scheme-dark {
    --gf-overline-color: var(--gf-color-on-dark);
    --gf-subline-color: var(--gf-color-muted);
  }

  .gf-size-xs { font-size: var(--gf-fs-md); }
  .gf-size-s { font-size: var(--gf-fs-lg); }
  .gf-size-m { font-size: var(--gf-fs-xl); }
  .gf-size-l { font-size: var(--gf-fs-2xl); }
  .gf-size-xl { font-size: var(--gf-fs-3xl); }
  .gf-size-xxl { font-size: var(--gf-fs-4xl); }
  .gf-size-3xl { font-size: var(--gf-fs-5xl); }

  .gf-color-primary { color: var(--gf-color-primary); }
  .gf-color-secondary { color: var(--gf-color-secondary); }
  .gf-color-accent { color: var(--gf-color-accent-text); }
  .gf-color-dark { color: var(--gf-color-dark); }
  .gf-color-light { color: var(--gf-color-light); }

  .gf-btn,
  .widget-submit .submit,
  .widget-pagebreak button {
    --gf-btn-bg: var(--gf-color-primary);
    --gf-btn-color: var(--gf-color-on-primary);
    --gf-btn-border: var(--gf-btn-bg);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5em;
    min-block-size: var(--gf-btn-min-height);
    padding: var(--gf-btn-padding);
    border: 2px solid var(--gf-btn-border);
    border-radius: var(--gf-btn-radius);
    background: var(--gf-btn-bg);
    color: var(--gf-btn-color);
    font-family: var(--gf-btn-font);
    font-size: var(--gf-btn-font-size);
    font-weight: var(--gf-btn-weight);
    letter-spacing: var(--gf-btn-letter-spacing);
    line-height: var(--gf-btn-line-height);
    text-transform: var(--gf-btn-transform);
    text-decoration: none;
    cursor: pointer;
    transition: background-color var(--gf-transition), border-color var(--gf-transition), color var(--gf-transition);
  }

  .gf-btn:hover,
  .widget-submit .submit:hover,
  .widget-pagebreak button:hover {
    --gf-btn-bg: var(--gf-btn-bg-hover, var(--gf-btn-primary-bg-hover));
    color: var(--gf-btn-color);
  }

  .widget-pagebreak {
    display: flex;
    flex-flow: row-reverse wrap;
    justify-content: flex-end;
    gap: var(--gf-space-xs);
  }

  .mod_mp_form_steps {
    container: gf-steps / inline-size;
  }

  .mod_mp_form_steps ul {
    display: flex;
    margin: 0 0 var(--gf-space-m);
    padding: 0;
    list-style: none;
    counter-reset: gf-step;
  }

  .mod_mp_form_steps li {
    position: relative;
    display: grid;
    flex: 1 1 0;
    grid-template-columns: minmax(var(--gf-steps-size), max-content) minmax(0, 1fr);
    justify-items: center;
    gap: var(--gf-space-xs) 0;
    min-inline-size: 0;
    font-size: var(--gf-fs-xs);
    text-align: center;
    line-height: 1.3;
    color: var(--gf-color-muted);
    counter-increment: gf-step;
  }

  .mod_mp_form_steps li:last-child {
    flex: 0 1 auto;
    grid-template-columns: minmax(var(--gf-steps-size), max-content);
  }

  .mod_mp_form_steps li::before {
    content: counter(gf-step);
    grid-area: 1 / 1;
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    inline-size: var(--gf-steps-size);
    block-size: var(--gf-steps-size);
    border: 2px solid var(--gf-steps-line);
    border-radius: 50%;
    background: var(--gf-color-bg);
    font-weight: var(--gf-font-weight-bold);
  }

  .mod_mp_form_steps li:not(:last-child)::after {
    content: "";
    grid-area: 1 / 2;
    align-self: center;
    justify-self: stretch;
    block-size: 2px;
    margin-inline: var(--gf-space-xs);
    background: var(--gf-steps-line);
  }

  .mod_mp_form_steps li > :is(a, strong, span) {
    grid-area: 2 / 1;
  }

  @container gf-steps (width < 40rem) {
    .mod_mp_form_steps li > :is(a, strong, span) {
      max-inline-size: min-content;
      padding-inline: 0;
    }
  }

  .mod_mp_form_steps :is(a, strong, span) {
    padding-inline: 0.25em;
    font-weight: inherit;
    color: inherit;
    text-decoration: none;
  }

  .mod_mp_form_steps .accessible {
    color: var(--gf-steps-color);
  }

  .mod_mp_form_steps .accessible::before {
    border-color: var(--gf-steps-color);
  }

  .mod_mp_form_steps .accessible a:hover {
    text-decoration: underline;
  }

  .mod_mp_form_steps .current {
    font-weight: var(--gf-font-weight-bold);
    color: var(--gf-color-text);
  }

  .mod_mp_form_steps .current::before {
    border-color: var(--gf-steps-color);
    background: var(--gf-steps-color);
    color: var(--gf-steps-color-on);
  }

  .mod_mp_form_steps :is(.accessible, .current):has(+ :is(.accessible, .current))::after {
    background: var(--gf-steps-color);
  }

  .mod_mp_form_steps .invisible {
    position: absolute;
    clip-path: inset(50%);
    inline-size: 1px;
    block-size: 1px;
    overflow: hidden;
  }

  .gf-link-icon {
    display: inline-flex;
    align-items: center;
    gap: 0.5em;
  }

  .gf-link__icon {
    flex: none;
    inline-size: var(--gf-link-icon-size);
    block-size: var(--gf-link-icon-size);
    transition: translate var(--gf-transition);
  }

  .gf-link-icon--after:hover .gf-link__icon {
    translate: 0.2em 0;
  }

  .gf-link-icon--before:is(:hover, :focus-visible) .gf-link__icon {
    animation: gf-icon-nudge 0.5s ease both;
  }

  @keyframes gf-icon-nudge {
    35% { rotate: -12deg; scale: 1.12; }
    70% { rotate: 5deg; scale: 1.04; }
    100% { rotate: 0deg; scale: 1; }
  }

  .gf-btn--primary { --gf-btn-base: var(--gf-color-primary); --gf-btn-bg-hover: var(--gf-btn-primary-bg-hover); }
  .gf-btn--secondary { --gf-btn-base: var(--gf-color-secondary); --gf-btn-bg: var(--gf-color-secondary); --gf-btn-bg-hover: var(--gf-btn-secondary-bg-hover); }
  .gf-btn--accent { --gf-btn-base: var(--gf-color-accent); --gf-btn-bg: var(--gf-color-accent); --gf-btn-bg-hover: var(--gf-btn-accent-bg-hover); }

  .gf-btn--light {
    --gf-btn-bg: var(--gf-color-bg);
    --gf-btn-color: var(--gf-color-primary);
  }

  .gf-btn--light:hover {
    --gf-btn-bg: var(--gf-color-light);
  }

  .gf-btn--outline,
  .widget-pagebreak button[value="back"] {
    --gf-btn-bg: transparent;
    --gf-btn-color: var(--gf-btn-outline-color);
    --gf-btn-border: var(--gf-btn-outline-color);
    --gf-btn-bg-hover: var(--gf-btn-outline-bg-hover);
  }

  .gf-btn--outline:hover,
  .widget-pagebreak button[value="back"]:hover {
    --gf-btn-border: var(--gf-btn-outline-border-hover);
    --gf-btn-color: var(--gf-btn-outline-color-hover);
  }

  .gf-btn--s {
    min-block-size: var(--gf-btn-min-height-s);
    padding: var(--gf-btn-padding-s);
    font-size: var(--gf-btn-font-size-s);
  }
  .gf-btn--l {
    min-block-size: var(--gf-btn-min-height-l);
    padding: var(--gf-btn-padding-l);
    font-size: var(--gf-btn-font-size-l);
  }

  .gf-text-lead { font-size: var(--gf-fs-lg); line-height: var(--gf-lead-line-height, var(--gf-line-height)); }
  .gf-text-small { font-size: var(--gf-fs-sm); }
  .gf-text-quote { font-family: var(--gf-text-quote-font, inherit); font-size: var(--gf-text-quote-size, var(--gf-fs-2xl)); line-height: var(--gf-text-quote-line-height, 1.3); letter-spacing: var(--gf-heading-letter-spacing, normal); text-wrap: pretty; }

  :is(.gf-list-check, .gf-list-icon, .gf-list-none, .gf-list-lines) :is(ul, ol) {
    list-style: none;
    padding-inline-start: 0;
  }

  :is(.gf-list-check, .gf-list-icon) li {
    position: relative;
    padding-inline-start: 1.75em;
  }

  :is(.gf-list-check, .gf-list-icon) li + li {
    margin-block-start: var(--gf-list-item-gap);
  }

  .gf-list-icon li::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    inset-block-start: 0.3em;
    inline-size: 1.1em;
    block-size: 1.1em;
    background: var(--gf-list-marker-color);
    mask: var(--gf-list-icon) center / contain no-repeat;
  }

  .gf-list-check li::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    inset-block-start: 0.3em;
    inline-size: 1.1em;
    block-size: 1.1em;
    background: var(--gf-list-marker-color);
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
  }

  .gf-list-inline :is(ul, ol) {
    display: flex;
    flex-wrap: wrap;
    gap: var(--gf-list-inline-gap);
  }

  .gf-list-inline:not(.gf-list-check, .gf-list-icon, .gf-list-none, .gf-list-lines) :is(ul, ol) {
    padding-inline-start: 0;
    list-style-position: inside;
  }

  .gf-list-inline :is(ul, ol) > li + li {
    margin-block-start: 0;
  }

  .gf-text-center.gf-list-inline :is(ul, ol) { justify-content: center; }
  .gf-text-right.gf-list-inline :is(ul, ol) { justify-content: flex-end; }

  .gf-list-lines li + li {
    margin-block-start: 0.25em;
    padding-block-start: 0.25em;
    border-block-start: 1px solid var(--gf-list-divider-color);
  }

  .content-downloads :is(ul, ol) {
    display: grid;
    gap: 0.5em;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .download-element a {
    display: inline-flex;
    align-items: center;
    gap: 0.6em;
    color: var(--gf-download-color);
    text-decoration: none;
  }

  .download-element a:hover .gf-download__text {
    text-decoration: underline;
  }

  .gf-download__icon {
    flex: none;
    inline-size: var(--gf-download-icon-size);
    block-size: var(--gf-download-icon-size);
    color: var(--gf-download-icon-color);
  }

  .gf-download__meta {
    font-size: 0.85em;
    color: var(--gf-download-meta-color);
    white-space: nowrap;
  }

  .content-accordion .handorgel__header {
    margin: 0;
    font: inherit;
  }

  .handorgel__header__button {
    display: flex;
    align-items: center;
    gap: 0.75em;
    inline-size: 100%;
    margin: 0;
    padding: var(--gf-accordion-title-padding) 0;
    border: 0;
    background: none;
    color: var(--gf-accordion-title-color);
    font-family: var(--gf-accordion-title-font);
    font-size: var(--gf-accordion-title-size);
    font-weight: var(--gf-accordion-title-weight);
    line-height: 1.25;
    text-align: start;
    cursor: pointer;
    transition: color var(--gf-transition);
  }

  .handorgel__header__button:hover,
  .handorgel__header--open .handorgel__header__button {
    color: var(--gf-accordion-title-color-active);
  }

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

  .handorgel__header__button::after {
    content: "";
    flex: none;
    inline-size: calc(var(--gf-accordion-icon-size) * 0.7);
    block-size: calc(var(--gf-accordion-icon-size) * 0.7);
    margin-inline: auto 0.2em;
    border: solid currentColor;
    border-width: 0 2px 2px 0;
    rotate: 45deg;
    translate: 0 -25%;
    transition: rotate var(--gf-accordion-duration) ease, translate var(--gf-accordion-duration) ease;
  }

  .handorgel__header--open .handorgel__header__button::after {
    rotate: 225deg;
    translate: 0 25%;
  }

  .handorgel__content {
    display: none;
    overflow: hidden;
    height: 0;
    transition: height var(--gf-accordion-duration) ease;
  }

  .handorgel__content--open {
    display: block;
  }

  .handorgel__content--opened {
    overflow: visible;
  }

  .handorgel__content__inner {
    padding: var(--gf-accordion-content-padding);
    opacity: 0;
    transition: opacity var(--gf-accordion-duration) ease;
  }

  .handorgel__content--opened .handorgel__content__inner {
    opacity: 1;
  }

  .handorgel__content__inner > :first-child {
    margin-block-start: 0;
  }

  .handorgel__content__inner > :last-child {
    margin-block-end: 0;
  }

  .gf-accordion--lines {
    border-block-end: 1px solid var(--gf-accordion-border);
  }

  .gf-accordion--lines .handorgel__header {
    border-block-start: 1px solid var(--gf-accordion-border);
  }

  .gf-accordion--plus .handorgel__header__button::after {
    order: -1;
    inline-size: var(--gf-accordion-icon-size);
    block-size: var(--gf-accordion-icon-size);
    margin: 0;
    border: 0;
    background:
      linear-gradient(currentColor 0 0) center / 100% 2px no-repeat,
      linear-gradient(currentColor 0 0) center / 2px 100% no-repeat;
    rotate: none;
    translate: none;
    transition: background-size var(--gf-accordion-duration) ease;
  }

  .gf-accordion--plus .handorgel__header--open .handorgel__header__button::after {
    background-size: 100% 2px, 2px 0;
  }

  .gf-accordion--plus .handorgel__content__inner {
    padding-inline-start: var(--gf-accordion-indent);
  }

  .gf-accordion--circle {
    border-block-end: 1px solid var(--gf-accordion-border);
  }

  .gf-accordion--circle .handorgel__header {
    border-block-start: 1px solid var(--gf-accordion-border);
  }

  .gf-accordion--circle .handorgel__header__button {
    position: relative;
  }

  .gf-accordion--circle .handorgel__header__button::after {
    inline-size: var(--gf-accordion-circle-size);
    block-size: var(--gf-accordion-circle-size);
    margin-block: min(0px, (1lh - var(--gf-accordion-circle-size)) / 2);
    margin-inline: auto var(--gf-accordion-circle-offset);
    border: 0;
    border-radius: 50%;
    background: var(--gf-accordion-circle-bg);
    rotate: none;
    translate: none;
    transition: background-color var(--gf-accordion-duration) ease;
  }

  .gf-accordion--circle .handorgel__header__button::before {
    content: "";
    position: absolute;
    z-index: 1;
    inset-block-start: 50%;
    inset-inline-end: calc(var(--gf-accordion-circle-offset) + (var(--gf-accordion-circle-size) - var(--gf-accordion-circle-icon-size)) / 2);
    inline-size: var(--gf-accordion-circle-icon-size);
    block-size: var(--gf-accordion-circle-icon-size);
    background: var(--gf-accordion-circle-color);
    -webkit-mask: var(--gf-accordion-icon-expand) no-repeat center / contain;
    mask: var(--gf-accordion-icon-expand) no-repeat center / contain;
    translate: 0 -50%;
  }

  .gf-accordion--circle .handorgel__header--open .handorgel__header__button::after {
    background-color: var(--gf-accordion-circle-bg-active);
  }

  .gf-accordion--circle .handorgel__header--open .handorgel__header__button::before {
    background: var(--gf-accordion-circle-color-active);
    -webkit-mask-image: var(--gf-accordion-icon-collapse);
    mask-image: var(--gf-accordion-icon-collapse);
  }

  .gf-accordion--boxed .handorgel__header + .handorgel__content + .handorgel__header {
    margin-block-start: var(--gf-space-xs);
  }

  .gf-accordion--boxed .handorgel__header__button {
    padding-inline: var(--gf-box-padding);
    border-radius: var(--gf-radius);
    background: var(--gf-accordion-bg);
  }

  .gf-accordion--boxed .handorgel__header--open .handorgel__header__button {
    border-end-start-radius: 0;
    border-end-end-radius: 0;
  }

  .gf-accordion--boxed .handorgel__content__inner {
    padding: var(--gf-space-s) var(--gf-box-padding);
    border: 1px solid var(--gf-accordion-bg);
    border-block-start: 0;
    border-end-start-radius: var(--gf-radius);
    border-end-end-radius: var(--gf-radius);
  }

  .gf-radius-s :is(img, .gf-person__placeholder) { border-radius: 0.25rem; }
  .gf-radius-m :is(img, .gf-person__placeholder) { border-radius: 0.75rem; }
  .gf-radius-l :is(img, .gf-person__placeholder) { border-radius: 1.5rem; }
  .gf-radius-round :is(img, .gf-person__placeholder) { border-radius: 50%; }

  .gf-shadow :is(img, .gf-person__placeholder) {
    box-shadow: var(--gf-image-shadow);
  }

  :is(.gf-frame-browser, .gf-frame-phone) figure {
    position: relative;
    margin: 0;
    overflow: hidden;
    box-shadow: var(--gf-frame-shadow);
  }

  :is(.gf-frame-browser, .gf-frame-phone) :is(img, a) {
    display: block;
    inline-size: 100%;
    block-size: auto;
    border-radius: 0;
    box-shadow: none;
  }

  .gf-frame-browser figure {
    padding-block-start: var(--gf-frame-bar);
    border: 1px solid var(--gf-frame-border);
    border-radius: var(--gf-frame-radius);
    background: var(--gf-frame-bg);
  }

  .gf-frame-browser figure::before {
    content: "";
    position: absolute;
    inset-block-start: calc(var(--gf-frame-bar) / 2 - 0.3rem);
    inset-inline-start: 0.875rem;
    inline-size: 0.6rem;
    block-size: 0.6rem;
    border-radius: 50%;
    background: var(--gf-frame-dot-1);
    box-shadow: 1rem 0 0 var(--gf-frame-dot-2), 2rem 0 0 var(--gf-frame-dot-3);
  }

  .gf-frame-phone figure {
    max-inline-size: var(--gf-frame-phone-width);
    margin-inline: auto;
    padding: var(--gf-frame-phone-bezel);
    border-radius: var(--gf-frame-phone-radius);
    background: var(--gf-frame-phone-bg);
  }

  .gf-frame-phone :is(img, a) {
    overflow: hidden;
    border-radius: calc(var(--gf-frame-phone-radius) - var(--gf-frame-phone-bezel));
  }

  .gf-box {
    padding: var(--gf-box-padding);
    border-radius: var(--gf-radius);
    color: var(--gf-color-text);
  }

  .content-element-group > * {
    margin-block: 0 var(--gf-flow);
  }

  .content-element-group > :last-child {
    margin-block-end: 0;
  }

  .content-element-group > :has(+ [class*="gf-mt-"]) {
    margin-block-end: 0;
  }

  .gf-box--filled:not([class*="gf-bg-"]) {
    background-color: var(--gf-box-filled-bg);
  }

  .gf-scheme-dark {
    --gf-box-filled-bg: color-mix(in srgb, var(--gf-color-on-dark) 6%, transparent);
  }

  .content-gf-iconbox.gf-box {
    transition: border-color var(--gf-transition), translate var(--gf-transition), box-shadow var(--gf-transition);
  }

  .content-gf-iconbox.gf-box:has(.gf-iconbox__link a):hover {
    border-color: var(--gf-box-hover-border);
    translate: 0 var(--gf-box-hover-lift);
  }

  .gf-box--outline {
    border: 1px solid var(--gf-color-border);
  }

  .gf-box--shadow {
    box-shadow: var(--gf-shadow);
  }

  .gf-box--glass {
    border: var(--gf-glass-border);
    background-color: var(--gf-glass-bg);
    box-shadow: var(--gf-glass-highlight);
    -webkit-backdrop-filter: blur(var(--gf-glass-blur));
    backdrop-filter: blur(var(--gf-glass-blur));
  }

  .gf-scheme-dark .gf-box--glass:not(.gf-scheme-light) {
    background-color: var(--gf-glass-bg-dark);
  }

  .gf-box--shadow:not([class*="gf-bg-"]) {
    background-color: var(--gf-color-bg);
  }

  .gf-box-p-s { --gf-box-padding: var(--gf-space-s); }
  .gf-box-p-m { --gf-box-padding: var(--gf-space-m); }
  .gf-box-p-l { --gf-box-padding: var(--gf-space-l); }
  .gf-box-p-xl { --gf-box-padding: var(--gf-space-xl); }

  .gf-flow > * {
    margin-block: 0 var(--gf-flow);
  }

  .gf-flow > :last-child {
    margin-block-end: 0;
  }

  .gf-flow > :has(+ [class*="gf-mt-"]) {
    margin-block-end: 0;
  }

  .content-gf-wrapper {
    position: relative;
    color: var(--gf-color-text);
  }

  .gf-wrapper--filled {
    padding-block: var(--gf-wrapper-padding);
  }

  .gf-shape {
    --gf-shape-space: calc(var(--gf-shape-height) * var(--gf-shape-reserve));
    position: relative;
    padding-block-end: var(--gf-shape-space);
  }

  .gf-shape.gf-wrapper--filled {
    padding-block-end: calc(var(--gf-wrapper-padding) + var(--gf-shape-space));
  }

  .gf-shape::before {
    content: "";
    position: absolute;
    inset-inline: 0;
    inset-block-end: -1px;
    z-index: 0;
    block-size: calc(var(--gf-shape-height) + 1px);
    background: var(--gf-shape-color);
    pointer-events: none;
  }

  .gf-shape > :not(.gf-wrapper__media, .gf-wrapper__overlay, .gf-wrapper__deco, .gf-video-toggle) {
    position: relative;
    z-index: 1;
  }

  .gf-shape--slant::before { clip-path: var(--gf-shape-slant); }
  .gf-shape--ridge::before { clip-path: var(--gf-shape-ridge); }

  .gf-shape--wave::before {
    -webkit-mask: var(--gf-shape-wave) no-repeat center bottom / 100% 100%;
    mask: var(--gf-shape-wave) no-repeat center bottom / 100% 100%;
  }

  .gf-shape-color-bg { --gf-shape-color: var(--gf-color-bg); }
  .gf-shape-color-light { --gf-shape-color: var(--gf-color-light); }
  .gf-shape-color-dark { --gf-shape-color: var(--gf-color-dark); }
  .gf-shape-color-primary { --gf-shape-color: var(--gf-color-primary); }
  .gf-shape-color-secondary { --gf-shape-color: var(--gf-color-secondary); }
  .gf-shape-color-accent { --gf-shape-color: var(--gf-color-accent); }

  .gf-wrapper__inner {
    position: relative;
    z-index: 1;
  }

  .gf-full > .gf-wrapper__inner.gf-inner-container {
    inline-size: min(100% - 2 * var(--gf-gutter), var(--gf-container));
    margin-inline: auto;
  }

  .gf-full > .gf-wrapper__inner.gf-inner-narrow {
    inline-size: min(100% - 2 * var(--gf-gutter), var(--gf-container-narrow));
    margin-inline: auto;
  }

  .content-gf-wrapper:not(.gf-full) > .gf-wrapper__inner.gf-inner-narrow {
    max-inline-size: var(--gf-container-narrow);
    margin-inline: auto;
  }

  .content-gf-wrapper:not(.gf-full).gf-wrapper--filled {
    padding-inline: var(--gf-wrapper-padding-inline);
  }

  .gf-wrapper__media,
  .gf-wrapper__overlay,
  .gf-wrapper__deco {
    position: absolute;
    inset: 0;
    z-index: 0;
  }

  .gf-wrapper__deco {
    overflow: hidden;
    pointer-events: none;
  }

  .gf-aurora::before {
    content: "";
    position: absolute;
    inset: -20%;
    background:
      radial-gradient(40% 45% at 20% 25%, color-mix(in srgb, var(--gf-aurora-1) var(--gf-aurora-strength), transparent), transparent 70%),
      radial-gradient(35% 40% at 80% 20%, color-mix(in srgb, var(--gf-aurora-2) var(--gf-aurora-strength), transparent), transparent 70%),
      radial-gradient(45% 40% at 60% 85%, color-mix(in srgb, var(--gf-aurora-3) var(--gf-aurora-strength), transparent), transparent 70%);
    filter: blur(var(--gf-aurora-blur));
  }

  .gf-aurora--motion::before {
    animation: gf-aurora var(--gf-aurora-duration) ease-in-out infinite alternate;
  }

  @keyframes gf-aurora {
    0% { transform: translate3d(0, 0, 0) rotate(0deg) scale(1); }
    33% { transform: translate3d(9%, -7%, 0) rotate(10deg) scale(1.12); }
    66% { transform: translate3d(-8%, 6%, 0) rotate(-8deg) scale(0.94); }
    100% { transform: translate3d(5%, 8%, 0) rotate(6deg) scale(1.08); }
  }

  .gf-pattern::after {
    content: "";
    position: absolute;
    inset: 0;
    color: color-mix(in srgb, var(--gf-pattern-color) var(--gf-pattern-strength), transparent);
    -webkit-mask-image: var(--gf-pattern-fade);
    mask-image: var(--gf-pattern-fade);
  }

  .gf-pattern--grid::after {
    background-image: linear-gradient(currentColor 1px, transparent 1px), linear-gradient(90deg, currentColor 1px, transparent 1px);
    background-size: var(--gf-pattern-size) var(--gf-pattern-size);
    background-position: center top;
  }

  .gf-pattern--dots::after {
    background-image: radial-gradient(currentColor 1px, transparent 1.5px);
    background-size: calc(var(--gf-pattern-size) / 2) calc(var(--gf-pattern-size) / 2);
  }

  .gf-pattern--plus::after,
  .gf-pattern--topo::after {
    background: currentColor;
    -webkit-mask-image: var(--gf-pattern-tile), var(--gf-pattern-fade);
    mask-image: var(--gf-pattern-tile), var(--gf-pattern-fade);
    -webkit-mask-size: var(--gf-pattern-tile-size) var(--gf-pattern-tile-size), 100% 100%;
    mask-size: var(--gf-pattern-tile-size) var(--gf-pattern-tile-size), 100% 100%;
    -webkit-mask-position: var(--gf-pattern-shift) var(--gf-pattern-shift), 0 0;
    mask-position: var(--gf-pattern-shift) var(--gf-pattern-shift), 0 0;
    -webkit-mask-repeat: repeat, no-repeat;
    mask-repeat: repeat, no-repeat;
    -webkit-mask-composite: source-in;
    mask-composite: intersect;
  }

  .gf-pattern--plus {
    --gf-pattern-tile-size: calc(var(--gf-pattern-size) * 1.5);
    --gf-pattern-tile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 9v6M9 12h6' stroke='%23000' stroke-width='.6'/%3E%3C/svg%3E");
  }

  .gf-pattern--topo {
    --gf-pattern-tile-size: calc(var(--gf-pattern-size) * 4);
    --gf-pattern-tile: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23000' stroke-width='.5'%3E%3Cpath d='M0 20c17-9 33 9 50 0s33 9 50 0M0 45c17-9 33 9 50 0s33 9 50 0M0 70c17-9 33 9 50 0s33 9 50 0M0 95c17-9 33 9 50 0s33 9 50 0'/%3E%3C/svg%3E");
  }

  .gf-pattern--diagonal::after {
    background-image: repeating-linear-gradient(45deg, currentColor 0 1px, transparent 1px calc(var(--gf-pattern-size) / 2));
    background-position: var(--gf-pattern-shift) 0;
  }

  .gf-pattern--circles::after {
    background-image: repeating-radial-gradient(circle at 50% 0, currentColor 0 1px, transparent 1px var(--gf-pattern-size));
  }

  .gf-pattern-size-s { --gf-pattern-size: 1.25rem; --gf-pattern-scale: 0.6; }
  .gf-pattern-size-l { --gf-pattern-size: 3.5rem; --gf-pattern-scale: 2; }
  .gf-pattern-fade-top { --gf-pattern-fade: linear-gradient(#000, transparent 75%); }
  .gf-pattern-fade-bottom { --gf-pattern-fade: linear-gradient(transparent 25%, #000); }
  .gf-pattern-fade-none { --gf-pattern-fade: linear-gradient(#000, #000); }

  .gf-pattern--grid::after,
  .gf-pattern--dots::after {
    background-position: var(--gf-pattern-shift) var(--gf-pattern-shift);
  }

  .gf-deco--motion.gf-pattern::after {
    animation: gf-pattern-drift var(--gf-deco-duration) linear infinite;
  }

  @keyframes gf-pattern-drift {
    to { --gf-pattern-shift: var(--gf-pattern-size); }
  }

  .gf-deco__light,
  .gf-deco__stars {
    position: absolute;
    inset: 0;
    pointer-events: none;
  }

  .gf-light--spotlight .gf-deco__light {
    background: radial-gradient(ellipse 45% 70% at 50% -10%, color-mix(in srgb, var(--gf-light-color) var(--gf-light-strength), transparent), transparent 70%);
  }

  .gf-light--beam .gf-deco__light {
    inset: -20% -10%;
    background: linear-gradient(110deg, transparent 42%, color-mix(in srgb, var(--gf-light-color) var(--gf-light-strength), transparent) 50%, transparent 58%);
    filter: blur(1.5rem);
  }

  .gf-deco--motion .gf-deco__light {
    animation: gf-light-pulse 6s ease-in-out infinite;
  }

  @keyframes gf-light-pulse {
    50% { opacity: 0.55; }
  }

  .gf-deco__stars::before,
  .gf-deco__stars::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
      radial-gradient(1px 1px at 12% 18%, var(--gf-stars-color), transparent),
      radial-gradient(1px 1px at 37% 72%, var(--gf-stars-color), transparent),
      radial-gradient(1.5px 1.5px at 64% 31%, var(--gf-stars-color), transparent),
      radial-gradient(1px 1px at 83% 64%, var(--gf-stars-color), transparent),
      radial-gradient(1px 1px at 51% 9%, var(--gf-stars-color), transparent);
    background-size: 19rem 15rem;
    opacity: 0.5;
  }

  .gf-deco__stars::after {
    background-size: 27rem 21rem;
    background-position: 7rem 5rem;
    opacity: 0.35;
  }

  .gf-stars--many .gf-deco__stars::before { background-size: 11rem 9rem; }
  .gf-stars--many .gf-deco__stars::after { background-size: 15rem 12rem; }

  .gf-deco--motion .gf-deco__stars::before { animation: gf-twinkle 4s ease-in-out infinite; }
  .gf-deco--motion .gf-deco__stars::after { animation: gf-twinkle 6s ease-in-out 2s infinite; }

  @keyframes gf-twinkle {
    50% { opacity: 0.1; }
  }

  .gf-pattern--noise::after {
    --gf-pattern-strength: 100%;
    opacity: var(--gf-noise-opacity);
    mix-blend-mode: var(--gf-noise-blend);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    background-size: calc(10rem * var(--gf-pattern-scale, 1));
    -webkit-mask-image: none;
    mask-image: none;
  }

  .gf-wrapper__deco:is(.gf-pattern--noise, .gf-pattern--grain) {
    z-index: auto;
  }

  .gf-pattern--grain::after {
    --gf-pattern-strength: 100%;
    inset: -2rem;
    opacity: var(--gf-grain-opacity);
    mix-blend-mode: var(--gf-grain-blend);
    background-image: var(--gf-grain-image);
    background-size: calc(var(--gf-grain-size) * var(--gf-pattern-scale, 1));
    -webkit-mask-image: none;
    mask-image: none;
  }

  .gf-deco--motion.gf-pattern--grain::after {
    animation: gf-grain var(--gf-grain-speed) steps(1) infinite;
  }

  @keyframes gf-grain {
    0% { transform: translate(0, 0); }
    20% { transform: translate(-1.2rem, 0.8rem); }
    40% { transform: translate(0.9rem, -1.4rem); }
    60% { transform: translate(-0.6rem, -0.5rem); }
    80% { transform: translate(1.3rem, 1.1rem); }
  }

  .gf-wrapper__media :is(figure, picture, img) {
    inline-size: 100%;
    block-size: 100%;
    margin: 0;
  }

  .gf-wrapper__video {
    position: absolute;
    inset: 0;
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
    object-position: var(--gf-image-position, center);
  }

  @media (width < 40rem) {
    .gf-section:has(> .gf-video-toggle) > :not(.gf-wrapper__media, .gf-wrapper__overlay, .gf-wrapper__deco, .gf-video-toggle):last-child {
      margin-block-end: calc(2.75rem + var(--gf-video-toggle-offset, var(--gf-space-s)));
    }
  }

  .gf-video-toggle {
    position: absolute;
    grid-area: auto;
    margin: 0;
    inset-block-end: var(--gf-video-toggle-offset, var(--gf-space-s));
    inset-inline-end: var(--gf-video-toggle-offset-inline, var(--gf-space-s));
    z-index: 2;
    display: grid;
    place-items: center;
    inline-size: 2.75rem;
    block-size: 2.75rem;
    padding: 0;
    border: 1px solid color-mix(in srgb, white 30%, transparent);
    border-radius: 50%;
    background: color-mix(in srgb, black 35%, transparent);
    color: white;
    font-size: 1rem;
    cursor: pointer;
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
  }

  .gf-video-toggle:hover {
    border-color: white;
  }
  .gf-video-toggle__play,
  .gf-video-toggle[aria-pressed="true"] .gf-video-toggle__pause {
    display: none;
  }

  .gf-video-toggle[aria-pressed="true"] .gf-video-toggle__play {
    display: block;
  }

  .gf-wrapper__media img {
    object-fit: cover;
    object-position: var(--gf-image-position, center);
  }

  .gf-pos-top { --gf-image-position: center top; }
  .gf-pos-bottom { --gf-image-position: center bottom; }
  .gf-pos-left { --gf-image-position: left center; }
  .gf-pos-right { --gf-image-position: right center; }

  .gf-wrapper__overlay {
    background: var(--gf-overlay-color);
    opacity: var(--gf-overlay-opacity, 0.4);
  }

  .gf-overlay-dark { --gf-overlay-color: var(--gf-color-dark); }

  .gf-wrapper__overlay.gf-overlay-fade {
    background: var(--gf-overlay-fade);
    opacity: 1;
  }
  .gf-overlay-light { --gf-overlay-color: var(--gf-color-bg); }
  .gf-overlay-primary { --gf-overlay-color: var(--gf-color-primary); }
  .gf-overlay-secondary { --gf-overlay-color: var(--gf-color-secondary); }
  .gf-overlay-accent { --gf-overlay-color: var(--gf-color-accent); }
  .gf-opacity-20 { --gf-overlay-opacity: 0.2; }
  .gf-opacity-40 { --gf-overlay-opacity: 0.4; }
  .gf-opacity-60 { --gf-overlay-opacity: 0.6; }
  .gf-opacity-70 { --gf-overlay-opacity: 0.7; }
  .gf-opacity-80 { --gf-overlay-opacity: 0.8; }
  .gf-opacity-90 { --gf-overlay-opacity: 0.9; }

  .content-gf-wrapper[class*="gf-minh-"] {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .gf-minh-s { min-block-size: clamp(16rem, 40vw, 24rem); }
  .gf-minh-m { min-block-size: clamp(20rem, 50vw, 36rem); }
  .gf-minh-l { min-block-size: clamp(24rem, 60vw, 45rem); }
  .gf-minh-xl { min-block-size: clamp(28rem, 75vw, 67.5rem); }
  .gf-minh-h40 { min-block-size: 40svh; }
  .gf-minh-h50 { min-block-size: 50svh; }
  .gf-minh-h75 { min-block-size: 75svh; }
  .gf-minh-screen { min-block-size: 100svh; }
  .gf-minh-screen h1 { font-size: min(var(--gf-h1-size), var(--gf-minh-screen-h1-max, 11svh)); }

  .content-gf-wrapper.gf-valign-start { justify-content: flex-start; }
  .content-gf-wrapper.gf-valign-end { justify-content: flex-end; }

  .gf-wrapper--fixed {
    clip-path: inset(0);
  }

  .gf-wrapper--fixed > .gf-wrapper__media {
    position: fixed;
    inset: 0;
  }

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

  .gf-glow {
    background-image: radial-gradient(var(--gf-glow-size) at var(--gf-glow-position), color-mix(in srgb, var(--gf-glow-color) var(--gf-glow-strength), transparent), transparent 70%);
    background-origin: border-box;
    background-repeat: no-repeat;
  }

  .gf-glow-accent { --gf-glow-color: var(--gf-color-accent); }
  .gf-glow-primary { --gf-glow-color: var(--gf-color-primary); }
  .gf-glow-secondary { --gf-glow-color: var(--gf-color-secondary); }
  .gf-bg-primary { background-color: var(--gf-color-primary); }
  .gf-bg-secondary { background-color: var(--gf-color-secondary); }
  .gf-bg-accent { background-color: var(--gf-color-accent); }
  .gf-bg-dark { background-color: var(--gf-bg-dark, var(--gf-color-dark)); }

  .gf-scheme-dark {
    --gf-color-text: var(--gf-color-on-dark);
    --gf-color-muted: color-mix(in srgb, var(--gf-color-on-dark) 75%, transparent);
    --gf-color-link: var(--gf-color-on-dark);
    --gf-color-link-hover: var(--gf-color-on-dark);
    --gf-color-border: color-mix(in srgb, var(--gf-color-on-dark) 25%, transparent);
    color: var(--gf-color-text);
  }

  .gf-scheme-light {
    --gf-color-text: var(--gf-color-on-light);
    color: var(--gf-color-text);
  }

  .content-gf-grid {
    --gf-grid-display-s: grid;
    --gf-grid-display-m: grid;
    --gf-grid-display-l: grid;
    container: gf-grid / inline-size;
  }

  .gf-grid {
    display: var(--gf-grid-display-s);
    flex-wrap: wrap;
    grid-template-columns: var(--gf-cols-s);
    gap: var(--gf-grid-gap);
    align-items: stretch;
    margin: 0;
    padding: 0;
  }

  .gf-grid--list {
    list-style: none;
  }

  @container gf-grid (width >= 36rem) {
    .gf-grid {
      display: var(--gf-grid-display-m);
      grid-template-columns: var(--gf-cols-m);
    }
  }

  @container gf-grid (36rem <= width < 60rem) {
    .gf-span-m-2 { grid-column: span 2; }
    .gf-span-m-3 { grid-column: span 3; }
  }

  @container gf-grid (width >= 60rem) {
    .gf-grid {
      display: var(--gf-grid-display-l);
      grid-template-columns: var(--gf-cols-l);
    }

    .gf-span-2 { grid-column: span 2; }
    .gf-span-3 { grid-column: span 3; }
    .gf-span-4 { grid-column: span 4; }
  }

  @container gf-grid (width < 36rem) {
    .gf-order-s-first { order: -1; }
    .gf-order-s-last { order: 1; }
    .gf-cols-s-1 > .gf-grid__item > .content-hyperlink:only-child > .gf-btn { inline-size: 100%; justify-content: center; }
  }

  .gf-grid__item {
    min-inline-size: 0;
  }

  .gf-align-start { align-items: start; }
  .gf-align-center { align-items: center; }
  .gf-align-end { align-items: end; }

  .gf-align-stretch > .gf-grid__item {
    display: flex;
    flex-direction: column;
  }

  .gf-align-stretch > .gf-grid__item > :only-child {
    flex: 1 0 auto;
  }

  .gf-align-stretch > .gf-grid__item > .gf-box {
    display: flex;
    flex-direction: column;
  }

  .gf-align-stretch > .gf-grid__item > .gf-box > :last-child:not(:first-child) {
    margin-block-start: auto;
  }

  .gf-align-stretch > .gf-grid__item > .gf-box > :last-child:not(:first-child):is(.gf-mt-0, .gf-mt-xs, .gf-mt-s, .gf-mt-m, .gf-mt-l, .gf-mt-xl, .gf-mt-xxl) {
    margin-block-start: auto !important;
  }

  .gf-align-stretch > .gf-grid__item > .gf-box > :last-child:not(:first-child).gf-mt-xs { padding-block-start: var(--gf-space-xs); }
  .gf-align-stretch > .gf-grid__item > .gf-box > :last-child:not(:first-child).gf-mt-s { padding-block-start: var(--gf-space-s); }
  .gf-align-stretch > .gf-grid__item > .gf-box > :last-child:not(:first-child).gf-mt-m { padding-block-start: var(--gf-space-m); }
  .gf-align-stretch > .gf-grid__item > .gf-box > :last-child:not(:first-child).gf-mt-l { padding-block-start: var(--gf-space-l); }
  .gf-align-stretch > .gf-grid__item > .gf-box > :last-child:not(:first-child).gf-mt-xl { padding-block-start: var(--gf-space-xl); }
  .gf-align-stretch > .gf-grid__item > .gf-box > :last-child:not(:first-child).gf-mt-xxl { padding-block-start: var(--gf-space-xxl); }

  .gf-align-stretch > .gf-grid__item > .content-gf-iconbox .gf-iconbox__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-inline-size: 0;
  }

  .gf-align-stretch > .gf-grid__item > .content-gf-iconbox .gf-iconbox__link {
    margin-block-start: auto;
    padding-block-start: var(--gf-space-xs);
  }

  .gf-align-stretch > .gf-grid__item > .gf-iconbox--top {
    display: flex;
    flex-direction: column;
  }

  :is(.gf-bg-primary, .gf-bg-secondary, .gf-bg-accent) {
    --gf-number-color: currentColor;
    --gf-overline-color: currentColor;
    --gf-step-bg: var(--gf-color-on-dark);
    --gf-step-color: var(--gf-color-dark);
  }

  .gf-grid--numbered {
    counter-reset: gf-number;
  }

  .gf-grid--numbered > .gf-grid__item {
    position: relative;
    counter-increment: gf-number;
    padding-block-start: var(--gf-number-padding-top);
    border-block-start: var(--gf-number-border);
  }

  .gf-grid--numbered > .gf-grid__item::before {
    content: counter(gf-number, var(--gf-number-style));
    color: var(--gf-number-color);
    font-family: var(--gf-number-font);
    font-size: var(--gf-number-size);
    font-weight: var(--gf-number-weight);
    line-height: 1;
    letter-spacing: -0.04em;
  }

  .gf-grid--numbered-top > .gf-grid__item::before {
    display: block;
    margin-block-end: var(--gf-number-gap);
  }

  .gf-grid--numbered-left > .gf-grid__item {
    padding-inline-start: var(--gf-number-indent);
  }

  .gf-grid--numbered-left > .gf-grid__item::before {
    position: absolute;
    inset-block-start: var(--gf-number-padding-top);
    inset-inline-start: 0;
  }

  .gf-grid--numbered-steps > .gf-grid__item {
    --gf-step-offset: calc((1lh - var(--gf-step-size)) / 2);
    padding-block-start: 0;
    padding-inline-start: calc(var(--gf-step-size) + var(--gf-step-gap));
    border-block-start: 0;
  }

  .gf-grid--numbered-steps > .gf-grid__item::before {
    content: counter(gf-number, var(--gf-step-style));
    position: absolute;
    inset-block-start: var(--gf-step-offset);
    inset-inline-start: 0;
    display: grid;
    place-items: center;
    inline-size: var(--gf-step-size);
    block-size: var(--gf-step-size);
    border-radius: 50%;
    background: var(--gf-step-bg);
    color: var(--gf-step-color);
    font-family: var(--gf-step-font);
    font-size: var(--gf-step-font-size);
    font-weight: var(--gf-step-weight);
    letter-spacing: 0;
  }

  .gf-grid--numbered-steps > .gf-grid__item:not(:last-child)::after {
    content: "";
    position: absolute;
    inset-block: calc(var(--gf-step-offset) + var(--gf-step-size) + var(--gf-step-line-gap)) calc(var(--gf-step-line-gap) - var(--gf-grid-gap));
    inset-inline-start: calc(var(--gf-step-size) / 2 - 0.5px);
    border-inline-start: var(--gf-step-line);
    pointer-events: none;
  }

  .gf-grid--bento {
    grid-auto-rows: minmax(var(--gf-bento-row), auto);
    grid-auto-flow: row dense;
  }

  .gf-bento-s { --gf-bento-row: var(--gf-bento-row-s); }
  .gf-bento-m { --gf-bento-row: var(--gf-bento-row-m); }
  .gf-bento-l { --gf-bento-row: var(--gf-bento-row-l); }

  .gf-grid--bento > .gf-grid__item {
    display: flex;
    flex-direction: column;
    min-block-size: 0;
  }

  .gf-grid--bento > .gf-grid__item > * {
    flex: 1 0 auto;
    margin: 0;
  }

  .gf-grid--bento > .gf-grid__item > .content-gf-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    overflow: clip;
  }

  .gf-grid--bento > .gf-grid__item > .content-image {
    position: relative;
    overflow: clip;
    border-radius: var(--gf-surface-radius);
  }

  .gf-grid--bento > .gf-grid__item > .content-image :is(figure, picture) {
    position: absolute;
    inset: 0;
    margin: 0;
  }

  .gf-grid--bento > .gf-grid__item > .content-image img {
    inline-size: 100%;
    block-size: 100%;
    object-fit: cover;
    object-position: var(--gf-bento-image-position, center);
    transition: scale 0.6s var(--gf-reveal-easing, ease);
  }

  .gf-grid--bento > .gf-grid__item > .content-image:has(a):hover img {
    scale: 1.03;
  }

  .gf-grid--bento > .gf-grid__item > .content-gf-wrapper .gf-wrapper__media img {
    transition: scale 0.6s var(--gf-reveal-easing, ease);
  }

  .gf-grid--bento > .gf-grid__item:hover > .content-gf-wrapper:has(a) .gf-wrapper__media img {
    scale: 1.03;
  }

  @container (width < 36rem) {
    .gf-grid--bento {
      grid-auto-rows: auto;
    }

    .gf-grid--bento > .gf-grid__item > .content-image {
      min-block-size: 0;
    }

    .gf-grid--bento > .gf-grid__item > .content-gf-wrapper:has(> .gf-wrapper__media) {
      min-block-size: var(--gf-bento-row);
    }

    .gf-grid--bento > .gf-grid__item > .content-image :is(figure, picture) {
      position: static;
    }

    .gf-grid--bento > .gf-grid__item > .content-image img {
      block-size: auto;
    }
  }

  .gf-row-span-2 { grid-row: span 2; }
  .gf-row-span-3 { grid-row: span 3; }

  .gf-self-start { align-self: start; }
  .gf-self-center { align-self: center; }
  .gf-self-end { align-self: end; }
  .gf-self-stretch { align-self: stretch; }

  .gf-grid--dividers {
    overflow: clip;
  }

  .gf-grid--line-top {
    border-block-start: 1px solid var(--gf-grid-line-color, var(--gf-color-border));
    padding-block-start: var(--gf-grid-line-space, var(--gf-space-m));
  }

  .gf-grid--dividers > .gf-grid__item {
    position: relative;
  }

  .gf-grid--dividers > .gf-grid__item::after {
    content: "";
    position: absolute;
    inset: calc(var(--gf-grid-gap) / -2 - 0.5px) calc(var(--gf-grid-gap) / -2) calc(var(--gf-grid-gap) / -2) calc(var(--gf-grid-gap) / -2 - 0.5px);
    background:
      linear-gradient(var(--gf-grid-divider-color), var(--gf-grid-divider-color)) left / 1px 100% no-repeat,
      linear-gradient(var(--gf-grid-divider-color), var(--gf-grid-divider-color)) top / 100% 1px no-repeat;
    pointer-events: none;
  }

  .gf-gap-0 { --gf-grid-gap: 0; }
  .gf-gap-xs { --gf-grid-gap: var(--gf-space-xs); }
  .gf-gap-s { --gf-grid-gap: var(--gf-space-s); }
  .gf-gap-m { --gf-grid-gap: var(--gf-space-m); }
  .gf-gap-l { --gf-grid-gap: var(--gf-space-l); }
  .gf-gap-xl { --gf-grid-gap: var(--gf-space-xl); }

  .gf-min-s { --gf-grid-min: 12rem; }
  .gf-min-m { --gf-grid-min: 16rem; }
  .gf-min-l { --gf-grid-min: 20rem; }

  .gf-cols-l-1 { --gf-cols-l: minmax(0, 1fr); }
  .gf-cols-l-2 { --gf-cols-l: repeat(2, minmax(0, 1fr)); }
  .gf-cols-l-3 { --gf-cols-l: repeat(3, minmax(0, 1fr)); }
  .gf-cols-l-4 { --gf-cols-l: repeat(4, minmax(0, 1fr)); }
  .gf-cols-l-5 { --gf-cols-l: repeat(5, minmax(0, 1fr)); }
  .gf-cols-l-6 { --gf-cols-l: repeat(6, minmax(0, 1fr)); }
  .gf-cols-l-1-2 { --gf-cols-l: minmax(0, 1fr) minmax(0, 2fr); }
  .gf-cols-l-2-1 { --gf-cols-l: minmax(0, 2fr) minmax(0, 1fr); }
  .gf-cols-l-1-3 { --gf-cols-l: minmax(0, 1fr) minmax(0, 3fr); }
  .gf-cols-l-3-1 { --gf-cols-l: minmax(0, 3fr) minmax(0, 1fr); }
  .gf-cols-l-1-1-2 { --gf-cols-l: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2fr); }
  .gf-cols-l-1-2-1 { --gf-cols-l: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr); }
  .gf-cols-l-2-1-1 { --gf-cols-l: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); }
  .gf-cols-l-fit-1 { --gf-cols-l: fit-content(50%) minmax(0, 1fr); }
  .gf-cols-l-1-fit { --gf-cols-l: minmax(0, 1fr) fit-content(50%); }
  .gf-cols-l-inline { --gf-grid-display-l: flex; }
  .gf-cols-m-inline { --gf-grid-display-m: flex; }
  .gf-cols-s-inline { --gf-grid-display-s: flex; }

  .gf-text-center > .gf-grid { justify-content: center; }
  .gf-text-right > .gf-grid { justify-content: flex-end; }

  .gf-cols-l-auto { --gf-cols-l: repeat(auto-fit, minmax(min(var(--gf-grid-min), 100%), 1fr)); }

  .gf-cols-m-1 { --gf-cols-m: minmax(0, 1fr); }
  .gf-cols-m-2 { --gf-cols-m: repeat(2, minmax(0, 1fr)); }
  .gf-cols-m-3 { --gf-cols-m: repeat(3, minmax(0, 1fr)); }
  .gf-cols-m-4 { --gf-cols-m: repeat(4, minmax(0, 1fr)); }
  .gf-cols-m-5 { --gf-cols-m: repeat(5, minmax(0, 1fr)); }
  .gf-cols-m-6 { --gf-cols-m: repeat(6, minmax(0, 1fr)); }
  .gf-cols-m-1-2 { --gf-cols-m: minmax(0, 1fr) minmax(0, 2fr); }
  .gf-cols-m-2-1 { --gf-cols-m: minmax(0, 2fr) minmax(0, 1fr); }
  .gf-cols-m-1-3 { --gf-cols-m: minmax(0, 1fr) minmax(0, 3fr); }
  .gf-cols-m-3-1 { --gf-cols-m: minmax(0, 3fr) minmax(0, 1fr); }
  .gf-cols-m-1-1-2 { --gf-cols-m: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2fr); }
  .gf-cols-m-1-2-1 { --gf-cols-m: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr); }
  .gf-cols-m-2-1-1 { --gf-cols-m: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); }
  .gf-cols-m-fit-1 { --gf-cols-m: fit-content(50%) minmax(0, 1fr); }
  .gf-cols-m-1-fit { --gf-cols-m: minmax(0, 1fr) fit-content(50%); }
  .gf-cols-m-auto { --gf-cols-m: repeat(auto-fit, minmax(min(var(--gf-grid-min), 100%), 1fr)); }

  .gf-cols-s-1 { --gf-cols-s: minmax(0, 1fr); }
  .gf-cols-s-2 { --gf-cols-s: repeat(2, minmax(0, 1fr)); }
  .gf-cols-s-3 { --gf-cols-s: repeat(3, minmax(0, 1fr)); }
  .gf-cols-s-4 { --gf-cols-s: repeat(4, minmax(0, 1fr)); }
  .gf-cols-s-5 { --gf-cols-s: repeat(5, minmax(0, 1fr)); }
  .gf-cols-s-6 { --gf-cols-s: repeat(6, minmax(0, 1fr)); }
  .gf-cols-s-1-2 { --gf-cols-s: minmax(0, 1fr) minmax(0, 2fr); }
  .gf-cols-s-2-1 { --gf-cols-s: minmax(0, 2fr) minmax(0, 1fr); }
  .gf-cols-s-1-3 { --gf-cols-s: minmax(0, 1fr) minmax(0, 3fr); }
  .gf-cols-s-3-1 { --gf-cols-s: minmax(0, 3fr) minmax(0, 1fr); }
  .gf-cols-s-1-1-2 { --gf-cols-s: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2fr); }
  .gf-cols-s-1-2-1 { --gf-cols-s: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr); }
  .gf-cols-s-2-1-1 { --gf-cols-s: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); }
  .gf-cols-s-fit-1 { --gf-cols-s: fit-content(50%) minmax(0, 1fr); }
  .gf-cols-s-1-fit { --gf-cols-s: minmax(0, 1fr) fit-content(50%); }
  .gf-cols-s-auto { --gf-cols-s: repeat(auto-fit, minmax(min(var(--gf-grid-min), 100%), 1fr)); }

  .gf-navigation ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .gf-navigation :is(a, strong) {
    display: block;
    color: var(--gf-nav-color);
    font-family: var(--gf-nav-font);
    font-size: var(--gf-nav-font-size);
    font-weight: var(--gf-nav-font-weight);
    text-transform: var(--gf-nav-text-transform);
    letter-spacing: var(--gf-nav-letter-spacing);
    text-decoration: none;
    transition: color var(--gf-transition);
  }

  .gf-navigation :is(a:hover, .active, .trail) {
    color: var(--gf-nav-color-active);
  }

  .gf-nav-toggle {
    display: none;
    position: relative;
    inline-size: 2.75rem;
    block-size: 2.75rem;
    padding: 0;
    border: 0;
    background: none;
    color: var(--gf-header-color);
    cursor: pointer;
  }

  .gf-nav-toggle__icon,
  .gf-nav-toggle__icon::before,
  .gf-nav-toggle__icon::after {
    position: absolute;
    inset-inline-start: 50%;
    inline-size: 1.5rem;
    block-size: 2px;
    margin-inline-start: -0.75rem;
    background: currentColor;
    border-radius: 1px;
    transition: transform var(--gf-transition), opacity var(--gf-transition);
  }

  .gf-nav-toggle__icon {
    inset-block-start: 50%;
  }

  .gf-nav-toggle__icon::before,
  .gf-nav-toggle__icon::after {
    content: "";
    inset-inline-start: 0;
    margin: 0;
  }

  .gf-nav-toggle__icon::before {
    transform: translateY(-0.5rem);
  }

  .gf-nav-toggle__icon::after {
    transform: translateY(0.5rem);
  }

  [data-gf-nav-open] .gf-nav-toggle__icon {
    background: transparent;
  }

  [data-gf-nav-open] .gf-nav-toggle__icon::before {
    transform: rotate(45deg);
  }

  [data-gf-nav-open] .gf-nav-toggle__icon::after {
    transform: rotate(-45deg);
  }

  .gf-code {
    overflow: hidden;
    border-radius: var(--gf-code-radius);
    background: var(--gf-code-bg);
    color: var(--gf-code-color);
    font-family: var(--gf-code-font);
    font-size: var(--gf-code-size);
  }

  .gf-code__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--gf-space-s);
    padding: 0.5rem 0.75rem 0.5rem 1.125rem;
    background: var(--gf-code-bar-bg);
    color: var(--gf-code-muted);
    font-size: 0.8125em;
  }

  .gf-code__copy {
    padding: 0.25rem 0.625rem;
    border: 1px solid color-mix(in srgb, var(--gf-code-muted) 40%, transparent);
    border-radius: var(--gf-radius);
    background: none;
    color: var(--gf-code-color);
    font: inherit;
    cursor: pointer;
  }

  .gf-code__copy:hover,
  .gf-code__copy.is-copied {
    border-color: var(--gf-code-string);
    color: var(--gf-code-string);
  }

  .gf-code pre {
    margin: 0;
    padding: 1rem 1.125rem 1.125rem;
    overflow-x: auto;
    line-height: 1.6;
    tab-size: 4;
  }

  .gf-code code {
    padding: 0;
    background: none;
    color: inherit;
    font: inherit;
  }

  .gf-code :is(.hljs-keyword, .hljs-selector-tag, .hljs-built_in, .hljs-literal, .hljs-type) { color: var(--gf-code-keyword); }
  .gf-code :is(.hljs-string, .hljs-regexp, .hljs-addition) { color: var(--gf-code-string); }
  .gf-code :is(.hljs-number, .hljs-symbol, .hljs-bullet) { color: var(--gf-code-number); }
  .gf-code :is(.hljs-title, .hljs-function, .hljs-section, .hljs-selector-id) { color: var(--gf-code-title); }
  .gf-code :is(.hljs-attr, .hljs-attribute, .hljs-property, .hljs-variable, .hljs-selector-class, .hljs-params) { color: var(--gf-code-attr); }
  .gf-code :is(.hljs-tag, .hljs-name, .hljs-deletion) { color: var(--gf-code-tag); }
  .gf-code :is(.hljs-comment, .hljs-quote, .hljs-meta) { color: var(--gf-code-muted); font-style: italic; }

  .rte > :is(h2, h3, h4, h5, h6) {
    margin-block: var(--gf-rte-heading-space) var(--gf-space-xs);
  }

  .rte > :is(h2, h3, h4, h5, h6):first-child {
    margin-block-start: 0;
  }

  .rte li + li {
    margin-block-start: var(--gf-list-item-gap);
  }

  :where(.content-table, .rte) table {
    inline-size: 100%;
    border-collapse: collapse;
    font-size: var(--gf-table-font-size);
  }

  :where(.content-table, .rte) :is(th, td) {
    padding: var(--gf-table-cell-padding);
    border-block-end: 1px solid var(--gf-table-border, var(--gf-color-border));
    text-align: start;
    vertical-align: top;
  }

  :where(.content-table, .rte) thead th {
    color: var(--gf-table-head-color, var(--gf-color-muted));
    font-size: var(--gf-table-head-size);
    font-weight: var(--gf-font-weight-bold);
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  :where(.content-table, .rte) tbody th {
    font-weight: var(--gf-table-row-head-weight, var(--gf-font-weight-bold));
    color: var(--gf-table-row-head-color, inherit);
  }

  @media (width < 48rem) {
    :where(.content-table, .rte) thead {
      display: none;
    }

    :where(.content-table, .rte) :is(table, tbody, tfoot) {
      display: block;
    }

    :where(.content-table, .rte) tr {
      display: grid;
      gap: 0.25em;
      padding-block: 0.75em;
      border-block-end: 1px solid var(--gf-table-border, var(--gf-color-border));
    }

    :where(.content-table, .rte) :is(th, td) {
      padding: 0;
      border: 0;
    }
  }

  a[data-lightbox] img {
    cursor: zoom-in;
  }

  :where(p, li, td, th, dd, figcaption, .gf-iconbox__body) code:where(:not(pre code)) {
    padding: 0.1em 0.35em;
    border-radius: 0.25em;
    background: var(--gf-code-inline-bg);
    font-family: var(--gf-code-font);
    font-size: 0.875em;
  }

  @container gf-grid (width >= 36rem) {
    .gf-grid__item.gf-sticky {
      position: sticky;
      inset-block-start: var(--gf-sticky-top);
      align-self: start;
    }
  }

  .gf-booknav {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: var(--gf-space-s);
    margin: 0;
    padding: var(--gf-space-m) 0 0;
    border-block-start: 1px solid var(--gf-color-border);
    list-style: none;
  }

  .gf-booknav li {
    margin: 0;
  }

  .gf-booknav :is(.previous, .next) a {
    display: inline-flex;
    flex-direction: column;
    gap: 0.125rem;
    color: var(--gf-booknav-color);
    font-weight: 650;
    text-decoration: none;
  }

  .gf-booknav :is(.previous, .next) a:hover {
    color: var(--gf-booknav-color-hover);
  }

  .gf-booknav__label {
    color: var(--gf-color-muted);
    font-size: var(--gf-fs-xs);
    font-weight: 400;
  }

  .gf-booknav .previous .gf-booknav__label::before {
    content: "← ";
  }

  .gf-booknav .next {
    text-align: end;
  }

  .gf-booknav .next a {
    align-items: flex-end;
  }

  .gf-booknav .next .gf-booknav__label::after {
    content: " →";
  }


  @media (width < 36rem) {
    .gf-booknav {
      grid-template-columns: 1fr 1fr;
    }

    .gf-booknav .up {
      grid-column: 1 / -1;
      grid-row: 1;
      justify-self: center;
    }
  }

  .gf-nav-sub {
    display: inline-grid;
    flex: none;
    place-items: center;
    inline-size: var(--gf-nav-sub-size);
    block-size: var(--gf-nav-sub-size);
    padding: 0;
    border: 0;
    border-radius: var(--gf-radius);
    background: none;
    color: inherit;
    cursor: pointer;
  }

  .gf-nav-sub::before {
    content: "";
    inline-size: 1em;
    block-size: 1em;
    background: currentColor;
    mask: var(--gf-nav-sub-icon) center / contain no-repeat;
    transition: rotate var(--gf-transition);
  }

  .gf-nav-sub[aria-expanded="true"]::before {
    rotate: 180deg;
  }

  @media (width >= 64rem) {
    .gf-navigation .level_1 {
      display: flex;
      flex-wrap: wrap;
      gap: 0 var(--gf-nav-gap);
    }

    .gf-navigation .level_1 > li {
      position: relative;
    }

    .gf-navigation .level_1 > li > :is(a, strong) {
      padding-block: var(--gf-space-xs);
    }

    .gf-navigation .level_2 {
      position: absolute;
      inset-block-start: calc(100% + var(--gf-nav-dropdown-offset));
      inset-inline-start: calc(-1 * var(--gf-space-s));
      min-inline-size: 14rem;
      padding: var(--gf-space-xs) 0;
      background: var(--gf-nav-dropdown-bg);
      -webkit-backdrop-filter: var(--gf-nav-dropdown-backdrop);
      backdrop-filter: var(--gf-nav-dropdown-backdrop);
      box-shadow: var(--gf-shadow);
      border-radius: var(--gf-radius);
      opacity: 0;
      visibility: hidden;
      translate: 0 0.5rem;
      transition: opacity var(--gf-transition), translate var(--gf-transition), visibility var(--gf-transition);
    }

    .gf-navigation .level_1 > li.gf-has-sub {
      display: flex;
      align-items: center;
    }

    .gf-navigation .level_2::before {
      content: "";
      position: absolute;
      inset-inline: 0;
      inset-block-end: 100%;
      block-size: var(--gf-nav-dropdown-offset);
    }

    .gf-navigation .level_1 > li.gf-has-sub > .gf-nav-sub {
      inline-size: var(--gf-nav-sub-size-desktop);
      margin-inline-start: 0.125rem;
    }

    .gf-navigation .level_1 > li:is(:hover, :focus-within, .is-open) > .level_2 {
      opacity: 1;
      visibility: visible;
      translate: 0 0;
    }

    .gf-navigation .level_2 :is(a, strong) {
      padding: var(--gf-nav-dropdown-item-padding);
    }

    [data-gf-nav-hover="pill"] .gf-navigation .level_1 {
      align-items: center;
    }

    [data-gf-nav-hover="pill"] .gf-navigation .level_1 > li:not(.gf-nav-cta) > :is(a, strong) {
      padding: var(--gf-nav-hover-padding);
      border-radius: var(--gf-nav-hover-radius);
      transition: background-color var(--gf-transition), color var(--gf-transition);
    }

    [data-gf-nav-hover="pill"] .gf-navigation .level_1 > li.gf-has-sub:not(.gf-nav-sub-mobile) > :is(a, strong) {
      padding-inline-end: 0.375rem;
    }

    [data-gf-nav-hover="pill"] .gf-navigation .level_1 > li:not(.gf-nav-cta) > a:hover {
      background: var(--gf-nav-hover-bg);
    }

    [data-gf-nav-hover="pill"] .gf-navigation .level_2 {
      padding-inline: var(--gf-space-xs);
    }

    [data-gf-nav-hover="pill"] .gf-navigation .level_2 :is(a, strong) {
      border-radius: var(--gf-nav-hover-radius);
      transition: background-color var(--gf-transition), color var(--gf-transition);
    }

    [data-gf-nav-hover="pill"] .gf-navigation .level_2 a:hover {
      background: var(--gf-nav-hover-bg);
    }

    [data-gf-nav-hover="line"] .gf-navigation .level_1 > li:not(.gf-nav-cta) > :is(a, strong) {
      position: relative;
    }

    [data-gf-nav-hover="line"] .gf-navigation .level_1 > li:not(.gf-nav-cta) > :is(a, strong)::after {
      content: "";
      position: absolute;
      inset-inline: 0;
      inset-block-end: var(--gf-nav-line-offset);
      block-size: var(--gf-nav-line-size);
      border-radius: var(--gf-nav-line-size);
      background: var(--gf-nav-line-color);
      scale: 0 1;
      transform-origin: left center;
      transition: scale var(--gf-nav-duration) var(--gf-nav-easing);
    }

    [data-gf-nav-hover="line"] .gf-navigation .level_1 > li:not(.gf-nav-cta) > a:is(:hover, :focus-visible)::after {
      scale: 1 1;
    }

    [data-gf-nav-hover="line"] .gf-navigation .level_1 > li:not(.gf-nav-cta) > :is(.active, .trail)::after {
      inset-inline: calc(50% - var(--gf-nav-line-size) * 1.5);
      block-size: calc(var(--gf-nav-line-size) * 3);
      border-radius: 50%;
      scale: 1 1;
      transition: none;
    }

    [data-gf-nav-hover="line"] .gf-navigation .level_1 > li:not(.gf-nav-cta) > :is(.active, .trail):hover::after {
      inset-inline: 0;
      block-size: var(--gf-nav-line-size);
      border-radius: var(--gf-nav-line-size);
    }

    .gf-navigation .level_1 > li.gf-nav-sub-mobile > :is(.level_2, .gf-nav-sub) {
      display: none;
    }
  }

  @media (width < 64rem) {
    .gf-nav-toggle {
      display: block;
      z-index: 2;
      transition: color var(--gf-nav-duration);
    }

    .gf-header[data-gf-nav-open] {
      z-index: 1000;
    }

    .gf-navigation {
      position: absolute;
      z-index: 1;
      inset-block-start: 100%;
      inset-inline: 0;
      max-block-size: calc(100dvb - var(--gf-nav-top, var(--gf-header-min-height)));
      overflow-y: auto;
      overscroll-behavior: contain;
      padding: var(--gf-nav-mobile-panel-padding);
      background: var(--gf-nav-mobile-bg);
      box-shadow: var(--gf-shadow);
      visibility: hidden;
      clip-path: inset(0 -3rem 100% -3rem);
      transition: clip-path var(--gf-nav-duration) var(--gf-nav-easing), visibility 0s var(--gf-nav-duration);
    }

    [data-gf-nav-open] .gf-navigation {
      visibility: visible;
      clip-path: inset(0 -3rem -3rem -3rem);
      transition-delay: 0s;
    }

    .gf-navigation .level_1 > li {
      opacity: 0;
      translate: 0 -0.5rem;
      transition: opacity var(--gf-nav-duration) ease, translate var(--gf-nav-duration) var(--gf-nav-easing);
    }

    [data-gf-nav-open] .gf-navigation .level_1 > li {
      opacity: 1;
      translate: 0 0;
      transition-delay: calc(0.08s + var(--gf-i, 0) * 0.04s);
    }

    .gf-navigation :is(a, strong) {
      padding: var(--gf-nav-mobile-padding);
      border-block-end: 1px solid var(--gf-nav-mobile-divider);
      color: var(--gf-nav-mobile-color);
      font-size: var(--gf-nav-font-size-mobile);
      font-weight: var(--gf-nav-mobile-font-weight);
    }

    .gf-navigation :is(a:hover, .active, .trail) {
      color: var(--gf-nav-mobile-color-active);
    }

    .gf-navigation :is(.active, .trail) {
      background: var(--gf-nav-mobile-active-bg);
    }

    .gf-navigation .level_2 :is(a, strong) {
      padding-inline-start: calc(var(--gf-gutter) + var(--gf-space-s));
    }

    .gf-header:is([data-gf-nav="dropdown"], [data-gf-nav="offcanvas"]) .gf-navigation .level_2 {
      margin: var(--gf-space-xs) 0 var(--gf-space-s) var(--gf-gutter);
      border-inline-start: 1px solid var(--gf-nav-mobile-divider);
    }

    .gf-header:is([data-gf-nav="dropdown"], [data-gf-nav="offcanvas"]) .gf-navigation .level_2 :is(a, strong) {
      padding: var(--gf-nav-mobile-sub-padding);
      border: 0;
      color: var(--gf-nav-mobile-sub-color);
      font-size: var(--gf-nav-mobile-sub-font-size);
      font-weight: var(--gf-nav-mobile-sub-font-weight);
    }

    .gf-header:is([data-gf-nav="dropdown"], [data-gf-nav="offcanvas"]) .gf-navigation .level_2 :is(a:hover, .active, .trail) {
      color: var(--gf-nav-mobile-color-active);
    }

    .gf-header:is([data-gf-nav="dropdown"], [data-gf-nav="offcanvas"]) .gf-navigation li.gf-has-sub.is-open > :is(a, strong, .gf-nav-sub) {
      border-block-end-color: transparent;
    }

    .gf-navigation li.gf-has-sub {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: stretch;
    }

    .gf-navigation li.gf-has-sub > ul {
      grid-column: 1 / -1;
    }

    .gf-navigation li.gf-has-sub:not(.is-open) > ul {
      display: none;
    }

    .gf-navigation li.gf-has-sub > .gf-nav-sub {
      block-size: auto;
      min-block-size: var(--gf-nav-sub-size);
      inline-size: calc(var(--gf-nav-sub-size) + var(--gf-space-s));
      border-block-end: 1px solid var(--gf-nav-mobile-divider);
      border-radius: 0;
      color: var(--gf-nav-mobile-color);
    }


    html:has(.gf-header[data-gf-nav-open]:is([data-gf-nav="offcanvas"], [data-gf-nav="fullscreen"])) {
      overflow: hidden;
    }

    [data-gf-nav="scroll"] .gf-header__inner {
      flex-wrap: wrap;
      row-gap: 0;
      padding-block-end: 0;
    }

    [data-gf-nav="scroll"] .gf-nav-toggle {
      display: none;
    }

    [data-gf-nav="scroll"] .gf-navigation {
      position: static;
      order: 3;
      flex: 1 0 100%;
      max-block-size: none;
      margin-inline: calc(-1 * var(--gf-gutter));
      padding: 0 var(--gf-gutter);
      overflow: auto hidden;
      scrollbar-width: none;
      background: none;
      box-shadow: none;
      visibility: visible;
      clip-path: none;
      transition: none;
    }

    [data-gf-nav="scroll"] .gf-navigation::-webkit-scrollbar {
      display: none;
    }

    [data-gf-nav="scroll"] .gf-navigation .level_1 {
      display: flex;
      gap: var(--gf-nav-gap);
      white-space: nowrap;
    }

    [data-gf-nav="scroll"] .gf-navigation .level_1 > li {
      flex: none;
      opacity: 1;
      translate: none;
    }

    [data-gf-nav="scroll"] .gf-navigation :is(a, strong) {
      padding: var(--gf-space-xs) 0;
      border: 0;
      background: none;
      color: var(--gf-nav-color);
    }

    [data-gf-nav="scroll"] .gf-navigation :is(a:hover, .active, .trail) {
      color: var(--gf-nav-color-active);
    }

    [data-gf-nav="fullscreen"] .gf-navigation li.gf-has-sub {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: center;
    }

    [data-gf-nav="fullscreen"] .gf-navigation li.gf-has-sub > .gf-nav-sub {
      inline-size: var(--gf-nav-sub-size);
      border: 0;
    }

    [data-gf-nav="fullscreen"] .gf-navigation li.gf-has-sub > ul {
      flex: 1 0 100%;
    }

    [data-gf-nav="scroll"] .gf-navigation li.gf-has-sub {
      display: flex;
      align-items: center;
    }

    [data-gf-nav="scroll"] .gf-navigation li.gf-has-sub > .gf-nav-sub {
      inline-size: var(--gf-nav-sub-size);
      min-block-size: 0;
      border: 0;
      color: var(--gf-nav-color);
    }

    [data-gf-nav="scroll"] .gf-navigation .level_2 {
      position: absolute;
      z-index: 3;
      inset-block-start: calc(100% + var(--gf-space-xs));
      inset-inline-start: clamp(0px, var(--gf-sub-x, 0px), calc(100% - min(var(--gf-nav-scroll-sub-width), 100%)));
      inline-size: min(var(--gf-nav-scroll-sub-width), 100%);
      max-block-size: 60svh;
      overflow-y: auto;
      overscroll-behavior: contain;
      padding: var(--gf-space-xs) 0;
      border-radius: var(--gf-radius);
      background: var(--gf-nav-dropdown-bg);
      -webkit-backdrop-filter: var(--gf-nav-dropdown-backdrop);
      backdrop-filter: var(--gf-nav-dropdown-backdrop);
      box-shadow: var(--gf-shadow);
      white-space: normal;
    }

    [data-gf-nav="scroll"] .gf-navigation li.gf-has-sub.is-open > .level_2 {
      display: block;
    }

    [data-gf-nav="scroll"] .gf-navigation .level_2 :is(a, strong) {
      display: block;
      padding: var(--gf-space-xs) var(--gf-space-s);
    }

    :is([data-gf-nav="offcanvas"], [data-gf-nav="fullscreen"])[data-gf-nav-open] .gf-nav-toggle {
      color: var(--gf-nav-mobile-color);
    }

    [data-gf-nav="offcanvas"] .gf-navigation {
      position: fixed;
      inset: 0 0 0 auto;
      inline-size: min(var(--gf-nav-panel-width), 100%);
      max-block-size: none;
      padding-block-start: calc(var(--gf-nav-top, var(--gf-header-min-height)) + var(--gf-space-xs));
      clip-path: none;
      translate: 100% 0;
      transition: translate var(--gf-nav-duration) var(--gf-nav-easing), visibility 0s var(--gf-nav-duration);
    }

    [data-gf-nav="offcanvas"][data-gf-nav-open] .gf-navigation {
      translate: 0 0;
      transition-delay: 0s;
    }

    [data-gf-nav="offcanvas"]::after {
      content: "";
      position: fixed;
      z-index: -2;
      inset: 0;
      background: var(--gf-nav-backdrop);
      pointer-events: none;
      opacity: 0;
      visibility: hidden;
      transition: opacity var(--gf-nav-duration), visibility 0s var(--gf-nav-duration);
    }

    [data-gf-nav="offcanvas"][data-gf-nav-open]::after {
      opacity: 1;
      visibility: visible;
      transition-delay: 0s;
    }

    [data-gf-nav="offcanvas"]:not([data-gf-nav-open]) .gf-navigation .level_1 > li {
      translate: 1.5rem 0;
    }

    [data-gf-nav="fullscreen"] .gf-navigation {
      position: fixed;
      inset: 0;
      display: grid;
      align-content: safe center;
      max-block-size: none;
      padding-block: calc(var(--gf-nav-top, var(--gf-header-min-height)) + var(--gf-space-s)) var(--gf-space-l);
      clip-path: none;
      box-shadow: none;
      opacity: 0;
      transition: opacity var(--gf-nav-duration) ease, visibility 0s var(--gf-nav-duration);
    }

    [data-gf-nav="fullscreen"][data-gf-nav-open] .gf-navigation {
      opacity: 1;
      transition-delay: 0s;
    }

    [data-gf-nav="fullscreen"] .gf-navigation :is(a, strong) {
      border: 0;
      font-family: var(--gf-font-heading);
      font-size: var(--gf-nav-fullscreen-font-size);
      text-align: center;
    }

    [data-gf-nav="fullscreen"] .gf-navigation .level_2 :is(a, strong) {
      padding-block: 0.3em;
      padding-inline-start: var(--gf-gutter);
      color: var(--gf-nav-mobile-sub-color);
      font-family: var(--gf-font-body);
      font-size: var(--gf-nav-mobile-sub-font-size);
      font-weight: var(--gf-nav-mobile-sub-font-weight);
    }

    [data-gf-nav="fullscreen"] .gf-navigation .level_2 :is(a:hover, .active, .trail) {
      color: var(--gf-nav-mobile-color-active);
    }

    [data-gf-nav="fullscreen"] .gf-navigation .level_1 > .gf-nav-cta {
      display: flex;
      justify-content: center;
    }

    [data-gf-nav="fullscreen"]:not([data-gf-nav-open]) .gf-navigation .level_1 > li {
      translate: 0 1rem;
    }
  }

  .gf-header .gf-navigation .gf-nav-cta > :is(a, strong) {
    display: inline-flex;
    align-items: center;
    min-block-size: var(--gf-nav-cta-height);
    padding: var(--gf-nav-cta-padding);
    border: 0;
    border-radius: var(--gf-nav-cta-radius);
    background: var(--gf-nav-cta-bg);
    color: var(--gf-nav-cta-color);
    font-weight: var(--gf-nav-cta-weight);
    transition: background-color var(--gf-transition), color var(--gf-transition);
  }

  .gf-header .gf-navigation .gf-nav-cta > a:is(:hover, :focus-visible) {
    background: var(--gf-nav-cta-bg-hover);
    color: var(--gf-nav-cta-color-hover);
  }

  @media (width >= 64rem) {
    .gf-navigation .level_1 {
      align-items: center;
    }

    .gf-navigation .level_1 > .gf-nav-cta {
      margin-inline-start: var(--gf-nav-cta-offset);
    }
  }

  @media (width < 64rem) {
    .gf-navigation .level_1 > .gf-nav-cta {
      padding: var(--gf-space-s) var(--gf-gutter) 0;
    }

    [data-gf-nav="offcanvas"] .gf-navigation .level_1 > .gf-nav-cta {
      padding-block-start: var(--gf-space-m);
    }

    [data-gf-nav="offcanvas"] .gf-header__inner .gf-navigation .gf-nav-cta > :is(a, strong) {
      display: flex;
      justify-content: center;
      min-block-size: calc(var(--gf-nav-cta-height) * 1.2);
    }

    [data-gf-nav="scroll"] .gf-header__inner {
      position: relative;
    }

    [data-gf-nav="scroll"] .gf-navigation .level_1 > .gf-nav-cta {
      position: absolute;
      inset-block-start: calc((var(--gf-header-min-height) - var(--gf-nav-cta-height)) / 2);
      inset-inline-end: 0;
      padding: 0;
    }
  }
}

@layer gf.components {
  @media (scripting: enabled) and (prefers-reduced-motion: no-preference) {
    :is(.gf-reveal, .gf-reveal-stagger > * > .gf-grid__item):not(.is-revealed) {
      opacity: 0;
      transform: var(--gf-reveal-from, none);
    }

    :is(.gf-reveal, .gf-reveal-stagger > * > .gf-grid__item) {
      transition: opacity var(--gf-reveal-duration) var(--gf-reveal-easing), transform var(--gf-reveal-duration) var(--gf-reveal-easing);
      transition-delay: calc(var(--gf-reveal-delay, 0s) + var(--gf-reveal-index, 0) * var(--gf-reveal-stagger));
    }

    .gf-reveal--up { --gf-reveal-from: translate3d(0, var(--gf-reveal-distance), 0); }
    .gf-reveal--left { --gf-reveal-from: translate3d(calc(-1 * var(--gf-reveal-distance)), 0, 0); }
    .gf-reveal--right { --gf-reveal-from: translate3d(var(--gf-reveal-distance), 0, 0); }
    .gf-reveal--zoom { --gf-reveal-from: scale(0.94); }
    .gf-reveal-delay-100 { --gf-reveal-delay: 0.1s; }
    .gf-reveal-delay-200 { --gf-reveal-delay: 0.2s; }
    .gf-reveal-delay-300 { --gf-reveal-delay: 0.3s; }
    .gf-reveal-delay-500 { --gf-reveal-delay: 0.5s; }
    .gf-reveal-delay-800 { --gf-reveal-delay: 0.8s; }
  }
}

@layer gf.utilities {
  .gf-pt-0 { padding-block-start: 0 !important; }
  .gf-pt-xs { padding-block-start: var(--gf-space-xs) !important; }
  .gf-pt-s { padding-block-start: var(--gf-space-s) !important; }
  .gf-pt-m { padding-block-start: var(--gf-space-m) !important; }
  .gf-pt-l { padding-block-start: var(--gf-space-l) !important; }
  .gf-pt-xl { padding-block-start: var(--gf-space-xl) !important; }
  .gf-pt-xxl { padding-block-start: var(--gf-space-xxl) !important; }

  .gf-pb-0 { padding-block-end: calc(0px + var(--gf-shape-space, 0px)) !important; }
  .gf-pb-xs { padding-block-end: calc(var(--gf-space-xs) + var(--gf-shape-space, 0px)) !important; }
  .gf-pb-s { padding-block-end: calc(var(--gf-space-s) + var(--gf-shape-space, 0px)) !important; }
  .gf-pb-m { padding-block-end: calc(var(--gf-space-m) + var(--gf-shape-space, 0px)) !important; }
  .gf-pb-l { padding-block-end: calc(var(--gf-space-l) + var(--gf-shape-space, 0px)) !important; }
  .gf-pb-xl { padding-block-end: calc(var(--gf-space-xl) + var(--gf-shape-space, 0px)) !important; }
  .gf-pb-xxl { padding-block-end: calc(var(--gf-space-xxl) + var(--gf-shape-space, 0px)) !important; }

  .gf-px-0 { padding-inline: 0 !important; }
  .gf-px-xs { padding-inline: var(--gf-space-xs) !important; }
  .gf-px-s { padding-inline: var(--gf-space-s) !important; }
  .gf-px-m { padding-inline: var(--gf-space-m) !important; }
  .gf-px-l { padding-inline: var(--gf-space-l) !important; }
  .gf-px-xl { padding-inline: var(--gf-space-xl) !important; }
  .gf-px-xxl { padding-inline: var(--gf-space-xxl) !important; }

  .gf-mt-0 { margin-block-start: 0 !important; }
  .gf-mt-xs { margin-block-start: var(--gf-space-xs) !important; }
  .gf-mt-s { margin-block-start: var(--gf-space-s) !important; }
  .gf-mt-m { margin-block-start: var(--gf-space-m) !important; }
  .gf-mt-l { margin-block-start: var(--gf-space-l) !important; }
  .gf-mt-xl { margin-block-start: var(--gf-space-xl) !important; }
  .gf-mt-xxl { margin-block-start: var(--gf-space-xxl) !important; }
  .gf-mt-n-s { margin-block-start: calc(-1 * var(--gf-space-s)) !important; }
  .gf-mt-n-m { margin-block-start: calc(-1 * var(--gf-space-m)) !important; }
  .gf-mt-n-l { margin-block-start: calc(-1 * var(--gf-space-l)) !important; }
  .gf-mt-n-xl { margin-block-start: calc(-1 * var(--gf-space-xl)) !important; }

  .gf-mb-0 { margin-block-end: 0 !important; }
  .gf-mb-xs { margin-block-end: var(--gf-space-xs) !important; }
  .gf-mb-s { margin-block-end: var(--gf-space-s) !important; }
  .gf-mb-m { margin-block-end: var(--gf-space-m) !important; }
  .gf-mb-l { margin-block-end: var(--gf-space-l) !important; }
  .gf-mb-xl { margin-block-end: var(--gf-space-xl) !important; }
  .gf-mb-xxl { margin-block-end: var(--gf-space-xxl) !important; }

  .gf-text-left { text-align: start; }
  .gf-text-center { text-align: center; }
  .gf-text-right { text-align: end; }

  .gf-max-narrow {
    max-inline-size: var(--gf-container-narrow);
    inline-size: 100%;
  }

  .gf-max-reading {
    max-inline-size: 65ch;
    inline-size: 100%;
  }

  .gf-text-center:is(.gf-max-narrow, .gf-max-reading) {
    margin-inline: auto;
  }

  .gf-text-right:is(.gf-max-narrow, .gf-max-reading) {
    margin-inline-start: auto;
  }

  @media (width < 40rem) {
    .gf-text-s-left { text-align: start; }
    .gf-text-s-center { text-align: center; }
    .gf-text-s-right { text-align: end; }
    .gf-text-s-left > .gf-grid { justify-content: flex-start; }
    .gf-text-s-center > .gf-grid { justify-content: center; }
    .gf-text-s-right > .gf-grid { justify-content: flex-end; }
    .gf-text-s-left.gf-list-inline :is(ul, ol) { justify-content: flex-start; }
    .gf-text-s-center.gf-list-inline :is(ul, ol) { justify-content: center; }
    .gf-text-s-right.gf-list-inline :is(ul, ol) { justify-content: flex-end; }
    .gf-hide-s { display: none !important; }

    .gf-px-s { padding-inline: var(--gf-space-xs) !important; }
    .gf-px-m, .gf-px-l { padding-inline: var(--gf-space-s) !important; }
    .gf-px-xl, .gf-px-xxl { padding-inline: var(--gf-space-m) !important; }
  }

  @media (40rem <= width < 64rem) {
    .gf-hide-m { display: none !important; }
  }

  @media (width >= 64rem) {
    .gf-hide-l { display: none !important; }
  }
}

html .contao-cookiebar {
  --ccb-clr: var(--gf-color-text);
  --ccb-bg: var(--gf-cookiebar-bg, var(--gf-color-bg));
  --ccb-text: var(--gf-color-text);
  --ccb-btn-clr: var(--gf-color-on-primary);
  --ccb-btn-bg: var(--gf-color-primary);
  --ccb-btn-bg-hvr: color-mix(in srgb, var(--gf-color-primary) 82%, black);
  --ccb-btn-bdr: var(--gf-color-primary);
  --ccb-detail-clr: var(--gf-cookiebar-detail-color, var(--gf-color-secondary));
  --ccb-detail-clr-hvr: var(--gf-color-primary);
  --ccb-checked-clr: var(--gf-color-on-primary);
  --ccb-checked-bg: var(--gf-color-secondary);
  --ccb-focus-clr: var(--gf-color-focus);
  --ccb-info-bg: var(--gf-color-light);
  --ccb-cookies-bg: var(--gf-color-light);
  --ccb-box-shadow: var(--gf-shadow);
  font-family: var(--gf-font-body);
}

html .contao-cookiebar :is(.cc-head, .cc-group) :is(h1, h2, h3, h4, .cc-title) {
  font-family: var(--gf-font-heading);
  font-weight: var(--gf-font-weight-heading);
}

html .contao-cookiebar .highlight .success {
  --ccb-btn-bg: var(--gf-cookiebar-accept-bg, var(--gf-color-secondary));
  --ccb-btn-bg-hvr: color-mix(in srgb, var(--gf-cookiebar-accept-bg, var(--gf-color-secondary)) 82%, black);
  --ccb-btn-bdr: var(--gf-cookiebar-accept-bg, var(--gf-color-secondary));
  --ccb-btn-clr: var(--gf-cookiebar-accept-color, var(--gf-color-on-primary));
}

html .contao-cookiebar .cc-btn {
  border-radius: var(--gf-btn-radius);
  font-family: var(--gf-btn-font);
  font-weight: var(--gf-btn-weight);
  text-transform: var(--gf-btn-transform);
  letter-spacing: var(--gf-btn-letter-spacing);
}
