/* site-gen-app — generated theme.css */

:root {
  --color-primary: #0a7d5b;
  --color-secondary: #1a1a1a;
  --color-accent: #f5a623;
  --color-bg: #ffffff;
  --color-surface: #f7f7f8;
  --color-text: #111111;
  --color-muted: #666666;
  --color-border: #e5e5e5;
  --font-body: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --font-heading: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
  --font-size-xxs: 0.625rem;
  --font-size-xs: 0.75rem;
  --font-size-sm: 0.875rem;
  --font-size-md: 1rem;
  --font-size-lg: 1.125rem;
  --font-size-xl: 1.25rem;
  --font-size-xxl: 1.75rem;
  --font-size-xxxl: 2.5rem;
  --line-height-tight: 1.2;
  --line-height-normal: 1.5;
  --line-height-loose: 1.75;
  --space-xxs: 0.125rem;
  --space-xs: 0.25rem;
  --space-sm: 0.5rem;
  --space-md: 1rem;
  --space-lg: 1.5rem;
  --space-xl: 2rem;
  --space-xxl: 3rem;
  --space-xxxl: 6rem;
  --gap-xxs: 0.125rem;
  --gap-xs: 0.25rem;
  --gap-sm: 0.375rem;
  --gap-md: 0.5rem;
  --gap-lg: 0.75rem;
  --gap-xl: 1rem;
  --gap-xxl: 1.25rem;
  --gap-xxxl: 1.5rem;
  --radius-xxs: 0.125rem;
  --radius-xs: 0.25rem;
  --radius-sm: 0.375rem;
  --radius-md: 0.5rem;
  --radius-lg: 0.75rem;
  --radius-xl: 1rem;
  --radius-xxl: 1.5rem;
  --radius-xxxl: 2rem;
  --radius-pill: 999px;
  --shadow-xxs: 0 1px 1px rgba(0,0,0,.04);
  --shadow-xs: 0 1px 2px rgba(0,0,0,.06);
  --shadow-sm: 0 2px 4px rgba(0,0,0,.06);
  --shadow-md: 0 4px 12px rgba(0,0,0,.08);
  --shadow-lg: 0 12px 32px rgba(0,0,0,.12);
  --shadow-xl: 0 24px 48px rgba(0,0,0,.16);
  --shadow-xxl: 0 40px 80px rgba(0,0,0,.20);
  --shadow-xxxl: 0 60px 120px rgba(0,0,0,.24);
  --width-narrow: 640px;
  --width-contained: 1100px;
  --width-wide: 1400px;
  --width-full: 100%;
  --z-base: 0;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-modal: 1000;
  --z-toast: 2000;
  --transition-fast: 120ms ease;
  --transition-base: 200ms ease;
  --transition-slow: 320ms ease;
  --container-pad-x: 1rem;
  --container-pad-y: 2rem;
  --content-pad-x: 1rem;
  --content-pad-y: 1rem;
}

@media (min-width: 640px) {
  :root {
    --container-pad-x: 1.5rem;
    --container-pad-y: 3rem;
    --content-pad-x: 1.25rem;
    --content-pad-y: 1.25rem;
  }
}
@media (min-width: 1024px) {
  :root {
    --container-pad-x: 2rem;
    --container-pad-y: 4rem;
    --content-pad-x: 1.5rem;
    --content-pad-y: 1.5rem;
  }
}
@media (min-width: 1440px) {
  :root {
    --container-pad-x: 3rem;
    --container-pad-y: 5rem;
    --content-pad-x: 2rem;
    --content-pad-y: 2rem;
  }
}

@media (max-width: 639px) { .hide-mobile { display: none !important; } }
@media (min-width: 640px) and (max-width: 1023px) { .hide-tablet { display: none !important; } }
@media (min-width: 1024px) and (max-width: 1439px) { .hide-desktop { display: none !important; } }
@media (min-width: 1440px) { .hide-extra-large-screen { display: none !important; } }

