/* Moja Złota Rączka — design tokens + components. Mobile-first; density switches
   at 768px (see @media rules below). */

@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/ibm-plex-sans-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/ibm-plex-sans-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  /* ---------- Color: brand ---------- */
  --color-primary: #12508f;
  --color-primary-hover: #0d3d6e;
  --color-primary-active: #0b3560;
  --color-primary-soft-bg: #e7eff8;
  --color-primary-soft-border: #cfe0f2;
  --color-secondary: #0f2438;          /* navy — top bar, headers */
  --color-secondary-hover: #16324c;
  --color-header-text-muted: rgba(255, 255, 255, .68);
  --color-focus-ring: rgba(18, 80, 143, .28);

  /* ---------- Color: surfaces ---------- */
  --color-bg-page: #f4f6f8;
  --color-bg-surface: #ffffff;
  --color-bg-subtle: #fbfcfd;
  --color-bg-disabled: #f0f2f5;

  /* ---------- Color: text ---------- */
  --color-text-primary: #16202c;
  --color-text-secondary: #5b6875;
  --color-text-tertiary: #8a97a4;
  --color-text-placeholder: #8a97a4;
  --color-text-inverse: #ffffff;
  --color-text-disabled: #b9c2cc;
  --color-link: #2a78d6;
  --color-link-hover: #1b5aa8;

  /* ---------- Color: borders ---------- */
  --color-border: #d9dee5;
  --color-border-strong: #b9c2cc;
  --color-border-soft: #eceff3;
  --color-border-faint: #e7ebf0;

  /* ---------- Color: state (error / success / warning / info) ---------- */
  --color-error: #c4562f;
  --color-error-strong: #a83b1c;
  --color-error-bg: #fdf3ee;
  --color-error-border: #f0cdbd;

  --color-success: #38603a;
  --color-success-strong: #2f6b46;
  --color-success-bg: #eaf1ea;
  --color-success-border: #cfe0cf;

  --color-warning: #8a5a12;
  --color-warning-strong: #7a4e0c;
  --color-warning-bg: #fdf0dd;
  --color-warning-border: #eed6ae;

  --color-info: var(--color-primary);
  --color-info-bg: var(--color-primary-soft-bg);
  --color-info-border: var(--color-primary-soft-border);

  /* ---------- Color: priority scale ---------- */
  --color-priority-high: #c4562f;
  --color-priority-mid: #c9922c;
  --color-priority-low: #b9c2cc;

  /* ---------- Spacing (2px-driven scale, not strict 8pt) ---------- */
  --space-3xs: 4px;
  --space-2xs: 6px;
  --space-xs: 8px;
  --space-sm: 12px;
  --space-md: 16px;
  --space-lg: 20px;
  --space-xl: 24px;
  --space-2xl: 32px;
  --space-3xl: 40px;
  --space-4xl: 56px;

  /* ---------- Typography ---------- */
  --font-sans: 'IBM Plex Sans', system-ui, -apple-system, sans-serif;
  --font-mono: ui-monospace, 'SFMono-Regular', Menlo, monospace;

  --font-size-xs: 11.5px;
  --font-size-sm: 12.5px;
  --font-size-md: 13.5px;   /* desktop body */
  --font-size-base: 16px;   /* mobile body / all form controls (prevents iOS zoom) */
  --font-size-lg: 17.5px;
  --font-size-h2: 15px;
  --font-size-h1: 21px;
  --font-size-display: 26px;

  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  --line-height-tight: 1.25;
  --line-height-heading: 1.3;
  --line-height-body: 1.5;
  --line-height-relaxed: 1.6;

  --letter-spacing-tight: -.01em;
  --letter-spacing-label: .05em;

  /* ---------- Radii ---------- */
  --radius-sm: 4px;
  --radius-md: 5px;
  --radius-lg: 6px;
  --radius-xl: 8px;
  --radius-pill: 999px;

  /* ---------- Shadows ---------- */
  --shadow-card: 0 1px 3px rgba(15, 36, 56, .06);
  --shadow-raised: 0 2px 8px rgba(15, 36, 56, .10);
  --shadow-overlay: 0 12px 32px rgba(15, 36, 56, .18);
  --shadow-focus: 0 0 0 3px var(--color-focus-ring);

  /* ---------- Sizing ---------- */
  --control-height: 48px;       /* mobile touch target */
  --control-height-desktop: 38px;
  --control-height-min: 44px;   /* never go below this on touch */
  --page-max-width: 1280px;
  --form-max-width: 400px;

  /* ---------- Motion ---------- */
  --transition-fast: .15s ease;
}

