:root {
  --cp-plum: #5e2750;
  --cp-blush: #f2c9c3;
  --cp-cream: #fbf4f1;
  --cp-deep: #2a1426;
  --cp-orchid: #a2588e;
  --cp-orchid-ink: #8e4579;
  --cp-mist: #f4e7e8;
  --cp-rule: #dcc6cd;
  --cp-text-face: "Avenir Next", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --cp-sign-face: "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --cp-step: 1.25rem;
  --cp-measure: 44rem;
}

html {
  background-color: var(--cp-cream);
  color: var(--cp-deep);
  font-family: var(--cp-text-face);
  font-size: 100%;
  line-height: 1.55;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  background-color: var(--cp-cream);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 17.5rem;
  grid-template-areas:
    "band band"
    "work side";
  column-gap: 2.5rem;
  align-items: start;
}

:where(.cp_top_band) {
  grid-area: band;
  padding-top: 0.85rem;
  padding-right: var(--cp-step);
  padding-bottom: 1.1rem;
  padding-left: var(--cp-step);
  border-bottom-width: 0.375rem;
  border-bottom-style: solid;
  border-bottom-color: var(--cp-plum);
  background-color: var(--cp-mist);
}

:where(.cp_page_body) {
  grid-area: work;
  min-inline-size: 0;
  padding-top: 1.25rem;
  padding-right: var(--cp-step);
  padding-bottom: 3rem;
  padding-left: var(--cp-step);
  container-type: inline-size;
  container-name: cp-work;
}

:where(.cp_side_panel) {
  grid-area: side;
  padding-top: 1.25rem;
  padding-right: var(--cp-step);
  padding-bottom: 2rem;
  padding-left: var(--cp-step);
  border-left-width: 1px;
  border-left-style: solid;
  border-left-color: var(--cp-rule);
  font-size: 0.9375rem;
}

:where(.cp_brand_row) {
  margin-top: 0;
  margin-bottom: 0.6rem;
  line-height: 1;
}

:where(.cp_brand_link) {
  color: var(--cp-plum);
  font-family: var(--cp-sign-face);
  font-size: 1.375rem;
  font-weight: 700;
  text-decoration-line: none;
}

:where(.cp_brand_lockup) {
  display: block;
  max-width: 100%;
  height: auto;
}

:where(.cp_trail_line) {
  margin-top: 0;
  margin-bottom: 0.35rem;
  font-size: 0.8125rem;
  color: var(--cp-orchid-ink);
}

:where(.cp_trail_line) :is(a) {
  color: inherit;
}

:where(.cp_credit_line) :is(a) {
  color: var(--cp-plum);
  text-underline-offset: 0.18em;
}

:where(.cp_page_title) {
  margin-top: 0;
  margin-bottom: 0.4rem;
  max-inline-size: var(--cp-measure);
  font-family: var(--cp-sign-face);
  font-size: clamp(1.625rem, 1.2rem + 1.6vw, 2.5rem);
  line-height: 1.12;
  color: var(--cp-plum);
  text-wrap: balance;
}

:where(.cp_page_summary) {
  margin-top: 0;
  margin-bottom: 0.4rem;
  max-inline-size: var(--cp-measure);
  font-size: 1.0625rem;
  line-height: 1.45;
}

:where(.cp_credit_line, .cp_planner_kind) {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 0.875rem;
}

:where(.cp_credit_role, .cp_planner_kind) {
  color: var(--cp-orchid-ink);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.75rem;
}

:where(.cp_draft_flag) {
  margin-top: 0;
  margin-bottom: 0.75rem;
  padding-top: 0.5rem;
  padding-right: 0.75rem;
  padding-bottom: 0.5rem;
  padding-left: 0.75rem;
  background-color: var(--cp-plum);
  color: var(--cp-cream);
}

:where(.cp_flag_word) {
  color: var(--cp-blush);
}

:where(.cp_page_body) :is(a),
:where(.cp_side_panel) :is(a) {
  color: var(--cp-plum);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
}

:where(.cp_page_body) :is(a):is(:hover, :focus-visible) {
  color: var(--cp-orchid-ink);
}

:where(.cp_time_table) {
  inline-size: 100%;
  border-collapse: collapse;
}

:where(.cp_table_caption) {
  caption-side: top;
  text-align: start;
  padding-bottom: 0.6rem;
  font-weight: 700;
  color: var(--cp-plum);
}

:where(.cp_time_table) :is(th, td) {
  padding-top: 0.6rem;
  padding-right: 0.75rem;
  padding-bottom: 0.6rem;
  padding-left: 0;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-bottom-color: var(--cp-rule);
  text-align: start;
  vertical-align: top;
}

:where(.cp_time_table) :is(thead th) {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--cp-orchid-ink);
}

:where(.cp_time_table) :is(tbody th) {
  font-weight: 700;
}

:where(.cp_time_table) :is(time) {
  white-space: nowrap;
}

:where(.cp_empty_line) {
  margin-top: 0;
  font-style: italic;
}

:where(.cp_notice_list, .cp_desk_pairs) {
  margin-top: 0;
  margin-bottom: 1.5rem;
  max-inline-size: var(--cp-measure);
}

:where(.cp_notice_pair, .cp_desk_pair) {
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
  border-top-width: 1px;
  border-top-style: solid;
  border-top-color: var(--cp-rule);
}

:where(.cp_notice_pair, .cp_desk_pair) > :is(dt) {
  font-weight: 700;
  color: var(--cp-plum);
}

:where(.cp_notice_pair, .cp_desk_pair) > :is(dd) {
  margin-left: 0;
  margin-top: 0.3rem;
}

:where(.cp_desk_pair) :is(p) {
  margin-top: 0;
  margin-bottom: 0.55rem;
}

:where(.cp_desk_address) {
  margin-bottom: 1rem;
  font-style: normal;
}

:where(.cp_desk_label) {
  display: block;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--cp-orchid-ink);
}

:where(.cp_desk_links) {
  margin-top: 0;
  margin-bottom: 0;
}

:where(.cp_desk_group) + :where(.cp_desk_group) {
  margin-top: 0.9rem;
}

:where(.cp_desk_group) > :is(dt) {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--cp-orchid-ink);
}

:where(.cp_desk_group) > :is(dd) {
  margin-left: 0;
  padding-top: 0.3rem;
  padding-bottom: 0.3rem;
  border-bottom-width: 1px;
  border-bottom-style: dotted;
  border-bottom-color: var(--cp-rule);
}

@container cp-work (max-width: 34rem) {
  :where(.cp_time_table) :is(thead) {
    position: absolute;
    clip-path: inset(50%);
    inline-size: 1px;
    block-size: 1px;
    overflow: hidden;
  }

  :where(.cp_time_table) :is(tr) {
    display: grid;
    padding-top: 0.6rem;
    padding-bottom: 0.6rem;
    border-bottom-width: 1px;
    border-bottom-style: solid;
    border-bottom-color: var(--cp-rule);
  }

  :where(.cp_time_table) :is(th, td) {
    padding-top: 0.1rem;
    padding-bottom: 0.1rem;
    border-bottom-width: 0;
  }
}

@media (max-width: 37.5em) {
  body {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "band"
      "work"
      "side";
  }

  :where(.cp_side_panel) {
    border-left-width: 0;
    border-top-width: 0.375rem;
    border-top-style: solid;
    border-top-color: var(--cp-plum);
  }
}
