/* Links use shape, placement, weight and focus; never a text underline. */
a {text-decoration:none;}
/* Shared website controls. The handbook and homepage load this same contract. */
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:var(--button-height);
  padding:var(--button-padding-block) var(--button-padding-inline);
  border:1px solid transparent;
  border-radius:var(--radius-control);
  background:var(--inverse);
  color:var(--inverse-text);
  font:400 14px/20px var(--font-sans);
  white-space:nowrap;
  text-decoration:none;
  cursor:pointer;
  touch-action:manipulation;
}
.button:hover {background:var(--primary-hover);color:var(--inverse-text);}
.button.pill {border-radius:var(--radius-action);padding-inline:var(--button-padding-pill);}
.button.secondary {background:var(--hover);color:var(--text);}
.button.secondary:hover {background:var(--secondary-hover);color:var(--text);}
.button.outline {background:transparent;color:var(--text);border-color:var(--line);}
.button.outline:hover {background:var(--hover);}
.button.ghost {background:transparent;color:var(--text);}
.button.ghost:hover {background:var(--hover);color:var(--text);}
.button.compact {
  --button-height:var(--button-height-compact);
  --button-padding-block:var(--button-padding-block-compact);
  --button-padding-inline:var(--button-padding-inline-compact);
  --button-padding-pill:var(--button-padding-pill-compact);
}
.button.hero-action {
  --button-height:var(--button-height-hero);
  --button-padding-block:var(--button-padding-block-hero);
  --button-padding-inline:var(--button-padding-inline-hero);
  --button-padding-pill:var(--button-padding-inline-hero);
  font-size:16px;
}
.button:focus-visible {outline:2px solid var(--accent);outline-offset:4px;}
.button:disabled {cursor:not-allowed;background:var(--ds-gray-100);color:var(--muted);border-color:var(--line);}
.action-group {display:flex;align-items:center;flex-wrap:wrap;gap:var(--action-group-gap);}
@media(prefers-reduced-motion:no-preference) {
  .button {transition:background-color 150ms,color 150ms,border-color 150ms;}
}
@media(any-pointer:coarse),(max-width:640px) {
  .button,.button.compact,.button.hero-action {min-height:44px;}
}

/* Shared marketing composition: identity, alignment, and product evidence. */
/* Open edge primitives are shared by all consumers through omnius-brand.css. */
.brand-connector {
  height:var(--brand-dot-size);
  background-image:radial-gradient(circle at center,var(--brand-connector) calc(var(--brand-dot-size)/2),transparent calc(var(--brand-dot-size)/2 + .25px));
  background-size:var(--brand-dot-pitch) var(--brand-dot-size);
  background-repeat:repeat-x;
}
.brand-connector.vertical {
  width:var(--brand-dot-size);
  height:100%;
  background-size:var(--brand-dot-size) var(--brand-dot-pitch);
  background-repeat:repeat-y;
}
.brand-media {background:var(--surface);padding:var(--media-inset);border-radius:var(--media-radius);}
.brand-split {display:grid;grid-template-columns:1fr 1fr;gap:var(--layout-gap);align-items:start;}
.brand-split>div,.brand-split>p {min-width:0;}
.brand-split h2 {max-width:25ch;}
.brand-split>p,.brand-split>div>p {max-width:52ch;}
@media(max-width:900px) {.brand-split{grid-template-columns:1fr;gap:24px;}}