/* ==========================================================================
   Base
   ========================================================================== */

*,
*::before,
*::after { box-sizing: border-box; }

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

body {
  margin: 0;
  background: var(--color-bg-page);
  color: var(--color-text-primary);
  font-family: var(--font-sans);
  font-size: var(--font-size-base);
  line-height: var(--line-height-body);
}

a { color: var(--color-link); text-decoration: none; }
a:hover { color: var(--color-link-hover); text-decoration: underline; }

h1, h2, h3 { margin: 0; font-weight: var(--font-weight-semibold); }
h1 { font-size: var(--font-size-h1); line-height: var(--line-height-heading); letter-spacing: var(--letter-spacing-tight); }
h1:focus { outline: none; }
h2 { font-size: var(--font-size-h2); line-height: 1.4; }

.numeric { font-variant-numeric: tabular-nums; }

@media (min-width: 768px) {
  body { font-size: var(--font-size-md); }
}

/* ==========================================================================
   Icons — Lucide (https://lucide.dev, ISC). Sprite: wwwroot/img/icons.svg
   Usage: <svg class="icon" aria-hidden="true"><use href="/img/icons.svg#icon-check" /></svg>
   ========================================================================== */

.icon {
  width: 1.15em;
  height: 1.15em;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
  vertical-align: -.15em;
}

.icon--sm { width: 1em; height: 1em; }
.icon--lg { width: 1.5em; height: 1.5em; }
.icon--muted { color: var(--color-text-tertiary); }

/* ==========================================================================
   Button — .btn + .btn--primary / .btn--secondary
   ========================================================================== */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-xs);
  min-height: var(--control-height);
  padding: 0 var(--space-lg);
  border: 1px solid transparent;
  border-radius: var(--radius-lg);
  font-family: var(--font-sans);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color var(--transition-fast), border-color var(--transition-fast),
              color var(--transition-fast), box-shadow var(--transition-fast), transform .1s ease;
}

.btn--primary {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: var(--color-text-inverse);
}
.btn--primary:hover,
.btn--primary:focus-visible,
.btn--primary:active { color: var(--color-text-inverse); text-decoration: none; }
.btn--primary:hover { background: var(--color-primary-hover); border-color: var(--color-primary-hover); }
.btn--primary:active { background: var(--color-primary-active); transform: translateY(1px); }

.btn--secondary {
  background: var(--color-bg-surface);
  border-color: var(--color-border);
  color: var(--color-text-primary);
}
.btn--secondary:hover { border-color: var(--color-border-strong); background: var(--color-bg-subtle); }
.btn--secondary:active { transform: translateY(1px); }

.btn:focus-visible { outline: none; box-shadow: var(--shadow-focus); }

.btn:disabled,
.btn[aria-disabled="true"] {
  background: var(--color-bg-disabled);
  border-color: var(--color-border);
  color: var(--color-text-disabled);
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.btn--block { width: 100%; }

.btn--icon { padding: 0; width: var(--control-height); flex: none; }

@media (min-width: 768px) {
  .btn {
    min-height: var(--control-height-desktop);
    padding: 0 var(--space-md);
    font-size: var(--font-size-md);
  }
  .btn--icon { width: var(--control-height-desktop); }
}

/* ==========================================================================
   Form field — .field, .field__label, .input, .field__error, .field__hint
   ========================================================================== */

.field { display: block; margin-bottom: var(--space-md); }

.field__label {
  display: block;
  margin-bottom: var(--space-2xs);
  font-size: var(--font-size-md);
  font-weight: var(--font-weight-medium);
  color: var(--color-text-primary);
}

.input,
.textarea,
.select {
  display: block;
  width: 100%;
  min-height: var(--control-height);
  padding: var(--space-sm) var(--space-sm);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-bg-surface);
  color: var(--color-text-primary);
  font-family: var(--font-sans);
  font-size: var(--font-size-base);
  line-height: var(--line-height-body);
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.textarea { min-height: 120px; resize: vertical; }

.input::placeholder,
.textarea::placeholder { color: var(--color-text-placeholder); }

.input:hover,
.textarea:hover,
.select:hover { border-color: var(--color-border-strong); }

.input:focus,
.textarea:focus,
.select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: var(--shadow-focus);
}