[data-scheme="dark"] {
  --color-bg: #111111;
  --color-surface: #1a1a1a;
  --color-text: #ffffff;
  --color-muted: #aaaaaa;
  --color-border: #333333;
  --color-primary: var(--color-primary);
  --color-secondary: #ffffff;
}
[data-scheme="brand"] {
  --color-bg: var(--color-primary);
  --color-surface: var(--color-secondary);
  --color-text: var(--color-bg);
  --color-muted: #dddddd;
  --color-border: var(--color-bg);
  --color-primary: var(--color-bg);
  --color-secondary: var(--color-bg);
}
[data-scheme="accent"] {
  --color-bg: var(--color-accent);
  --color-surface: var(--color-bg);
  --color-text: var(--color-text);
  --color-muted: var(--color-muted);
  --color-border: var(--color-text);
  --color-primary: var(--color-text);
  --color-secondary: var(--color-text);
}
[data-scheme="muted"] {
  --color-bg: var(--color-surface);
  --color-surface: var(--color-bg);
  --color-text: var(--color-text);
  --color-muted: var(--color-muted);
  --color-border: var(--color-border);
  --color-primary: var(--color-primary);
  --color-secondary: var(--color-secondary);
}

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font-body);
  font-size: var(--font-size-md);
  line-height: var(--line-height-normal);
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
}
img, svg, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }

.container { width: 100%; margin-inline: auto; padding-inline: var(--container-pad-x); }
.container--narrow    { max-width: var(--width-narrow); }
.container--contained { max-width: var(--width-contained); }
.container--wide      { max-width: var(--width-wide); }
.container--full      { max-width: var(--width-full); }

.section { padding-block: var(--container-pad-y); background: var(--color-bg); color: var(--color-text); }
.section--has-bg { background-size: cover; background-position: center; position: relative; color: #fff; }
.section--has-bg .section__inner { position: relative; z-index: 1; }
.section--has-overlay::before { content: ""; position: absolute; inset: 0; background: var(--overlay-color, rgba(0,0,0,0.45)); z-index: 0; }

.container-padding   { padding: var(--container-pad-y) var(--container-pad-x); }
.container-padding-x { padding-inline: var(--container-pad-x); }
.container-padding-y { padding-block:  var(--container-pad-y); }

.content-padding     { padding: var(--content-pad-y) var(--content-pad-x); }
.content-padding-x   { padding-inline: var(--content-pad-x); }
.content-padding-y   { padding-block:  var(--content-pad-y); }

.stack > * + * { margin-top: var(--space-md); }
.cluster { display: flex; flex-wrap: wrap; gap: var(--gap-md); align-items: center; }

.meta-list { display: flex; flex-wrap: wrap; gap: var(--space-sm); align-items: center; }
.meta-list > * + *::before { content: "·"; margin-right: var(--space-sm); color: var(--color-muted); }

/* Cards */
.card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); overflow: hidden; display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit; }
.card__image { display: block; width: 100%; height: auto; }
.card__content { padding: var(--content-pad-y) var(--content-pad-x); flex: 1; }
.card__content > * + * { margin-top: var(--space-md); }

.card--vertical .card__image { aspect-ratio: 16 / 9; object-fit: cover; }

.card--horizontal { flex-direction: row; align-items: stretch; }
.card--horizontal .card__image { width: 40%; max-width: 320px; flex-shrink: 0; object-fit: cover; align-self: stretch; height: 100%; }
.card--horizontal .card__content { flex: 1; }
@media (max-width: 640px) {
  .card--horizontal { flex-direction: column; }
  .card--horizontal .card__image { width: 100%; max-width: none; aspect-ratio: 16 / 9; }
}

.card--profile { align-items: center; text-align: center; }
.card--profile .card__image { width: 96px; height: 96px; margin: var(--space-lg) auto 0; object-fit: cover; flex-shrink: 0; }

.card__image--rounded { border-radius: var(--radius-md); }
.card__image--circle  { border-radius: 999px; }

/* CTA centering */
.cta { text-align: center; }
.cta .btn-group { justify-content: center; }

/* Hero */
.hero { display: flex; flex-direction: column; align-items: flex-start; }
.section--has-bg .hero { align-items: center; text-align: center; }
.section--has-bg .hero .btn-group { justify-content: center; }

/* Row */
.row { display: flex; flex-wrap: wrap; gap: var(--gap-md); align-items: center; }

/* Gallery */
.gallery {
  --gallery-columns: 3;
  --gallery-gap: var(--gap-md);
  display: grid;
  grid-template-columns: repeat(var(--gallery-columns), minmax(0, 1fr));
  gap: var(--gallery-gap);
}
.gallery__item { margin: 0; }
.gallery__item > img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: var(--radius-md);
}
@media (max-width: 1023px) {
  .gallery { grid-template-columns: repeat(min(2, var(--gallery-columns)), minmax(0, 1fr)); }
}
@media (max-width: 639px) {
  .gallery { grid-template-columns: 1fr; }
}

