/* ==========================================================================
   Xerculis — styles modeled on outseta.com's section/component system
   (section / container / row / col / card / button / badge / u-* utilities)
   Colors come from DESIGN.md; structure, spacing and type scale from the
   live Outseta stylesheet.
   ========================================================================== */

:root {
  /* Brand colors (DESIGN.md) */
  --color-aubergine: #240029;
  --color-fuchsia-signal: #df37a7;
  --color-heather: #6d526d;
  --color-glowstick: #ffcc11;
  --color-plum-tinted: #d4ccd4;
  --color-forest: #15803d;
  --color-mint: #bbf7d0;
  --color-honeydew: #dcfce7;
  --color-strawberry: #ef4444;
  --color-mango: #22c55e;

  /* Ink scale (Outseta's colors-black--* mixed from our Aubergine) */
  --ink: #240029;
  --ink-50: color-mix(in oklch, var(--ink) 2%, transparent);
  --ink-100: color-mix(in oklch, var(--ink) 5%, transparent);
  --ink-200: color-mix(in oklch, var(--ink) 11%, transparent);
  --ink-300: color-mix(in oklch, var(--ink) 20%, transparent);
  --ink-400: color-mix(in oklch, var(--ink) 32%, transparent);
  --ink-500: color-mix(in oklch, var(--ink) 50%, transparent);
  --ink-600: color-mix(in oklch, var(--ink) 68%, transparent);
  --white-100: #ffffff0d;
  --white-200: #ffffff1c;
  --white-300: #fff3;
  --white-500: #ffffff80;
  --white-600: #ffffffad;

  /* Theme (swapped by .u-mode-dark) */
  --text: var(--ink);
  --text-muted: var(--ink-600);
  --background: #fff;
  --background-secondary: var(--ink-100);
  --background-tertiary: var(--ink-50);
  --border: var(--ink-200);
  --card-bg: #fff;
  --card-border: var(--ink-200);
  --button-bg: var(--color-fuchsia-signal);
  --button-bg-hover: color-mix(in oklch, var(--color-fuchsia-signal) 92%, black);
  --button-text: #fff;
  --button-secondary-border: var(--ink-300);

  /* Fonts */
  --font-primary: 'Inter', ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-heading: 'Inter Tight', 'Inter', ui-sans-serif, system-ui, sans-serif; /* Kaio substitute */
  --font-mono: 'JetBrains Mono', ui-monospace, Menlo, monospace;
  --font-hand: 'Permanent Marker', cursive;

  /* Fluid type (Outseta: fluid between 20rem and 84rem viewports) */
  --h1: clamp(2.25rem, 1.547rem + 3.516vw, 4.5rem);
  --h2: clamp(1.875rem, 1.523rem + 1.758vw, 3rem);
  --h3: clamp(1.5rem, 1.266rem + 1.172vw, 2.25rem);
  --h4: clamp(1.25rem, 1.094rem + .781vw, 1.75rem);
  --p-xl: clamp(1.2rem, 1.106rem + .469vw, 1.5rem);
  --p-lg: clamp(1.1rem, 1.053rem + .234vw, 1.25rem);
  --p-longform: clamp(1.25rem, 1.133rem + .586vw, 1.625rem);

  /* Layout */
  --container-width: 88%;
  --container-max: 1440px;
  --gap: 32px;
  --section-pad: 8rem;
  --section-pad-compact: 4rem;

  /* Radii */
  --radius-small: .375rem;
  --radius-small-plus: .5rem;
  --radius-small-plus-plus: .625rem;
  --radius-medium: .875rem;
  --radius-card: 1.25rem;
  --radius-large: 1.375rem;
  --radius-xl: 2rem;
  --radius-round: 999px;

  /* Buttons */
  --btn-height: 3.5rem;
  --btn-px: 1.5rem;

  /* Purple-tinted shadows */
  --shadow-color: 292deg 100% 8%;
  --shadow-card: 0 0 0 1px var(--card-border), 0 2px 2px 0 hsl(var(--shadow-color) / .05);
  --shadow-card-hover: 0 0 0 1px var(--ink-400), 0 2px 2px 0 hsl(var(--shadow-color) / .05);
  --shadow-sm: 0 0 0 1px hsl(var(--shadow-color) / .11), 0 1px 2px 0 hsl(var(--shadow-color) / .05);
  --shadow-md: 0 0 0 1px hsl(var(--shadow-color) / .11), 0 1px 1.5px hsl(var(--shadow-color) / .01), 0 2px 3px hsl(var(--shadow-color) / .02), 0 4px 6px hsl(var(--shadow-color) / .03), 0 8px 12px hsl(var(--shadow-color) / .04);
  --shadow-overlay: 0 0 0 1px hsl(var(--shadow-color) / .11), 0 1px 1.5px hsl(var(--shadow-color) / .01), 0 2px 3px hsl(var(--shadow-color) / .02), 0 4px 6px hsl(var(--shadow-color) / .03), 0 8px 12px hsl(var(--shadow-color) / .04), 0 16px 24px hsl(var(--shadow-color) / .05);
  --shadow-highlight: 0 0 0 1px hsl(var(--shadow-color) / .11), 0 1px 1.5px hsl(var(--shadow-color) / .01), 0 2px 3px hsl(var(--shadow-color) / .02), 0 4px 6px hsl(var(--shadow-color) / .03), 0 8px 12px hsl(var(--shadow-color) / .04), 0 16px 24px hsl(var(--shadow-color) / .05), 0 24px 36px hsl(var(--shadow-color) / .06), 0 36px 54px hsl(var(--shadow-color) / .07);

  --ease: cubic-bezier(.165, .84, .44, 1);
}

.u-mode-dark {
  --text: #fff;
  --text-muted: var(--white-600);
  --background: var(--ink);
  --background-secondary: var(--white-100);
  --background-tertiary: #ffffff05;
  --border: var(--white-200);
  --card-bg: var(--white-100);
  --card-border: var(--white-300);
  --button-secondary-border: var(--white-300);
  color: var(--text);
}

/* ==========================================================================
   Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--background);
  color: var(--text);
  font-family: var(--font-primary);
  font-size: 1rem;
  line-height: 1.5;
  letter-spacing: -.01em;
  font-feature-settings: "calt", "cv11", "ss02", "ss03";
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; letter-spacing: inherit; }
p { margin: 0 0 .5em; }
p:last-child { margin-bottom: 0; }
ul { margin: 0; padding: 0; list-style: none; }
::selection { background: #ffbdd3; color: var(--ink); }
:focus-visible { outline: 2px solid var(--color-heather); outline-offset: 2px; }

h1, .h1, h2, .h2, h3, .h3 { margin: 0; font-family: var(--font-heading); font-weight: 700; letter-spacing: -.02em; color: var(--text); text-wrap: balance; }
h1, .h1 { font-size: var(--h1); line-height: 1; margin-bottom: .25em; }
h2, .h2 { font-size: var(--h2); line-height: 1.1; margin-bottom: .25em; }
h3, .h3 { font-size: var(--h3); line-height: 1.2; margin-bottom: .5em; }
h4, .h4 { margin: 0 0 .5em; font-family: var(--font-primary); font-size: var(--h4); line-height: 1.4; font-weight: 500; letter-spacing: -.02em; }
h5, h6 { margin: 0; }

/* ==========================================================================
   Layout: section / container / row / col
   ========================================================================== */