.input:disabled,
.textarea:disabled,
.select:disabled {
  background: var(--color-bg-disabled);
  color: var(--color-text-disabled);
  cursor: not-allowed;
}

/* error state — set .input--error (or aria-invalid="true") on the control */
.input--error,
.input[aria-invalid="true"],
.textarea--error {
  border-color: var(--color-error);
}
.input--error:focus,
.input[aria-invalid="true"]:focus,
.textarea--error:focus {
  border-color: var(--color-error);
  box-shadow: 0 0 0 3px rgba(196, 86, 47, .22);
}

.field__error {
  display: flex;
  align-items: center;
  gap: var(--space-2xs);
  margin-top: var(--space-2xs);
  color: var(--color-error-strong);
  font-size: var(--font-size-md);
  line-height: var(--line-height-body);
}

.field__hint {
  margin-top: var(--space-2xs);
  color: var(--color-text-secondary);
  font-size: var(--font-size-md);
}

@media (min-width: 768px) {
  .input,
  .textarea,
  .select {
    min-height: var(--control-height-desktop);
    padding: var(--space-xs) var(--space-sm);
    font-size: var(--font-size-md);
  }
  .field__label,
  .field__error,
  .field__hint { font-size: var(--font-size-sm); }
}

/* ==========================================================================
   Checkbox — .checkbox (label wrapper) > input + span
   ========================================================================== */

.checkbox {
  display: flex;
  align-items: flex-start;
  gap: var(--space-sm);
  min-height: var(--control-height-min);
  padding: var(--space-2xs) 0;
  cursor: pointer;
  font-size: var(--font-size-base);
  line-height: var(--line-height-body);
}

.checkbox__input {
  flex: none;
  width: 22px;
  height: 22px;
  margin: 0;
  border: 1px solid var(--color-border-strong);
  border-radius: var(--radius-sm);
  background: var(--color-bg-surface);
  accent-color: var(--color-primary);
  cursor: pointer;
}

.checkbox__input:focus-visible { outline: none; box-shadow: var(--shadow-focus); }
.checkbox__input:disabled { cursor: not-allowed; }
.checkbox__input:disabled ~ .checkbox__label { color: var(--color-text-disabled); cursor: not-allowed; }

.checkbox__label { color: var(--color-text-primary); }
.checkbox__label small {
  display: block;
  margin-top: 2px;
  color: var(--color-text-secondary);
  font-size: var(--font-size-sm);
}

@media (min-width: 768px) {
  .checkbox { min-height: 0; font-size: var(--font-size-md); }
  .checkbox__input { width: 17px; height: 17px; }
}

/* ==========================================================================
   Alert — .alert + .alert--error / --success / --warning / --info
   ========================================================================== */

.alert {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-top: var(--space-lg);
  padding: var(--space-sm) var(--space-md);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-bg-surface);
  font-size: var(--font-size-base);
  line-height: var(--line-height-body);
}

.alert__title { font-weight: var(--font-weight-semibold); }
.alert__body { color: var(--color-text-secondary); }
.alert__icon { flex: none; width: 20px; height: 20px; }

.alert--error   { background: var(--color-error-bg);   border-color: var(--color-error-border);   color: var(--color-error-strong); }
.alert--success { background: var(--color-success-bg); border-color: var(--color-success-border); color: var(--color-success-strong); }
.alert--warning { background: var(--color-warning-bg); border-color: var(--color-warning-border); color: var(--color-warning); }
.alert--info    { background: var(--color-info-bg);    border-color: var(--color-info-border);    color: var(--color-primary); }

.alert--error .alert__body,
.alert--success .alert__body,
.alert--warning .alert__body,
.alert--info .alert__body { color: inherit; opacity: .85; }

@media (min-width: 768px) {
  .alert { font-size: var(--font-size-md); }
}

/* ==========================================================================
   Card / form panel — .card, .form-panel (centred login-style panel)
   ========================================================================== */

.card {
  margin-top: var(--space-lg);
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-md);
  box-shadow: var(--shadow-card);
}

.card__title { margin-bottom: var(--space-sm); }

.form-panel-wrap {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  min-height: 100vh;
  padding: var(--space-md);
}

.form-panel {
  width: 100%;
  max-width: var(--form-max-width);
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-lg) var(--space-md);
  box-shadow: var(--shadow-card);
}