/* Slider (Swiper) */
.content-slider { position: relative; }
.content-slider .swiper-button-prev,
.content-slider .swiper-button-next { color: var(--color-text); }
.content-slider .swiper-pagination-bullet-active { background: var(--color-primary); }
.content-slider__slide {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.content-slider__media {
  width: 100%;
  max-height: 420px;
  object-fit: cover;
}
.content-slider__body { padding: var(--content-pad-y) var(--content-pad-x); }
.content-slider__link { color: inherit; text-decoration: none; display: block; height: 100%; }

/* Accordion */
.accordion { border-top: 1px solid var(--color-border); }
.accordion__item { border-bottom: 1px solid var(--color-border); }
.accordion__summary {
  list-style: none;
  cursor: pointer;
  padding: var(--space-md) 0;
  font-size: var(--font-size-md);
  font-weight: 600;
}
.accordion__summary::-webkit-details-marker { display: none; }
.accordion__panel { padding: 0 0 var(--space-md); }

/* Video embed */
.video-embed { margin: 0; }
.video-embed__frame {
  position: relative;
  width: 100%;
  aspect-ratio: var(--video-ratio, 16 / 9);
  border-radius: var(--radius-md);
  overflow: hidden;
}
.video-embed__frame iframe {
  border: 0;
  width: 100%;
  height: 100%;
}

/* Logo */
.logo { display: inline-flex; align-items: center; line-height: 0; color: inherit; text-decoration: none; }
.logo img { display: block; height: auto; width: var(--logo-w-mobile, 120px); transition: var(--transition-fast); }
@media (min-width: 1024px) { .logo img { width: var(--logo-w-desktop, var(--logo-w-mobile, 160px)); } }
.logo__text { font-family: var(--font-heading); font-weight: 700; font-size: var(--font-size-lg); }

/* Site chrome */
.site-header { padding-block: var(--space-md); border-bottom: 1px solid var(--color-border); background: var(--color-bg); }
.site-header__inner { width: 100%; }
.site-footer { padding-block: var(--space-xl); border-top: 1px solid var(--color-border); background: var(--color-surface); color: var(--color-muted); }
.site-footer__inner { width: 100%; }

/* Menu nav (used in headers/footers) */
.menu-nav .menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--gap-lg); align-items: center; }
.menu-nav .menu--sub { gap: var(--gap-md); }
.menu-nav .menu-item { position: relative; }
.menu-nav .menu-item__link,
.menu-nav .menu-item__label { color: var(--color-text); font-size: var(--font-size-sm); font-weight: 500; text-decoration: none; cursor: default; transition: var(--transition-fast); }
.menu-nav .menu-item__link { cursor: pointer; }
.menu-nav .menu-item__link:hover { color: var(--color-primary); }
.menu-nav .menu-item--submenu .menu--sub {
  position: absolute; top: 100%; left: 0; z-index: var(--z-dropdown);
  background: var(--color-bg); border: 1px solid var(--color-border);
  border-radius: var(--radius-md); padding: var(--space-sm); min-width: 180px;
  flex-direction: column; align-items: flex-start; gap: var(--space-xs);
  opacity: 0; visibility: hidden; transform: translateY(4px);
  transition: var(--transition-fast);
}
.menu-nav .menu-item--submenu:hover .menu--sub,
.menu-nav .menu-item--submenu:focus-within .menu--sub {
  opacity: 1; visibility: visible; transform: translateY(0);
}