.page-wrapper { position: relative; }
.section { position: relative; padding: var(--section-pad) 0; background-color: var(--background); text-align: left; }
.section.cc-compact { padding: var(--section-pad-compact) 0; }
.section.cc-hero { padding-top: var(--section-pad); }
.section.cc-hero-lg { padding-top: calc(var(--section-pad) * 1.5); }
.section.cc-inset { border-radius: var(--radius-xl); margin: 0 .5rem; overflow: clip; }
.section-inset { position: absolute; inset: .5rem; border-radius: var(--radius-xl); overflow: hidden; z-index: 0; }

.container { position: relative; z-index: 1; width: var(--container-width); max-width: var(--container-max); margin: 0 auto; }
.container.cc-sm { max-width: calc(var(--container-max) * .8); }
.container.cc-xs { max-width: calc(var(--container-max) * .6); }
/* full-width container: spans the viewport with a side gutter instead of the max width */
.container.container-fluid { width: 100%; max-width: none; padding-left: clamp(1rem, 3vw, 2.5rem); padding-right: clamp(1rem, 3vw, 2.5rem); }

.row { display: flex; flex-wrap: wrap; row-gap: var(--gap); margin: 0 calc(var(--gap) / -2); }
.row-justify-center { justify-content: center; }
.row-justify-between { justify-content: space-between; }
.row-align-center { align-items: center; }
.row-align-end { align-items: flex-end; }
.row-no-gutters { row-gap: 0; margin: 0; }
.row-no-gutters > .col { padding: 0; }
.row-sm-gutters { margin: 0 calc(var(--gap) / -4); row-gap: calc(var(--gap) / 2); }
.row-sm-gutters > .col { padding: 0 calc(var(--gap) / 4); }
.row-xs-gutters { margin: 0 calc(var(--gap) / -8); row-gap: calc(var(--gap) / 8); }
.row-xs-gutters > .col { padding: 0 calc(var(--gap) / 8); }
.row-lg-gutters { margin: 0 calc(var(--gap) * -1); row-gap: calc(var(--gap) * 2); }
.row-lg-gutters > .col { padding: 0 var(--gap); }

.col { flex: 1; padding: 0 calc(var(--gap) / 2); min-width: 0; }
.col-shrink { flex: 0 auto; }
.col-lg-3 { flex-basis: 25%; max-width: 25%; }
.col-lg-4 { flex-basis: 33.333%; max-width: 33.333%; }
.col-lg-5 { flex-basis: 41.667%; max-width: 41.667%; }
.col-lg-6 { flex-basis: 50%; max-width: 50%; }
.col-lg-7 { flex-basis: 58.333%; max-width: 58.333%; }
.col-lg-8 { flex-basis: 66.667%; max-width: 66.667%; }
.col-lg-10 { flex-basis: 83.333%; max-width: 83.333%; }
.col-lg-12 { flex-basis: 100%; max-width: 100%; }

/* ==========================================================================
   Typography helpers
   ========================================================================== */