.form-panel__brand {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-bottom: var(--space-lg);
  font-size: var(--font-size-h2);
  font-weight: var(--font-weight-semibold);
}
.form-panel__brand img { width: 32px; height: 32px; border-radius: var(--radius-xl); display: block; }

.form-panel__title { margin-bottom: var(--space-3xs); font-size: var(--font-size-h1); }
.form-panel__intro { margin: 0 0 var(--space-lg); color: var(--color-text-secondary); font-size: var(--font-size-md); }
.form-panel__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-sm);
  margin-bottom: var(--space-md);
}

@media (min-width: 768px) {
  .card { padding: var(--space-lg) var(--space-xl); }
  .form-panel-wrap { align-items: center; padding: var(--space-2xl); }
  .form-panel { padding: var(--space-2xl); }
}

/* ==========================================================================
   Badge — .badge + .badge--success / --muted
   ========================================================================== */

.badge {
  display: inline-flex;
  align-items: center;
  padding: 2px var(--space-xs);
  border-radius: var(--radius-pill);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  line-height: 1.4;
}

.badge--success { background: var(--color-success-bg); color: var(--color-success-strong); }
.badge--muted { background: var(--color-bg-disabled); color: var(--color-text-secondary); }
.badge--new { background: var(--color-primary-soft-bg); color: var(--color-primary); }
.badge--scheduled { background: var(--color-success-bg); color: var(--color-success); }
.badge--completed { background: var(--color-bg-disabled); color: var(--color-text-secondary); }
.badge--cancelled { background: var(--color-error-bg); color: var(--color-error-strong); }

/* ==========================================================================
   Table — .table (responsive, scrolls horizontally on narrow screens)
   ========================================================================== */

.table-wrap { overflow-x: auto; }

.table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--font-size-base);
}

.table th,
.table td {
  padding: var(--space-sm);
  text-align: left;
  border-bottom: 1px solid var(--color-border-soft);
  white-space: nowrap;
}

.table th {
  color: var(--color-text-secondary);
  font-weight: var(--font-weight-medium);
  font-size: var(--font-size-sm);
}

@media (min-width: 768px) {
  .table { font-size: var(--font-size-md); }
}

.request-number {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  font-weight: var(--font-weight-semibold);
}

.priority-bar {
  flex: none;
  width: 4px;
  height: 26px;
  border-radius: 2px;
}

.priority-bar--high { background: var(--color-priority-high); }
.priority-bar--mid { background: var(--color-priority-mid); }
.priority-bar--low { background: var(--color-priority-low); }

/* ==========================================================================
   Dropdown menu — <details class="dropdown"><summary>...</summary>
   <div class="dropdown-menu">...</div></details>. A native HTML disclosure
   widget: opens/closes on click without any JavaScript.
   ========================================================================== */

.dropdown { position: relative; display: inline-block; }

.dropdown > summary {
  list-style: none;
}
.dropdown > summary::-webkit-details-marker { display: none; }
.dropdown > summary::marker { content: ""; }

.dropdown-menu {
  position: absolute;
  top: calc(100% + var(--space-2xs));
  right: 0;
  z-index: 20;
  display: flex;
  flex-direction: column;
  min-width: 180px;
  padding: var(--space-2xs);
  background: var(--color-bg-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-overlay);
}

.dropdown-menu__item {
  display: block;
  width: 100%;
  padding: var(--space-sm);
  border: none;
  border-radius: var(--radius-md);
  background: none;
  font-family: var(--font-sans);
  font-size: var(--font-size-base);
  line-height: var(--line-height-body);
  color: var(--color-text-primary);
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}
.dropdown-menu__item:hover { background: var(--color-bg-subtle); color: var(--color-text-primary); text-decoration: none; }

.dropdown-menu__item--danger { color: var(--color-error-strong); }
.dropdown-menu__item--danger:hover { background: var(--color-error-bg); color: var(--color-error-strong); }

@media (min-width: 768px) {
  .dropdown-menu__item { font-size: var(--font-size-md); padding: var(--space-xs) var(--space-sm); }
}

/* ==========================================================================
   Page header — .page-header (title left, actions right)
   ========================================================================== */

.page-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-sm) var(--space-lg);
  padding: var(--space-sm) var(--space-md);
  background: var(--color-secondary);
  color: var(--color-header-text-muted);
}

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

.page-header__logo { width: 32px; height: 32px; border-radius: var(--radius-xl); display: block; }

.page-header__title {
  font-size: var(--font-size-h2);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-inverse);
  white-space: nowrap;
}

