/* sico.law: typography and color baseline.
 * Reference: https://www.dlapiper.com/en-us
 * Approximation: original choices, not verified DLA Piper font/color values.
 * Apply .sico to the body or outer wrapper. No fonts or packages to install.
 */
.sico {
  /* Color palette */
  --sico-white: #ffffff;
  --sico-surface: #f2f5f5;
  --sico-border: #d4dedf;
  --sico-ink: #12313a;
  --sico-muted: #53666d;
  --sico-primary: #006e78;
  --sico-primary-hover: #00525b;
  --sico-dark: #003b49;
  --sico-dark-deep: #002b36;
  --sico-accent: #9ce3de;
  --sico-focus: #005fcc;

  /* Font family: practical system-font fallback, no external requests */
  --sico-font-body: Arial, "Helvetica Neue", Helvetica, sans-serif;
  --sico-font-heading: var(--sico-font-body);
  --sico-weight-body: 400;
  --sico-weight-heading: 400;
  --sico-weight-strong: 700;

  /* Type scale */
  --sico-type-label: 0.75rem;
  --sico-type-small: 0.875rem;
  --sico-type-body: 1rem;
  --sico-type-lead: clamp(1.125rem, 1rem + 0.4vw, 1.375rem);
  --sico-type-h3: clamp(1.375rem, 1.1rem + 0.7vw, 1.875rem);
  --sico-type-h2: clamp(2rem, 1.4rem + 1.8vw, 3.5rem);
  --sico-type-h1: clamp(2.75rem, 1.6rem + 4vw, 5.75rem);
  --sico-leading-body: 1.6;
  --sico-leading-heading: 1.12;
  --sico-reading-width: 68ch;

  color: var(--sico-ink);
  background: var(--sico-white);
  font-family: var(--sico-font-body);
  font-size: var(--sico-type-body);
  font-weight: var(--sico-weight-body);
  line-height: var(--sico-leading-body);
  overflow-wrap: break-word;
  -webkit-text-size-adjust: 100%;
}

/* Minimal scoped foundation */
:where(.sico, .sico *, .sico *::before, .sico *::after) { box-sizing: border-box; }
body.sico { margin: 0; }
.sico :where(h1, h2, h3, p) { margin: 0; }
.sico :where(h1, h2, h3) {
  font-family: var(--sico-font-heading);
  font-weight: var(--sico-weight-heading);
  line-height: var(--sico-leading-heading);
  text-wrap: balance;
}
.sico h1 { font-size: var(--sico-type-h1); letter-spacing: -0.045em; }
.sico h2 { font-size: var(--sico-type-h2); letter-spacing: -0.035em; }
.sico h3 { font-size: var(--sico-type-h3); letter-spacing: -0.02em; }
.sico strong { font-weight: var(--sico-weight-strong); }
.sico small { font-size: var(--sico-type-small); }
.sico a { color: var(--sico-primary); text-underline-offset: 0.22em; }
.sico a:hover { color: var(--sico-primary-hover); }
.sico :where(a, button, input, select, textarea):focus-visible {
  outline: 3px solid var(--sico-focus);
  outline-offset: 4px;
}
.sico ::selection { color: var(--sico-dark-deep); background: var(--sico-accent); }

/* Typography helpers */
.sico .sico-lead { font-size: var(--sico-type-lead); line-height: 1.55; }
.sico .sico-label {
  font-size: var(--sico-type-label);
  font-weight: var(--sico-weight-strong);
  line-height: 1.5;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.sico .sico-muted { color: var(--sico-muted); }
.sico .sico-reading { max-inline-size: var(--sico-reading-width); }

/* Inverse palette: use white text on teal, pale teal for links */
.sico .sico-inverse { color: var(--sico-white); background: var(--sico-dark); }
.sico .sico-inverse .sico-muted { color: var(--sico-accent); }
.sico .sico-inverse a { color: var(--sico-accent); }
.sico .sico-inverse a:hover { color: var(--sico-white); }
.sico .sico-inverse :focus-visible { outline-color: var(--sico-accent); }