.eyebrow {
  display: block;
  margin-bottom: 1.5rem;
  font-family: var(--font-mono);
  font-size: 1rem;
  line-height: 1.2;
  font-weight: 400;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.paragraph-longform { font-size: var(--p-longform); line-height: 1.5; letter-spacing: -.0015em; margin-bottom: 1em; text-wrap: pretty; }
.paragraph-longform strong { font-weight: 700; color: var(--text); }
.paragraph-longform a { color: var(--text); text-decoration: underline; text-decoration-color: var(--ink-300); text-decoration-thickness: 2px; text-underline-offset: 3px; transition: text-decoration-color .2s; }
.paragraph-longform a:hover { text-decoration-color: var(--text); }
.paragraph-1-5 { font-size: var(--p-xl); line-height: 1.4; font-weight: 500; }
.paragraph-1-25 { font-size: var(--p-lg); line-height: 1.4; }
.paragraph-body { font-size: 1rem; }
.paragraph-0-875 { font-size: .875rem; }
.paragraph-0-75 { font-size: .75rem; }
.paragraph-0-625 { font-size: .625rem; }
.rich-text p { margin-bottom: 1em; }
.rich-text p:last-child { margin-bottom: 0; }
.rich-text strong { color: var(--text); font-weight: 600; }

.u-text-muted { color: var(--text-muted); }
.u-text-black { color: var(--text); }
.u-text-bold { font-weight: 600; }
.u-text-center { text-align: center; }
.u-text-mono { font-family: var(--font-mono); letter-spacing: .04em; text-transform: uppercase; }
.u-text-hand { font-family: var(--font-hand); font-weight: 400; letter-spacing: -.01em; line-height: 1.3; }
.u-text-primary-alt { color: var(--color-fuchsia-signal); }
.u-underline { color: var(--text); text-decoration: underline; text-decoration-color: var(--ink-300); text-underline-offset: 3px; text-decoration-thickness: 2px; }
.u-mode-dark .u-underline { text-decoration-color: var(--white-300); }
.u-rotate--7deg { transform: rotate(-7deg); }
.u-rotate-7deg { transform: rotate(7deg); }
.u-rotate--4deg { transform: rotate(-4deg); }

/* Spacing utilities */
.u-mb-0 { margin-bottom: 0 !important; }
.u-mb-0-5 { margin-bottom: .5rem; }
.u-mb-1 { margin-bottom: 1rem; }
.u-mb-1-5 { margin-bottom: 1.5rem; }
.u-mb-2 { margin-bottom: 2rem; }
.u-mb-3 { margin-bottom: 3rem; }
.u-mb-4 { margin-bottom: 4rem; }
.u-mb-6 { margin-bottom: 6rem; }
.u-mt-1 { margin-top: 1rem; }
.u-mt-2 { margin-top: 2rem; }
.u-mt-3 { margin-top: 3rem; }
.u-pt-0 { padding-top: 0 !important; }
.u-pb-0 { padding-bottom: 0 !important; }
.u-pb-3 { padding-bottom: 3rem !important; }
.u-p-1 { padding: 1rem; }
.u-maxw-28 { max-width: 28rem; }
.u-h-100 { height: 100%; }
.u-w-100 { width: 100%; }

/* Flex utilities */
.u-d-flex { display: flex; }
.cc-vertical { flex-direction: column; }
.cc-wrap { flex-wrap: wrap; }
.cc-align-center { align-items: center; }
.cc-justify-center { justify-content: center; }
.cc-justify-space-between { justify-content: space-between; }
.cc-gap-0-25 { gap: .25rem; }
.cc-gap-0-5 { gap: .5rem; }
.cc-gap-0-75 { gap: .75rem; }
.cc-gap-1 { gap: 1rem; }
.cc-gap-2 { gap: 2rem; }

/* Backgrounds / misc utilities */
.u-bg-tertiary { background-color: var(--background-tertiary); }
.u-bg-transparent { background-color: transparent; }
.u-bg-translucent { background-color: var(--white-500); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); }
.u-bg-lemon { background-color: var(--color-glowstick); }
.u-bg-brand-secondary { background-color: var(--color-fuchsia-signal); }
.u-bg-gradient-2 { background-image: linear-gradient(135deg, var(--color-glowstick) 20%, var(--color-fuchsia-signal)); }
.u-opacity-0-5 { opacity: .5; }
.u-position-relative { position: relative; }
.u-z-index-1 { z-index: 1; }
.u-z-index-2 { z-index: 2; }
.u-border-bottom { border-bottom: 1px solid var(--border); }
.u-border-top { border-top: 1px solid var(--border); }
.u-radius-card { border-radius: var(--radius-card); overflow: clip; }
.u-radius-round { border-radius: var(--radius-round) !important; }
.u-shadow-sm { box-shadow: var(--shadow-sm); }
.u-shadow-md { box-shadow: var(--shadow-md); }
.u-shadow-overlay { box-shadow: var(--shadow-overlay); }
.u-shadow-highlight { box-shadow: var(--shadow-highlight); }
.u-overflow-visible { overflow: visible !important; }
.u-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.u-divider { width: 100%; height: 1px; background: var(--border); }
.u-divider.cc-bold { background: var(--ink-300); }
.u-mode-dark .u-divider.cc-bold { background: var(--white-300); }
.u-fade-to-white-bottom { position: absolute; inset: auto 0 0; height: 12rem; background-image: linear-gradient(180deg, #fff0, var(--background)); pointer-events: none; z-index: 2; }
.u-fade-to-white-top { position: absolute; inset: 0 0 auto; height: 12rem; background-image: linear-gradient(0deg, #fff0, var(--background) 75%); pointer-events: none; z-index: 0; }
.u-card-outset {
  position: absolute; inset: -.5rem; z-index: -1;
  border-radius: calc(var(--radius-card) + .5rem);
  background-color: var(--ink-50);
  -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
  box-shadow: var(--shadow-sm);
}
.u-isolate { isolation: isolate; }
.u-vw-50 { width: 50vw; max-width: 50vw; }
.u-float-right { margin-left: auto; float: right; }
.u-d-none-tablet { }
.u-d-block-tablet { display: none; }
.icon-color { display: flex; color: inherit; }
.icon-color i { font-size: 1.25em; }

/* ==========================================================================
   Buttons
   ========================================================================== */
.button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  min-height: var(--btn-height);
  padding: 0 var(--btn-px);
  gap: .75rem;
  border: 0;
  border-radius: var(--radius-small-plus);
  background-color: var(--button-bg);
  box-shadow: inset 0 0 0 1px var(--button-secondary-border);
  color: var(--button-text);
  font-size: var(--p-lg);
  font-weight: 500;
  letter-spacing: -.01em;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color .2s var(--ease), color .2s ease-in-out;
}
.button:hover { background-color: var(--button-bg-hover); }
.button.cc-secondary { background-color: transparent; color: var(--text); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); }
.button.cc-secondary:hover { background-color: var(--ink-100); }
.u-mode-dark .button.cc-secondary:hover { background-color: var(--white-100); }
.button.cc-full { width: 100%; }
.button.cc-medium { min-height: 2.5rem; padding: 0 1rem; font-size: .875rem; gap: .5rem; }
.button.cc-small { min-height: 2rem; padding: 0 .75rem; font-size: .875rem; gap: .375rem; }
.button i { font-size: 1.1em; }

.btn-minimal { display: inline-flex; align-items: center; gap: .375rem; font-weight: 600; font-size: .875rem; transition: color .2s; }
.btn-minimal:hover { color: var(--text-muted); }
.btn-minimal i { transition: transform .2s var(--ease); }
.btn-minimal:hover i { transform: translateX(3px); }
.btn-icon-only {
  display: inline-grid; place-items: center;
  width: 2.5rem; height: 2.5rem;
  border-radius: var(--radius-small-plus);
  box-shadow: inset 0 0 0 1px var(--button-secondary-border);
  font-size: 1.125rem;
  transition: background-color .2s;
}
.btn-icon-only:hover { background-color: var(--ink-100); }

/* ==========================================================================
   Badges
   ========================================================================== */
.badge {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  padding: .1rem .75rem;
  border: 1px solid var(--ink-200);
  border-radius: var(--radius-small);
  background-color: var(--ink-50);
  -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px);
  font-size: .75rem;
  font-weight: 500;
  white-space: nowrap;
}
.badge.cc-large { padding: .25rem .75rem; gap: .5rem; font-size: 1rem; }
.badge.cc-dark { background-color: var(--ink); color: #fff; border-color: var(--ink); }
.badge.cc-success { border-color: var(--color-mint); background-color: var(--color-honeydew); color: var(--color-forest); }
.badge.cc-warning { border-color: #e6e67d; background-color: #fefec7; color: #66660a; }
.badge.cc-error { border-color: #fecaca; background-color: #fee2e2; color: #b91c1c; }
.badge.cc-lemon { background-color: var(--color-glowstick); border-color: var(--ink-100); }
.u-mode-dark .badge { border-color: var(--white-200); background-color: var(--white-100); }

/* ==========================================================================
   Cards
   ========================================================================== */
.card {
  position: relative;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
  background-color: var(--card-bg);
  overflow: clip;
}
.card.cc-shadow { border: 0; box-shadow: var(--shadow-card); transition: box-shadow .2s var(--ease); }
a.card.cc-shadow:hover { box-shadow: var(--shadow-card-hover); }
.card.cc-airy { border-width: 1px 0 0 1px; border-style: solid none none solid; border-color: var(--border); border-radius: 0; box-shadow: none; background: transparent; }
.card.no-border { border: 0; }
.card-body { position: relative; display: flex; flex-direction: column; flex: 1; padding: 24px; }
.card-body.cc-space-between { justify-content: space-between; }
.card-top-right-corner { position: absolute; top: 24px; right: 24px; z-index: 1; display: flex; }
.card-fade-bottom { position: absolute; inset: 0; z-index: -1; background-image: linear-gradient(var(--card-bg) 75%, transparent); }
.u-link-cover, .u-position-absolute-inset-0 { position: absolute; inset: 0; z-index: 2; }

/* Hover group (Outseta's --_state---off trick) */
.u-hover-parent { --state-off: 0; }
.u-hover-parent:hover { --state-off: 1; }
.group-hover-move-up-right { transform: translate(calc(.5rem * var(--state-off, 0)), calc(-.5rem * var(--state-off, 0))); transition: transform .4s var(--ease); }
.group-hover-move-right { transform: translateX(calc(.5rem * var(--state-off, 0))); transition: transform .4s var(--ease); }
.group-hover-scale { transform: scale(calc(1 + .06 * var(--state-off, 0))); transition: transform .4s var(--ease); }

/* ==========================================================================
   Navbar (floating pill)
   ========================================================================== */
.navbar_component { position: fixed; top: 0; left: 0; right: 0; z-index: 30; }
.navbar_container {
  display: grid;
  grid-template-columns: 1fr;
  width: var(--container-width);
  max-width: var(--container-max);
  margin: 0 auto;
  padding-top: 1.5rem;
}
.navbar_wrapper {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem;
  min-height: 48px;
  padding: .25rem .5rem .25rem .75rem;
  border-radius: var(--radius-medium);
  background-color: #ffffffb3;
  -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
  box-shadow: var(--shadow-md);
}
.navbar_logo-link { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--font-heading); font-weight: 700; font-size: 1.25rem; letter-spacing: -.02em; justify-self: start; }
.navbar_logo-link svg { width: 26px; height: 26px; }
.navbar_logo-link .brand-wordmark { width: auto; height: 1.75rem; color: #240029; }
.navbar_menu-inner { display: flex; align-items: center; gap: .125rem; }
.navbar_menu-dropdown { position: relative; }
.navbar_link, .navbar_dropdown-trigger {
  display: inline-flex;
  align-items: center;
  gap: .375rem;
  padding: .25rem .75rem;
  min-height: 2rem;
  border: 0;
  border-radius: var(--radius-small-plus);
  background: none;
  color: var(--text-muted);
  font-size: .875rem;
  font-weight: 500;
  cursor: pointer;
  transition: background-color .4s cubic-bezier(.86,0,.07,1), color .4s cubic-bezier(.86,0,.07,1);
}
.navbar_link:hover, .navbar_dropdown-trigger:hover, .navbar_menu-dropdown.is-open > .navbar_dropdown-trigger { background-color: var(--ink-100); color: var(--text); }
.dropdown-chevron { display: flex; font-size: .75rem; transition: transform .2s; }
.navbar_menu-dropdown.is-open .dropdown-chevron { transform: rotate(180deg); }
.navbar_dropdown-wrapper {
  position: absolute;
  top: 100%;
  left: -1rem;
  padding-top: 1rem;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
}
.navbar_menu-dropdown.is-open > .navbar_dropdown-wrapper { opacity: 1; visibility: visible; transform: none; }
.navbar_dropdown-list {
  padding: .5rem;
  border-radius: var(--radius-large);
  background-color: var(--background);
  box-shadow: var(--shadow-overlay);
}
.navbar_dropdown-link {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .5rem 1rem .5rem .5rem;
  border-radius: var(--radius-medium);
  font-size: .875rem;
  line-height: 1.4;
  white-space: nowrap;
  transition: background-color .2s ease-in-out;
}
.navbar_dropdown-link:hover { background-color: var(--ink-100); }
.navbar_dropdown-link strong { display: block; font-weight: 600; }
.navbar_dropdown-link span { display: block; color: var(--text-muted); }
.featured-icon-color {
  display: inline-flex;
  padding: .5rem;
  border-radius: var(--radius-small-plus-plus);
  background-color: var(--background);
  box-shadow: var(--shadow-sm);
  font-size: 1.25rem;
  transition: box-shadow .2s, background-color .2s, color .2s;
}
.navbar_dropdown-link:hover .featured-icon-color { background-color: var(--ink); color: #fff; box-shadow: none; }

/* Services mega dropdown */
/* Static parent: the mega panel centres on the fixed navbar (full viewport width), not on its trigger */
.navbar_menu-dropdown:has(> .navbar_mega) { position: static; }
.navbar_mega { left: 50%; transform: translate(-50%, -4px); }
.navbar_menu-dropdown.is-open > .navbar_mega { transform: translate(-50%, 0); }
.navbar_mega .navbar_dropdown-list { width: min(1200px, 94vw); padding: 1.25rem; }
.mega_grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1rem; }
.mega_col h4 {
  display: flex; align-items: center; gap: .5rem;
  margin: 0 0 .5rem; padding: 0 .5rem .625rem;
  border-bottom: 1px solid var(--border);
  font-family: var(--font-mono); font-size: .75rem; font-weight: 400;
  letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted);
}
.mega_col a { display: block; padding: .375rem .5rem; border-radius: var(--radius-small-plus); font-size: .8125rem; font-weight: 500; line-height: 1.35; white-space: normal; }
.mega_col a:hover { background-color: var(--ink-100); }
.mega_foot { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 1rem; padding: .75rem .5rem 0; border-top: 1px solid var(--border); font-size: .875rem; }

.navbar_button-wrapper { display: flex; justify-content: flex-end; align-items: center; gap: .25rem; }
.navbar_menu-button { display: none; width: 2.5rem; height: 2.5rem; border: 0; background: none; border-radius: var(--radius-small-plus); font-size: 1.5rem; cursor: pointer; place-items: center; }
.navbar_menu-button:hover { background: var(--ink-100); }

/* Language dropdown (src/i18n): flag + code, left of Log in; stays visible on mobile */
.lang-switch_trigger { padding-inline: .5rem .625rem; }
.lang-flag { width: 20px; height: 14px; flex: none; border-radius: 3px; object-fit: cover; box-shadow: 0 0 0 1px rgba(36,0,41,.12); }
.lang-switch_code { font-size: .8125rem; font-weight: 600; letter-spacing: .02em; }
.lang-switch_menu { left: auto; right: -.5rem; }
.lang-switch_menu .navbar_dropdown-list { min-width: 11rem; display: grid; gap: 2px; }
.lang-switch_link { display: flex; align-items: center; gap: .625rem; padding: .5rem .75rem; border-radius: var(--radius-medium); font-size: .875rem; font-weight: 500; white-space: nowrap; color: var(--text-muted); transition: background-color .2s; }
.lang-switch_link:hover { background-color: var(--ink-100); color: var(--text); }
.lang-switch_link.is-current { color: var(--text); font-weight: 600; }
.lang-switch_link i { margin-left: auto; font-size: .875rem; }
/* Narrow desktops: longer labels (German) plus the language dropdown must still fit on one line */
.navbar_link, .navbar_dropdown-trigger { white-space: nowrap; }
@media (min-width: 992px) and (max-width: 1279px) {
  .navbar_link, .navbar_dropdown-trigger { padding-inline: .5rem; }
  .navbar_menu-inner { gap: 0; }
  .lang-switch_code, .lang-switch_trigger .dropdown-chevron { display: none; }
}

/* Announcement link under the navbar (Outseta "Migrating from…?") */
.navbar_notice { display: flex; justify-content: flex-end; gap: 1rem; padding: .5rem .25rem 0; font-size: .8125rem; }
.navbar_notice a { display: inline-flex; align-items: center; gap: .25rem; color: var(--text-muted); }
.navbar_notice a:hover { color: var(--text); }

/* Mobile panel */
.navbar_mobile { display: none; }

/* ==========================================================================
   Hero
   ========================================================================== */
.hero-bg { position: absolute; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.hero-blur-3 { position: absolute; inset: 0 auto auto 0; width: 50%; aspect-ratio: 1; border-radius: 1000px; filter: blur(10vw); transform: translate(-50%, -50%); }
.hero-blur-2 { position: absolute; inset: auto 0 0 auto; width: 50%; aspect-ratio: 1; border-radius: 1000px; filter: blur(10vw); transform: translate(50%, 50%); }
.hero-blur { position: absolute; inset: -3rem 25% auto; height: 12rem; filter: blur(64px); transform: rotate(-20deg); opacity: .55; z-index: 0; }
.interactive-dots-grid {
  position: absolute; inset: 0;
  background-image: radial-gradient(var(--ink-300) 1px, transparent 1px);
  background-size: 22px 22px;
  -webkit-mask-image: radial-gradient(60% 60%, #000 0%, #0000 100%);
  mask-image: radial-gradient(60% 60%, #000 0%, #0000 100%);
}

.hero_badge { display: inline-flex; align-items: center; gap: .5rem; }
.hero_badge i { font-size: 1.25rem; color: var(--ink); }

/* Marquee of audiences */
.marquee-component { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 15%, #000 85%, transparent); mask-image: linear-gradient(90deg, transparent, #000 15%, #000 85%, transparent); }
.marquee-content { display: flex; width: max-content; animation: marquee 32s linear infinite; }
.marquee-group { display: flex; gap: .5rem; padding-right: .5rem; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* Showcase cards */
.showcase_card .card-body.u-bg-tertiary { aspect-ratio: 16 / 10; display: grid; place-items: center; overflow: hidden; }
.showcase_visual { width: 100%; height: 100%; border-radius: var(--radius-small-plus); display: grid; place-items: center; text-align: center; padding: 1rem; }
.showcase_visual .big { font-family: var(--font-heading); font-weight: 700; font-size: clamp(2rem, 1.5rem + 2vw, 3.25rem); line-height: 1; letter-spacing: -.03em; }
.showcase_visual .sub { margin-top: .5rem; font-size: .875rem; color: var(--text-muted); }
.tone-1 { background: linear-gradient(160deg, #ffe4ee, #fff1bd); }
.tone-2 { background: linear-gradient(160deg, #f3e8f3, #e9ddf5); }
.tone-3 { background: linear-gradient(160deg, #fff1bd, #ffdf6e); }
.tone-4 { background: var(--ink); color: #fff; }
.tone-4 .sub { color: var(--white-600); }
.callout-left, .callout-right { position: absolute; top: -1rem; transform: translateY(-100%); z-index: 3; }
.callout-left { left: -25%; right: 25%; }
.callout-right { left: 25%; right: -25%; }
.callout-arrow { width: 56px; height: 44px; flex: none; }

/* ==========================================================================
   Testimonials
   ========================================================================== */
.testimonial_person { display: flex; align-items: center; gap: .75rem; }
.avatar { width: 40px; height: 40px; flex: none; border-radius: 50%; background: var(--ink); color: #fff; display: grid; place-items: center; font-weight: 600; font-size: .9375rem; }
.avatar.cc-sm { width: 24px; height: 24px; font-size: .625rem; }
.stars { display: flex; gap: 2px; color: var(--color-glowstick); font-size: 1rem; }

/* ==========================================================================
   Integrations (logos + steps)
   ========================================================================== */
.tooltip1_component { position: relative; display: flex; }
.logo_tile {
  display: grid; place-items: center;
  width: 3.5rem; height: 3.5rem;
  border-radius: var(--radius-medium);
  background: var(--background);
  box-shadow: var(--shadow-sm);
  font-size: 1.75rem;
  color: var(--ink);
  transition: box-shadow .2s, transform .2s var(--ease);
}
.tooltip1_component:hover .logo_tile { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.tooltip1_tooltip {
  position: absolute; bottom: calc(100% + .5rem); left: 50%;
  transform: translate(-50%, 4px);
  padding: .25rem .5rem;
  border-radius: var(--radius-small);
  background: var(--ink); color: #fff;
  font-size: .75rem; font-weight: 500; white-space: nowrap;
  opacity: 0; pointer-events: none;
  transition: opacity .2s, transform .2s;
}
.tooltip1_component:hover .tooltip1_tooltip { opacity: 1; transform: translate(-50%, 0); }

/* ==========================================================================
   Embeds playground ("Styled for your brand")
   ========================================================================== */
.embed_bg { background-color: #2222220d; }
.embed_doodle { position: absolute; width: 20rem; height: 20rem; color: var(--embed-accent, var(--color-fuchsia-signal)); opacity: .9; }
.embed_doodle.cc-top-right { top: -6rem; right: 6rem; }
.embed_doodle.cc-bottom-left { bottom: 0; left: 0; }
.embed_doodle.cc-blur { width: 40rem; height: 40rem; left: 50%; bottom: 0; transform: translate(-50%, 50%); border-radius: 50%; background: var(--embed-accent, var(--color-fuchsia-signal)); opacity: .25; filter: blur(120px); }

.embed_radio-component { display: grid; gap: .5rem; }
.embed_radio-component.cc-align-left { justify-items: start; }
.input-label { font-size: .875rem; font-weight: 500; }
.embed_radio-group {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  align-items: center;
  padding: .125rem;
  border-radius: var(--radius-small-plus);
  background-color: #ffffffb3;
  box-shadow: inset 0 0 0 1px var(--ink-200);
  -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px);
  font-size: .875rem;
}
.embed_radio-group.cc-tabs { grid-auto-columns: auto; justify-self: center; align-self: center; }
.embed_radio-group.cc-large { grid-auto-flow: row; grid-template-columns: 1fr 1fr; gap: .75rem; padding: 0; background: transparent; box-shadow: none; }
.embed_radio-group.cc-color { grid-auto-columns: auto; gap: .5rem; padding: .5rem; justify-content: start; }
.embed_radio-field {
  display: flex; justify-content: center; align-items: center; gap: .375rem;
  padding: .25rem .75rem;
  min-height: 2rem;
  border: 0;
  border-radius: var(--radius-small);
  background: transparent;
  cursor: pointer;
  white-space: nowrap;
  color: var(--text-muted);
  font-weight: 500;
}
.embed_radio-field.is-active { background: #fff; color: var(--text); box-shadow: inset 0 0 0 1px var(--ink-300), 0 1px 2px rgba(0,0,0,.05); }
.embed_radio-group.cc-large .embed_radio-field { min-height: 3rem; background: #ffffffb3; box-shadow: inset 0 0 0 1px var(--ink-200); border-radius: var(--radius-small-plus); }
.embed_radio-group.cc-large .embed_radio-field.is-active { background: #fff; box-shadow: inset 0 0 0 2px var(--ink); }
.embed_swatch { width: 1.75rem; height: 1.75rem; border-radius: 50%; border: 2px solid #fff; box-shadow: 0 0 0 1px var(--ink-200); cursor: pointer; padding: 0; }
.embed_swatch.is-active { box-shadow: 0 0 0 2px var(--ink); }
.embed_range { width: 100%; accent-color: var(--ink); }

.embed {
  --embed-accent: var(--color-fuchsia-signal);
  --embed-radius: .5rem;
  width: 100%;
  max-width: 26rem;
  border-radius: calc(var(--embed-radius) * 2);
  background: #fff;
  box-shadow: var(--shadow-overlay);
  color: var(--ink);
  transition: background-color .2s, color .2s;
}
.embed_body { display: grid; gap: 1rem; padding: 2rem; }
.embed_heading { font-family: var(--font-heading); font-size: 1.5rem; font-weight: 700; letter-spacing: -.02em; line-height: 1.2; margin: 0; }
.embed_input-group { display: grid; gap: .375rem; font-size: .875rem; font-weight: 500; }
.embed_input { width: 100%; min-height: 2.5rem; padding: .5rem .75rem; border: 0; border-radius: var(--embed-radius); box-shadow: inset 0 0 0 1px var(--ink-300), 0 1px 2px rgba(0,0,0,.05); background: #fff; font-size: .875rem; }
.embed_btn { display: flex; justify-content: center; align-items: center; gap: .5rem; width: 100%; min-height: 2.75rem; border: 0; border-radius: var(--embed-radius); background: var(--embed-accent); color: #fff; font-weight: 600; cursor: pointer; }
.embed_btn.cc-secondary { background: transparent; color: inherit; box-shadow: inset 0 0 0 1px var(--ink-300); }
.embed_accent { color: var(--embed-accent); }
.embed_bar { height: .5rem; border-radius: 99px; background: var(--ink-100); overflow: hidden; }
.embed_bar span { display: block; height: 100%; background: var(--embed-accent); border-radius: inherit; }
.embed_row { display: flex; justify-content: space-between; align-items: center; gap: .75rem; padding: .625rem 0; border-bottom: 1px solid var(--ink-100); font-size: .875rem; }
.embed_row:last-child { border-bottom: 0; }
.embed_listing-img { aspect-ratio: 16 / 9; border-radius: var(--embed-radius); background: linear-gradient(160deg, #ffe4ee, #fff1bd); display: grid; place-items: center; font-size: 3.5rem; color: var(--embed-accent); }
.embed_bars { display: flex; align-items: flex-end; gap: 4px; height: 90px; }
.embed_bars span { flex: 1; background: var(--embed-accent); border-radius: 3px 3px 0 0; }
.embed_bars span:nth-child(odd) { opacity: .55; }
.embed.is-dark { background: #1a001e; color: #fff; box-shadow: 0 0 0 1px var(--white-200), var(--shadow-overlay); }
.embed.is-dark .u-text-muted { color: var(--white-600); }
.embed.is-dark .embed_input { background: var(--white-100); box-shadow: inset 0 0 0 1px var(--white-300); color: #fff; }
.embed.is-dark .embed_row { border-color: var(--white-200); }
.embed.is-dark .embed_bar { background: var(--white-200); }
.embed.is-dark .embed_btn.cc-secondary { box-shadow: inset 0 0 0 1px var(--white-300); }
.embed_pane { display: none; justify-content: center; }
.embed_pane.is-active { display: flex; }

/* ==========================================================================
   Bento (all-in-one stack)
   ========================================================================== */
.bento_card { height: 100%; }
.bento_card h3.paragraph-body { font-family: var(--font-primary); font-size: 1rem; font-weight: 600; letter-spacing: -.01em; margin: 0; }
.bento-img-wrapper { position: relative; height: 16rem; z-index: 0; }
.bento-img-wrapper.cc-auto { height: auto; }
.bento_panel {
  position: absolute; top: 0; left: 24px; right: 0; bottom: 0;
  border-top-left-radius: var(--radius-small-plus);
  background: var(--background);
  box-shadow: var(--shadow-overlay);
  padding: 1rem;
  overflow: hidden;
  font-size: .8125rem;
}
.bento_panel-row { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .625rem 0; border-bottom: 1px solid var(--border); }
.bento_panel-row:last-child { border-bottom: 0; }
.bento_chips { display: flex; flex-wrap: wrap; gap: .375rem; }
.bento_ticket { padding: .5rem .75rem; border-radius: var(--radius-small-plus); background: var(--background-tertiary); box-shadow: inset 0 0 0 1px var(--border); font-size: .8125rem; }
.bento_ticket.cc-me { background: var(--ink); color: #fff; box-shadow: none; margin-left: 2rem; }
.bento_note { font-size: .625rem; font-weight: 700; text-align: center; color: var(--text-muted); }
.bento_bars { display: flex; align-items: flex-end; gap: 6px; height: 120px; }
.bento_bars span { flex: 1; background: var(--ink); border-radius: 3px 3px 0 0; opacity: .85; }
.bento_bars span:nth-child(odd) { opacity: .45; }
.bento_flow { display: flex; align-items: center; justify-content: space-between; gap: .5rem; height: 100%; padding: 0 1.5rem 1.5rem; }
.bento_flow-box { flex: 1; max-width: 11rem; aspect-ratio: 4/3; border-radius: var(--radius-small); background: var(--background); box-shadow: var(--shadow-card); padding: .5rem; display: flex; flex-direction: column; gap: .375rem; font-size: .6875rem; }
.bento_flow-box .bar { height: 6px; border-radius: 3px; background: var(--ink-100); }
.bento_flow-box .bar.cc-dark { background: var(--ink); width: 60%; }
.bento_flow-connector { flex: 0 0 2rem; height: 1px; border-top: 2px dashed var(--ink-300); }
.bento_flow-center { flex: 0 0 auto; width: 5.5rem; padding: .5rem; border-radius: var(--radius-small); background: var(--background); box-shadow: var(--shadow-md); display: grid; gap: .375rem; justify-items: center; text-align: center; font-size: .625rem; font-weight: 600; }
.bento_flow-center i { font-size: 1.5rem; color: var(--color-forest); }
.chip { display: inline-flex; align-items: center; gap: .375rem; padding: .25rem .625rem; border-radius: var(--radius-small); background: var(--background); box-shadow: inset 0 0 0 1px var(--border); font-size: .75rem; font-weight: 500; }

/* ==========================================================================
   Quit context switching (chrome tabs + before/after)
   ========================================================================== */
.chrome_tabs-wrapper {
  display: flex; justify-content: center; align-items: flex-end;
  height: 200px;
  border-radius: var(--radius-medium);
  background-color: var(--background-secondary);
  overflow: hidden;
}
.chrome_tabs-menu { display: flex; align-items: flex-end; gap: .5rem; padding: 0 1rem; overflow-x: auto; scrollbar-width: none; }
.chrome_tab-link {
  display: flex; align-items: center; gap: .5rem;
  padding: .75rem;
  border: 0;
  border-radius: var(--radius-medium);
  background: transparent;
  font-size: .875rem;
  white-space: nowrap;
  color: var(--text-muted);
  cursor: pointer;
  transition: background-color .1s ease-in-out, color .2s ease-in-out;
}
.chrome_tab-link i { font-size: 1.125rem; }
.chrome_tab-link:hover { background-color: var(--ink-100); }
.chrome_tab-link.is-current { background-color: #fff; color: var(--text); border-bottom-left-radius: 0; border-bottom-right-radius: 0; padding-bottom: 1.25rem; }
.chrome_tab-link.cc-plus { border-radius: var(--radius-round); }
.ba_item { display: flex; gap: .5rem; }
.ba_item .icon-color { align-items: center; height: 1.4em; }
.ba_item.cc-before .icon-color { color: var(--color-strawberry); }
.ba_item.cc-after .icon-color { color: var(--color-mango); }

/* ==========================================================================
   Dark inset CTA
   ========================================================================== */
.u-bg-dots { position: absolute; inset: 0; background-image: radial-gradient(var(--white-200) 1px, transparent 1px); background-size: 20px 20px; -webkit-mask-image: linear-gradient(90deg, transparent 30%, #000); mask-image: linear-gradient(90deg, transparent 30%, #000); pointer-events: none; }
.footer_skew-wrapper { position: relative; height: 100%; min-height: 22rem; perspective: 1000px; }
.u-skew-right {
  position: absolute; top: 0; left: 0;
  width: 50vw; max-width: 50vw;
  border-radius: var(--radius-small);
  transform-style: preserve-3d;
  transform: scaleY(.86) skew(-8deg) rotate(11deg);
  transform-origin: top left;
}
.skew_shot { background: #fff; color: var(--ink); box-shadow: var(--shadow-sm); overflow: hidden; --text: var(--ink); --text-muted: var(--ink-600); --background: #fff; --border: var(--ink-200); }
.u-bg-gradient-4 { background-image: linear-gradient(135deg, #ffbdd380, #ffcc1166); mix-blend-mode: soft-light; pointer-events: none; }

/* ==========================================================================
   Mock dashboard (product screenshot built in HTML)
   ========================================================================== */
.mock { font-size: .8125rem; text-align: left; color: var(--ink); background: #fff; }
.mock_bar { display: flex; align-items: center; gap: .5rem; padding: .75rem 1rem; border-bottom: 1px solid var(--ink-200); }
.mock_dots { display: flex; gap: 6px; }
.mock_dots span { width: 10px; height: 10px; border-radius: 50%; background: var(--ink-200); }
.mock_url { margin: 0 auto; padding: .125rem 1rem; border-radius: var(--radius-round); background: var(--ink-50); box-shadow: inset 0 0 0 1px var(--ink-100); color: var(--ink-600); font-size: .75rem; }
.mock_body { display: grid; grid-template-columns: 180px 1fr; min-height: 380px; }
.mock_side { display: grid; align-content: start; gap: 2px; padding: 1rem .75rem; border-right: 1px solid var(--ink-200); }
.mock_side a { display: flex; align-items: center; gap: .5rem; padding: .375rem .5rem; border-radius: var(--radius-small-plus); color: var(--ink-600); font-weight: 500; }
.mock_side a.is-active { background: var(--ink-50); color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink-200); }
.mock_main { display: grid; align-content: start; gap: 1rem; padding: 1.25rem 1.5rem; }
.mock_head { display: flex; justify-content: space-between; align-items: center; gap: .75rem; }
.mock_head strong { font-size: 1.0625rem; font-weight: 600; }
.mock_kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: .75rem; }
.mock_kpi { padding: .75rem; border-radius: var(--radius-small-plus); box-shadow: inset 0 0 0 1px var(--ink-200); }
.mock_kpi small { display: block; color: var(--ink-600); font-size: .75rem; }
.mock_kpi strong { font-size: 1.125rem; font-weight: 700; letter-spacing: -.02em; }
.mock_kpi em { font-style: normal; font-size: .6875rem; color: var(--color-forest); margin-left: .25rem; }
.mock_chart { padding: .75rem; border-radius: var(--radius-small-plus); box-shadow: inset 0 0 0 1px var(--ink-200); }
.mock_chart svg { width: 100%; height: 120px; }
.mock_table { width: 100%; border-collapse: collapse; }
.mock_table th { text-align: left; font-weight: 500; color: var(--ink-600); padding: .375rem .5rem; border-bottom: 1px solid var(--ink-200); }
.mock_table td { padding: .5rem; border-bottom: 1px solid var(--ink-100); }
.mock_table tr:last-child td { border-bottom: 0; }

/* ==========================================================================
   FAQ (Outseta two-column FAQ)
   ========================================================================== */
.faq_item { border-bottom: 1px solid var(--border); }
.faq_item:first-child { border-top: 1px solid var(--border); }
.faq_item summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.25rem 0; list-style: none; cursor: pointer; font-size: var(--p-lg); font-weight: 500; }
.faq_item summary::-webkit-details-marker { display: none; }
.faq_item summary i { flex: none; font-size: 1.25rem; transition: transform .3s var(--ease); }
.faq_item[open] summary i { transform: rotate(45deg); }
.faq_item .faq_answer { padding: 0 0 1.5rem; color: var(--text-muted); max-width: 46rem; }

/* ==========================================================================
   Forms
   ========================================================================== */
.input-group { display: grid; gap: .5rem; margin-bottom: 1rem; text-align: left; }
.input {
  width: 100%;
  min-height: 2.75rem;
  padding: .5rem .875rem;
  border: 1px solid var(--ink-300);
  border-radius: var(--radius-small-plus);
  background: var(--background);
  font-size: .9375rem;
  color: var(--text);
}
.input:focus { outline: 1px solid var(--ink); border-color: var(--ink); }
.input::placeholder { color: var(--ink-500); }
.input.cc-select { appearance: none; cursor: pointer; padding-right: 2.5rem; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 256 256'%3E%3Cpath fill='%23240029' d='M213.66 101.66l-80 80a8 8 0 0 1-11.32 0l-80-80a8 8 0 0 1 11.32-11.32L128 164.69l74.34-74.35a8 8 0 0 1 11.32 11.32Z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .875rem center; }
.input.cc-textarea { min-height: 8rem; resize: vertical; }
.form_grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1rem; }
.form_grid .cc-span-2 { grid-column: span 2; }
/* Bot trap (main.js / functions/api/form.js): off screen for people, filled in by bots */
.form_trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.form_captcha:not(:empty) { margin-bottom: 1rem; }

/* ==========================================================================
   Footer
   ========================================================================== */
.footer_link { color: var(--text-muted); font-size: .875rem; transition: color .2s; }
.footer_link:hover { color: var(--text); }
.footer_logo { display: inline-flex; align-items: center; gap: .5rem; font-family: var(--font-heading); font-weight: 700; font-size: 1.375rem; letter-spacing: -.02em; }
.footer_logo svg { width: 28px; height: 28px; }
.footer_logo .brand-wordmark { width: auto; height: 1.5rem; color: #240029; }
/* full-width wordmark closing every page, on white */
.footer_bigmark { background: #fff; padding: .5rem 0 clamp(3rem, 7vw, 7rem); }
.footer_bigmark .brand-wordmark { display: block; width: 100%; height: auto; color: #240029; }

/* ==========================================================================
   Misc page components
   ========================================================================== */
.breadcrumbs { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .5rem; margin-bottom: 1.5rem; font-family: var(--font-mono); font-size: .875rem; letter-spacing: .04em; text-transform: uppercase; color: var(--text-muted); }
.breadcrumbs a { color: var(--text); }
.breadcrumbs a:hover { text-decoration: underline; }
.feature_label { display: flex; align-items: center; gap: .75rem; color: var(--text-muted); margin-bottom: 1rem; }
.feature_label .featured-icon-color { color: var(--text); }
.airy_card h4 { font-size: 1rem; font-weight: 600; margin: 1rem 0 .5rem; letter-spacing: -.01em; font-family: var(--font-primary); line-height: 1.4; }
.airy_card p { color: var(--text-muted); font-size: .9375rem; margin: 0; }
.airy_card .card-body { padding: 2rem 2rem 2.5rem; }
.airy_grid { border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.airy_grid .card.cc-airy { height: 100%; }
.stat_value { font-family: var(--font-heading); font-weight: 700; font-size: var(--h2); line-height: 1; letter-spacing: -.03em; }
.price_value { font-family: var(--font-heading); font-weight: 700; font-size: var(--h2); line-height: 1; letter-spacing: -.03em; }
.check_list { display: grid; gap: .625rem; }
.check_list li { display: flex; gap: .5rem; align-items: flex-start; font-size: .9375rem; }
.check_list i { color: var(--color-forest); font-size: 1.25rem; flex: none; }
.phase_num { font-family: var(--font-mono); font-size: .875rem; letter-spacing: .1em; color: var(--text-muted); }
.post_thumb { aspect-ratio: 16/9; display: grid; place-items: center; font-size: 3rem; }
.toast {
  position: fixed; left: 50%; bottom: 24px; z-index: 100;
  display: flex; align-items: center; gap: .5rem;
  padding: .75rem 1.25rem;
  border-radius: var(--radius-small-plus);
  background: var(--ink); color: #fff;
  font-size: .875rem; font-weight: 500;
  box-shadow: var(--shadow-overlay);
  opacity: 0; transform: translate(-50%, 20px);
  transition: opacity .2s, transform .2s;
}
.toast.is-visible { opacity: 1; transform: translate(-50%, 0); }

.reveal { opacity: 0; transform: translateY(16px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  .marquee-content { animation: none; }
  html { scroll-behavior: auto; }
}

/* ==========================================================================
   Video gallery (admin library block): grid that wraps, or a scroll-snap carousel.
   --cols / --cols-t / --cols-m = videos per row on desktop / tablet / mobile,
   --ratio = aspect ratio of every video, --vgap = gap.
   ========================================================================== */
.video-gallery { position: relative; }
.video-grid { --c: var(--cols, 3); --g: var(--vgap, 1rem); display: grid; grid-template-columns: repeat(var(--c), minmax(0, 1fr)); gap: var(--g); }
.video-grid.is-carousel { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--c) - 1) * var(--g)) / var(--c)); overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; }
.video-grid.is-carousel::-webkit-scrollbar { display: none; }
.video-grid.is-carousel > * { scroll-snap-align: start; }
.video-item > video, .video-item > iframe, .video-item > img { display: block; width: 100%; height: auto; aspect-ratio: var(--ratio, 16 / 9); object-fit: cover; border: 0; border-radius: var(--radius-card); background: var(--ink-100); }
.video-item > p { margin-top: .75rem; }
.carousel_nav { display: none; justify-content: flex-end; gap: .5rem; margin-bottom: 1rem; }
.video-gallery:has(.is-carousel) .carousel_nav { display: flex; }
.carousel_nav button { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border: 0; border-radius: var(--radius-round); background: var(--card-bg); box-shadow: var(--shadow-sm); color: var(--text); cursor: pointer; }
.carousel_nav button:hover { box-shadow: var(--shadow-card-hover); }

/* Links made in the admin editor: a block that holds any content, or a wrapper
   around an existing element that leaves its layout untouched */
.link-box { display: block; color: inherit; text-decoration: none; }
.link-wrap { display: contents; color: inherit; text-decoration: none; }

/* ==========================================================================
   Responsive (Outseta breakpoints: 991 / 767 / 479)
   ========================================================================== */
@media (max-width: 1200px) {
  .callout-left { left: -10%; right: 40%; }
  .callout-right { left: 40%; right: -10%; }
}

@media (max-width: 991px) {
  :root { --section-pad: 5rem; --section-pad-compact: 3rem; }
  .video-grid { --c: var(--cols-t, 2); }
  .section.cc-hero-lg { padding-top: 9.5rem; }
  .col, [class*="col-lg-"] { flex-basis: 100%; max-width: 100%; }
  .col.col-md-6 { flex-basis: 50%; max-width: 50%; }
  .col.col-shrink { flex: 0 auto; max-width: none; }
  .col-md-first { order: -1; }
  .u-vw-50 { width: 100%; max-width: 100%; }
  .u-float-right { float: none; }
  .u-d-none-tablet { display: none !important; }
  .u-d-block-tablet { display: block; }
  .callout-left, .callout-right { display: none; }
  .chrome_tabs-wrapper { height: auto; padding-top: 3rem; }
  .chrome_tab-link { padding: .375rem; border-radius: var(--radius-small-plus); }
  .chrome_tab-link.is-current { padding-bottom: .75rem; }
  .footer_skew-wrapper { min-height: 0; height: 40vw; }
  .u-skew-right { width: 100vw; max-width: 100vw; }
  .mock_body { grid-template-columns: 1fr; }
  .mock_side { display: none; }
  .mock_kpis { grid-template-columns: repeat(2, 1fr); }

  .navbar_wrapper { grid-template-columns: 1fr auto; }
  .navbar_logo-link .brand-wordmark { height: 1.5rem; }
  .navbar_menu, .navbar_button-wrapper .cc-desktop { display: none; }
  .navbar_menu-button { display: grid; }
  .lang-switch_trigger .dropdown-chevron { display: none; }
  .navbar_notice { display: none; }
  .navbar_mobile {
    display: block;
    position: fixed; inset: 0; z-index: 25;
    padding: 6.5rem 6% 3rem;
    background: var(--background);
    overflow-y: auto;
    opacity: 0; visibility: hidden;
    transition: opacity .25s, visibility .25s;
  }
  body.menu-open { overflow: hidden; }
  body.menu-open .navbar_mobile { opacity: 1; visibility: visible; }
  .navbar_mobile details { border-bottom: 1px solid var(--border); }
  .navbar_mobile summary, .navbar_mobile > a { display: flex; justify-content: space-between; align-items: center; padding: .875rem 0; font-weight: 600; font-size: 1.125rem; list-style: none; cursor: pointer; }
  .navbar_mobile > a { border-bottom: 1px solid var(--border); }
  .navbar_mobile summary::-webkit-details-marker { display: none; }
  .navbar_mobile .m-group { display: grid; gap: .125rem; padding: 0 0 1rem; }
  .navbar_mobile .m-group h5 { margin: .75rem 0 .25rem; font-family: var(--font-mono); font-weight: 400; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); }
  .navbar_mobile .m-group a { padding: .375rem 0; color: var(--text-muted); }
  .navbar_mobile .navbar_mobile-buttons { display: grid; gap: .75rem; margin-top: 1.5rem; }
}

@media (max-width: 767px) {
  :root { --section-pad: 4rem; --section-pad-compact: 1.5rem; }
  .video-grid { --c: var(--cols-m, 1); }
  .section.cc-hero { padding-top: 7rem; }
  .section.cc-hero-lg { padding-top: 7.5rem; }
  .card-body { padding: 20px; }
  .embed_radio-group.cc-tabs { width: 100%; overflow-x: auto; justify-self: stretch; scrollbar-width: none; }
  .form_grid { grid-template-columns: 1fr; }
  .form_grid .cc-span-2 { grid-column: auto; }
  .airy_card .card-body { padding: 1.5rem; }
  .mock_table .hide-sm { display: none; }
}

@media (max-width: 479px) {
  :root { --section-pad: 4rem; }
  .container, .navbar_container { width: calc(100% - 2rem); }
  .navbar_container { padding-top: 1rem; }
  .section.cc-hero { padding-top: 6.5rem; }
  .col, .col.col-md-6 { flex-basis: 100%; max-width: 100%; }
  .col.col-xs-6 { flex-basis: 50%; max-width: 50%; }
  .section-inset { border-radius: var(--radius-large); }
  .hero-blur-2, .hero-blur-3 { width: 100%; filter: blur(20vw); }
  .button { width: 100%; }
  .row > .col.col-shrink { flex-basis: 100%; }
}

/* Rows built in Studio: columns side by side per device (set on the row as data-cols-t / data-cols-m).
   Default stays stacked; the tablet choice does not leak into mobile. */
@media (max-width: 991px) {
  .row[data-cols-t] > .col { flex-basis: 100%; max-width: 100%; }
  .row[data-cols-t="2"] > .col { flex-basis: 50%; max-width: 50%; }
  .row[data-cols-t="3"] > .col { flex-basis: 33.333%; max-width: 33.333%; }
  .row[data-cols-t="4"] > .col { flex-basis: 25%; max-width: 25%; }
}
@media (max-width: 767px) {
  .row[data-cols-t] > .col { flex-basis: 100%; max-width: 100%; }
  .row[data-cols-m="2"] > .col { flex-basis: 50%; max-width: 50%; }
  .row[data-cols-m="3"] > .col { flex-basis: 33.333%; max-width: 33.333%; }
}

/* Dark CTA: keep the lead text clear of the skewed dashboard shot beside it */
@media (min-width: 992px) {
  .section.cc-inset.u-mode-dark .paragraph-longform { max-width: 22rem; position: relative; z-index: 2; }
}

/* Image slots: real <img> elements with placeholder artwork, swapped in Studio via the Media panel.
   The frame keeps its shape whatever image is dropped in. */
.img_slot { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius-card, 1rem); background-color: var(--ink-100); }
.img_slot.cc-wide { aspect-ratio: 21 / 9; }
.img_slot.cc-strip { aspect-ratio: 4 / 1; }
.img_slot.cc-photo { aspect-ratio: 4 / 3; }
.img_slot.cc-card-top { aspect-ratio: 12 / 5; border-radius: 0; }
@media (max-width: 767px) {
  .img_slot.cc-wide, .img_slot.cc-strip { aspect-ratio: 16 / 9; }
}