.page-header__nav {
  display: flex;
  align-items: stretch;
  gap: var(--space-md);
  flex-wrap: wrap;
}

.page-header__nav a {
  display: flex;
  align-items: center;
  padding: var(--space-sm) 0;
  color: var(--color-header-text-muted);
  font-size: var(--font-size-md);
  box-shadow: inset 0 -2px 0 transparent;
}

.page-header__nav a:hover { color: var(--color-text-inverse); text-decoration: none; }

.page-header__nav a.active {
  color: var(--color-text-inverse);
  font-weight: var(--font-weight-medium);
  box-shadow: inset 0 -2px 0 var(--color-text-inverse);
}

.page-header__aside {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-left: auto;
}

.page-header__user {
  display: flex;
  align-items: center;
  gap: var(--space-xs);
  min-width: 0;
}

.page-header__avatar {
  flex: none;
  width: 32px;
  height: 32px;
  border-radius: var(--radius-pill);
  background: var(--color-primary-hover);
  color: var(--color-text-inverse);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  display: flex;
  align-items: center;
  justify-content: center;
}

.page-header__identity { line-height: 1.25; }
.page-header__name { font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); color: var(--color-text-inverse); }
.page-header__role { font-size: var(--font-size-xs); color: var(--color-header-text-muted); }

@media (min-width: 768px) {
  .page-header { padding: 0 var(--space-xl); }
  .page-header__brand { padding: var(--space-sm) 0; }
}

/* ==========================================================================
   List header — heading + primary action button, e.g. "Clients" + "Add client"
   ========================================================================== */

.list-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--space-sm);
  margin-bottom: var(--space-lg);
}
.list-header h1 { margin-bottom: 0; }

.list-header__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-xs);
}

/* ==========================================================================
   Search form — .search-form > .search-form__row (input + clear button)
   ========================================================================== */

.search-form { margin-bottom: var(--space-lg); }

.search-form__row {
  display: flex;
  align-items: stretch;
  gap: var(--space-sm);
}

.search-form__row .input { flex: 1 1 auto; min-width: 0; }
.search-form__row .btn { flex: none; }

/* ==========================================================================
   QuickGrid overrides — applies to every QuickGrid in the app, not just one page
   ========================================================================== */

.quickgrid tbody tr:has(> td:first-child:empty) { display: none; }
.table .col-title-text { font-weight: var(--font-weight-medium); }
.paginator { color: var(--color-text-secondary); font-size: var(--font-size-sm); }

.quickgrid.table[theme=default] th { padding: 0; }
.quickgrid.table[theme=default] .col-title,
.quickgrid.table[theme=default] > tbody > tr > td {
  padding: var(--space-sm);
}

.quickgrid.table[theme=default] { position: relative; }

.quickgrid.table[theme=default].loading::after {
  content: '';
  position: absolute;
  top: var(--space-md);
  right: var(--space-md);
  width: 18px;
  height: 18px;
  border: 2px solid var(--color-border);
  border-top-color: var(--color-primary);
  border-radius: var(--radius-pill);
  animation: spin 0.8s linear infinite;
}

@keyframes spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
  .quickgrid.table[theme=default].loading::after { animation-duration: 2.4s; }
}

/* ==========================================================================
   Empty state — .empty-state
   ========================================================================== */

.empty-state {
  padding: var(--space-xl) var(--space-md);
  color: var(--color-text-secondary);
  text-align: center;
}

/* ==========================================================================
   Layout helper
   ========================================================================== */

.page { max-width: var(--page-max-width); margin: 0 auto; padding: var(--space-md); }
@media (min-width: 768px) { .page { padding: var(--space-xl); } }

/* ==========================================================================
   Sub-header — white strip below the app header: breadcrumb, title, actions
   ========================================================================== */

.subheader {
  margin: calc(var(--space-md) * -1) calc(var(--space-md) * -1) var(--space-lg);
  padding: var(--space-md) var(--space-md) 0;
  background: var(--color-bg-surface);
  border-bottom: 1px solid var(--color-border);
}

.subheader__breadcrumb {
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
}

.subheader__title { font-size: var(--font-size-display); margin-top: var(--space-3xs); }

@media (min-width: 768px) {
  .subheader {
    margin: calc(var(--space-xl) * -1) calc(var(--space-xl) * -1) var(--space-lg);
    padding: var(--space-lg) var(--space-xl) 0;
  }
}