.grid { display: grid; gap: var(--grid-gap, var(--gap-md)); }
.grid-two { grid-template-columns: repeat(1, minmax(0, 1fr)); }
@media (min-width: 640px) { .grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1440px) { .grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.grid-three { grid-template-columns: repeat(1, minmax(0, 1fr)); }
@media (min-width: 640px) { .grid-three { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1440px) { .grid-three { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.grid-four { grid-template-columns: repeat(1, minmax(0, 1fr)); }
@media (min-width: 640px) { .grid-four { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .grid-four { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1440px) { .grid-four { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.grid-features { grid-template-columns: repeat(1, minmax(0, 1fr)); }
@media (min-width: 640px) { .grid-features { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .grid-features { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1440px) { .grid-features { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.grid-cards { grid-template-columns: repeat(1, minmax(0, 1fr)); }
@media (min-width: 640px) { .grid-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .grid-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1440px) { .grid-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.grid-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 640px) { .grid-logos { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .grid-logos { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@media (min-width: 1440px) { .grid-logos { grid-template-columns: repeat(6, minmax(0, 1fr)); } }

.ts-eyebrow { font-family: var(--font-body); font-size: var(--font-size-xs); font-weight: 600; line-height: var(--line-height-tight); letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-muted); }
.ts-h1 { font-family: var(--font-heading); font-size: var(--font-size-xxxl); font-weight: 700; line-height: var(--line-height-tight); }
.ts-h2 { font-family: var(--font-heading); font-size: var(--font-size-xxl); font-weight: 700; line-height: var(--line-height-tight); }
.ts-h3 { font-family: var(--font-heading); font-size: var(--font-size-xl); font-weight: 600; line-height: var(--line-height-tight); }
.ts-h4 { font-family: var(--font-heading); font-size: var(--font-size-lg); font-weight: 600; line-height: var(--line-height-tight); }
.ts-body { font-family: var(--font-body); font-size: var(--font-size-md); font-weight: 400; line-height: var(--line-height-normal); }
.ts-lead { font-family: var(--font-body); font-size: var(--font-size-lg); font-weight: 400; line-height: var(--line-height-normal); color: var(--color-muted); }
.ts-small { font-family: var(--font-body); font-size: var(--font-size-sm); font-weight: 400; line-height: var(--line-height-normal); }
.ts-caption { font-family: var(--font-body); font-size: var(--font-size-xs); font-weight: 400; line-height: var(--line-height-normal); color: var(--color-muted); }
.ts-quote { font-family: var(--font-heading); font-size: var(--font-size-xl); font-weight: 400; line-height: var(--line-height-loose); font-style: italic; color: var(--color-text); }
.ts-meta { font-family: var(--font-body); font-size: var(--font-size-xs); font-weight: 500; line-height: var(--line-height-tight); letter-spacing: 0.02em; color: var(--color-muted); }

.prose > * + * { margin-top: var(--space-md); }
.prose a { color: var(--color-primary); text-decoration: underline; text-underline-offset: 2px; }
.prose img { border-radius: var(--radius-md); }
.prose h1 { font-family: var(--font-heading); font-size: var(--font-size-xxxl); font-weight: 700; line-height: var(--line-height-tight); }
.prose h2 { font-family: var(--font-heading); font-size: var(--font-size-xxl); font-weight: 700; line-height: var(--line-height-tight); }
.prose h3 { font-family: var(--font-heading); font-size: var(--font-size-xl); font-weight: 600; line-height: var(--line-height-tight); }
.prose h4 { font-family: var(--font-heading); font-size: var(--font-size-lg); font-weight: 600; line-height: var(--line-height-tight); }
.prose p { font-family: var(--font-body); font-size: var(--font-size-md); font-weight: 400; line-height: var(--line-height-normal); }
.prose blockquote { font-family: var(--font-heading); font-size: var(--font-size-xl); font-weight: 400; line-height: var(--line-height-loose); font-style: italic; color: var(--color-text); }
.prose small { font-family: var(--font-body); font-size: var(--font-size-sm); font-weight: 400; line-height: var(--line-height-normal); }
.prose figcaption { font-family: var(--font-body); font-size: var(--font-size-xs); font-weight: 400; line-height: var(--line-height-normal); color: var(--color-muted); }
.prose-article h1 { font-family: var(--font-heading); font-size: var(--font-size-xxxl); font-weight: 700; line-height: var(--line-height-tight); margin-top: var(--space-xxl); margin-bottom: var(--space-lg); }
.prose-article h2 { font-family: var(--font-heading); font-size: var(--font-size-xxl); font-weight: 700; line-height: var(--line-height-tight); margin-top: var(--space-xl); margin-bottom: var(--space-md); }
.prose-article h3 { font-family: var(--font-heading); font-size: var(--font-size-xl); font-weight: 600; line-height: var(--line-height-tight); margin-top: var(--space-lg); margin-bottom: var(--space-sm); }
.prose-article h4 { font-family: var(--font-heading); font-size: var(--font-size-lg); font-weight: 600; line-height: var(--line-height-tight); margin-top: var(--space-md); margin-bottom: var(--space-sm); }
.prose-article h5 { font-family: var(--font-heading); font-size: var(--font-size-md); font-weight: 600; line-height: var(--line-height-tight); }
.prose-article h6 { font-family: var(--font-heading); font-size: var(--font-size-sm); font-weight: 600; line-height: var(--line-height-tight); text-transform: uppercase; letter-spacing: 0.05em; }
.prose-article p { font-family: var(--font-body); font-size: var(--font-size-lg); line-height: var(--line-height-loose); margin-bottom: var(--space-md); }
.prose-article ul { margin-bottom: var(--space-md); padding-inline-start: var(--space-lg); list-style: disc; }
.prose-article ol { margin-bottom: var(--space-md); padding-inline-start: var(--space-lg); list-style: decimal; }
.prose-article li { margin-bottom: var(--space-xs); line-height: var(--line-height-loose); }
.prose-article blockquote { font-style: italic; font-size: var(--font-size-xl); line-height: var(--line-height-loose); padding-inline-start: var(--space-lg); border-left: 4px solid; border-color: var(--color-primary); margin-top: var(--space-xl); margin-bottom: var(--space-xl); color: var(--color-text); }
.prose-article a { color: var(--color-primary); text-decoration: underline; text-underline-offset: 3px; }
.prose-article hr { border-color: var(--color-border); margin-top: var(--space-xl); margin-bottom: var(--space-xl); }
.prose-article img { border-radius: var(--radius-md); margin-top: var(--space-lg); margin-bottom: var(--space-lg); max-width: 100%; }
.prose-article figcaption { font-size: var(--font-size-sm); color: var(--color-muted); margin-top: var(--space-xs); text-align: center; }

.link { color: var(--color-primary); text-decoration: underline; text-underline-offset: 2px; }
.link:hover { color: var(--color-secondary); text-decoration: underline; }
.link-subtle { color: var(--color-text); text-decoration: none; }
.link-subtle:hover { text-decoration: underline; }
.link-external { color: var(--color-primary); text-decoration: underline; }

.table { width: 100%; border-collapse: collapse; font-size: var(--font-size-sm); }
.table th, .table td { padding: var(--space-sm) var(--space-md); text-align: left; vertical-align: top; border-bottom: 1px solid var(--color-border); }
.table th { background: var(--color-surface); color: var(--color-text); font-weight: 600; }
.table-striped tbody tr:nth-child(odd) td { background: var(--color-surface); }
.table-bordered th, .table-bordered td { border: 1px solid var(--color-border); }

.form-input { display: block; width: 100%; background: var(--color-bg); color: var(--color-text); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--space-sm) var(--space-md); font-size: var(--font-size-md); transition: var(--transition-fast); }
.form-input:focus { outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 30%, transparent); }
.form-label { display: block; margin-bottom: var(--space-xs); font-size: var(--font-size-sm); font-weight: 600; color: var(--color-text); }
.form-help { margin-top: var(--space-xs); font-size: var(--font-size-xs); color: var(--color-muted); }

.code { display: inline; background: var(--color-surface); color: var(--color-text); border-radius: var(--radius-sm); padding: var(--space-xxs) var(--space-xs); font-family: var(--font-mono); font-size: var(--font-size-sm); }
.code-block { display: block; overflow-x: auto; background: var(--color-surface); color: var(--color-text); border-radius: var(--radius-md); padding: var(--space-md); font-family: var(--font-mono); font-size: var(--font-size-sm); }

.btn { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; cursor: pointer; transition: var(--transition-base); border: none; font-family: inherit; gap: var(--space-xs); }
.btn:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.btn-group { display: flex; flex-wrap: wrap; gap: var(--gap-sm); }

.btn-primary { background: var(--color-primary); color: var(--color-bg); border: none; font-weight: 600; }
.btn-primary:hover { background: var(--color-secondary); color: var(--color-bg); }
.btn-secondary { background: var(--color-secondary); color: var(--color-bg); border: none; font-weight: 600; }
.btn-secondary:hover { background: var(--color-text); color: var(--color-bg); }
.btn-alternative { background: transparent; color: var(--color-primary); border: 2px solid; border-color: var(--color-primary); font-weight: 600; }
.btn-alternative:hover { background: var(--color-primary); color: var(--color-bg); }
.btn-sm { font-size: var(--font-size-sm); padding: var(--space-xs) var(--space-md); border-radius: var(--radius-sm); }
.btn-md { font-size: var(--font-size-md); padding: var(--space-sm) var(--space-lg); border-radius: var(--radius-md); }
.btn-lg { font-size: var(--font-size-lg); padding: var(--space-md) var(--space-xl); border-radius: var(--radius-md); }