/*
Theme Name: Daily Prize Games
Theme URI: https://dailyprizegames.uk
Author: Daily Prize Games Editorial
Author URI: https://dailyprizegames.uk
Description: warm prize-counter child theme for Daily Prize Games: cream ground, ink-brown text, one amber accent, soft 10px radii, Georgia headings over a Verdana body.
Template: astra
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: dpg
*/

/* Daily Prize Games child theme styles. One sheet carries the main
   styles and the header, risk strip and footer chrome so the chrome
   always wins over Astra inline CSS. Warm prize-counter language:
   cream ground, ink-brown text, one amber accent, soft 10px radii,
   Georgia headings over a Verdana body, hairline rules throughout. */

/* 01 - Design tokens */

:root {
  --dpg-ground: #FBF6EC;
  --dpg-paper: #FFFFFF;
  --dpg-ink: #211A10;
  --dpg-ink-soft: #4C4336;
  --dpg-ink-pale: #71685A;
  --dpg-accent: #C97B0A;
  --dpg-accent-dark: #96590B;
  --dpg-rule: #E7DECD;
  --dpg-rule-col: #EEE6D6;
  --dpg-panel: #F5EEDF;
  --dpg-footer-ground: #F2EADA;
  --dpg-zebra: #FDFAF4;
  --dpg-measure: 72rem;
  --dpg-radius: 10px;
  --dpg-stack: Verdana, Geneva, "DejaVu Sans", sans-serif;
  --dpg-heading: Georgia, "Times New Roman", serif;
  --dpg-hairline: 1px solid var(--dpg-rule);
}

/* 02 - Base reset and typography */

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

html {
  background-color: var(--dpg-ground);
}

body {
  margin: 0;
  font-family: var(--dpg-stack);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--dpg-ink);
  background-color: var(--dpg-ground);
  font-variant-numeric: tabular-nums;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}

body.dpg-site {
  font-family: var(--dpg-stack);
}

img,
svg,
video {
  max-width: 100%;
  height: auto;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--dpg-heading);
  color: var(--dpg-ink);
  line-height: 1.25;
}

p {
  overflow-wrap: break-word;
}

table {
  border-collapse: collapse;
}

/* 03 - Selection, focus, links */

::selection {
  background: var(--dpg-accent);
  color: #FFFFFF;
}

a:focus-visible,
button:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--dpg-accent);
  outline-offset: 2px;
}

input:focus,
select:focus,
textarea:focus {
  outline: 2px solid var(--dpg-accent);
  outline-offset: 1px;
}

.dpg-body a {
  color: var(--dpg-ink);
  text-decoration: underline;
  text-decoration-color: var(--dpg-accent);
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  transition: color 120ms linear;
}

.dpg-body a:hover,
.dpg-body a:focus-visible {
  color: var(--dpg-accent-dark);
  text-decoration-color: var(--dpg-accent);
}

/* 04 - Motion guard */

@media (prefers-reduced-motion: reduce) {

  *,
  *::before,
  *::after {
    transition: none;
    animation: none;
    scroll-behavior: auto;
  }
}

/* 05 - Astra compatibility layer */

.site-content .ast-container {
  max-width: none;
  padding: 0;
  margin: 0;
  width: 100%;
}

.site-content .ast-row {
  margin-left: 0;
  margin-right: 0;
  max-width: none;
}

#primary,
.site-main {
  float: none;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.entry-content {
  max-width: none;
  margin: 0;
  padding: 0;
}

.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post {
  background-color: transparent;
  border-bottom: 0;
  margin: 0;
  padding: 0;
}

/* The one measure contract leaves no room for a sidebar column */
#secondary,
.ast-separate-container #secondary,
.widget-area {
  display: none;
}

.ast-pagination {
  max-width: var(--dpg-measure);
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 32px);
}

.ast-pagination .page-numbers {
  border: 0;
  color: var(--dpg-ink-soft);
}

.ast-pagination .page-numbers.current,
.ast-pagination .page-numbers:hover {
  background-color: var(--dpg-panel);
  color: var(--dpg-accent);
}

/* Header and footer are full bleed bands with the same inner measure */
.main-header-bar .ast-container,
.site-footer .ast-container,
#colophon .ast-container {
  max-width: var(--dpg-measure);
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  padding-left: clamp(16px, 4vw, 32px);
  padding-right: clamp(16px, 4vw, 32px);
}

/* 06 - The one width rule */

.dpg-sheet {
  max-width: var(--dpg-measure);
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 32px);
  padding-block: 0.5rem clamp(2.5rem, 5vw, 4rem);
}

.dpg-sheet > * {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

/* 07 - Micro label system */

.dpg-eyebrow,
.dpg-crumbs,
.dpg-ticker__label,
.dpg-contents__label,
.dpg-board__rank,
.dpg-board__micro,
.dpg-table thead th,
.dpg-compare thead th,
.dpg-calc label,
.dpg-calc__label,
.dpg-care h2,
.dpg-care h3,
.dpg-onward h2,
.dpg-onward h3,
.dpg-micro {
  font-family: var(--dpg-stack);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.dpg-eyebrow {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--dpg-ink-pale);
  margin: 0 0 0.75rem;
}

.dpg-micro {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--dpg-ink-pale);
  margin: 0 0 0.5rem;
}

/* 08 - Breadcrumbs */

.dpg-crumbs {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--dpg-ink-pale);
  border-bottom: var(--dpg-hairline);
  padding-block: 0.75rem;
  margin-bottom: 0;
}

.dpg-crumbs a {
  color: var(--dpg-ink-pale);
  text-decoration: none;
  transition: color 120ms linear;
}

.dpg-crumbs a:hover,
.dpg-crumbs a:focus-visible {
  color: var(--dpg-accent);
}

.dpg-crumbs__sep {
  color: var(--dpg-ink-pale);
  padding-inline: 0.5rem;
}

.dpg-crumbs [aria-current="page"],
.dpg-crumbs__current {
  color: var(--dpg-ink);
}

/* 09 - Hero */

.dpg-hero {
  padding-block: 2.5rem 1.5rem;
  margin-block: 0;
}

.dpg-hero h1,
.dpg-hero .dpg-hero__title {
  margin: 0 0 1rem;
  font-size: clamp(2rem, 4.5vw, 3rem);
  font-weight: 700;
  line-height: 1.12;
}

.dpg-standfirst,
.dpg-hero .dpg-standfirst {
  margin: 0;
  font-size: clamp(1.05rem, 1.6vw, 1.25rem);
  line-height: 1.5;
  color: var(--dpg-ink-pale);
  max-width: none;
}

/* 10 - Ticker strip */

.dpg-ticker {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 1.5rem;
  row-gap: 0.4rem;
  border-top: var(--dpg-hairline);
  border-bottom: var(--dpg-hairline);
  padding-block: 0.9rem;
  margin-block: 0 2.5rem;
}

.dpg-ticker__label {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--dpg-ink-pale);
}

.dpg-ticker__num,
.dpg-ticker strong {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  color: var(--dpg-ink);
}

.dpg-ticker__caption,
.dpg-ticker small {
  font-size: 0.9rem;
  color: var(--dpg-ink-pale);
}

/* 11 - Contents strip */

.dpg-contents {
  border-top: var(--dpg-hairline);
  border-bottom: var(--dpg-hairline);
  padding-block: 1rem;
  margin-block: 0 2.5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 1.5rem;
  row-gap: 0.5rem;
}

.dpg-contents__label {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--dpg-ink-pale);
  flex: 0 0 auto;
}

.dpg-contents ol,
.dpg-contents ul {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  column-gap: 1.1rem;
  row-gap: 0.35rem;
  counter-reset: dpg-toc;
  flex: 1 1 auto;
  min-width: 0;
}

.dpg-contents li {
  counter-increment: dpg-toc;
}

.dpg-contents li::before {
  content: counter(dpg-toc) ". ";
  color: var(--dpg-accent);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.dpg-contents a {
  color: var(--dpg-ink);
  text-decoration: none;
  border-bottom: 1px solid var(--dpg-rule);
  transition: color 120ms linear, border-color 120ms linear;
}

.dpg-contents a:hover,
.dpg-contents a:focus-visible {
  color: var(--dpg-accent);
  border-bottom-color: var(--dpg-accent);
}

/* 12 - The comparison board. Rounded paper cards on the cream ground,
   amber rank badges, Georgia brand rows, panel pills and full width
   amber calls to action. */

.dpg-boardlead {
  font-size: 1rem;
  color: var(--dpg-ink);
  margin: 1.25rem 0 0.75rem;
  max-width: none;
}

.dpg-board {
  border: var(--dpg-hairline);
  background: var(--dpg-paper);
  border-radius: var(--dpg-radius);
  padding: 1.25rem;
  margin: 1.25rem 0 2rem;
}

.dpg-board__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}

.dpg-board__grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dpg-board__grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dpg-board__grid--1 {
  grid-template-columns: minmax(0, 1fr);
}

.dpg-board__column {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  min-width: 0;
  border: var(--dpg-hairline);
  background: var(--dpg-paper);
  border-radius: var(--dpg-radius);
  padding: 1rem;
}

.dpg-board__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.5rem;
  border-bottom: var(--dpg-hairline);
  padding-bottom: 0.55rem;
}

.dpg-board__rank {
  display: inline-block;
  align-self: flex-start;
  background: var(--dpg-accent);
  color: #FFFFFF;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 0.15rem 0.55rem;
  line-height: 1.3;
  border-radius: var(--dpg-radius);
}

.dpg-board__brand {
  margin: 0;
  font-family: var(--dpg-heading);
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.15;
}

.dpg-board__pill {
  display: inline-block;
  background: var(--dpg-panel);
  color: var(--dpg-ink-soft);
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.4;
  font-variant-numeric: tabular-nums;
  padding: 0.12rem 0.6rem;
  border-radius: 999px;
  white-space: nowrap;
}

.dpg-board__offer {
  margin: 0;
  font-weight: 600;
  font-size: 0.95rem;
}

.dpg-board__chips {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: var(--dpg-hairline);
  flex: 1 1 auto;
}

.dpg-board__chips li {
  padding: 0.4rem 0;
  border-bottom: var(--dpg-hairline);
  font-size: 0.85rem;
  color: var(--dpg-ink-pale);
}

.dpg-board__chips li:last-child {
  border-bottom: 0;
}

.dpg-board__cta {
  display: block;
  width: 100%;
  text-align: center;
  background: var(--dpg-accent);
  color: #FFFFFF;
  border: 0;
  font: inherit;
  font-weight: 700;
  font-size: 0.9rem;
  letter-spacing: 0.02em;
  text-decoration: none;
  padding: 0.7rem 0.75rem;
  cursor: pointer;
  border-radius: var(--dpg-radius);
  transition: background-color 120ms linear, color 120ms linear;
}

.dpg-board__cta:hover,
.dpg-board__cta:focus-visible {
  background: var(--dpg-accent-dark);
  color: #FFFFFF;
  text-decoration: none;
}

.dpg-board__terms {
  font-size: 0.75rem;
  color: var(--dpg-ink-pale);
  margin: 0;
}

/* Board breakpoints */

@media (max-width: 1099px) {

  .dpg-board__grid,
  .dpg-board__grid--3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 599px) {

  .dpg-board__grid,
  .dpg-board__grid--3,
  .dpg-board__grid--2 {
    grid-template-columns: 1fr;
  }
}

/* Board refresh placeholder */

.dpg-board--refresh .dpg-board__refresh,
.dpg-board__refresh {
  margin: 0;
  padding: 1.25rem 0;
  color: var(--dpg-ink-pale);
  font-size: 0.9rem;
}

.dpg-board--refresh .dpg-board__refresh::before {
  content: none;
}

/* 13 - Data tables */

.dpg-table-wrap,
.dpg-compare-wrap {
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  margin: 1.25rem 0;
  -webkit-overflow-scrolling: touch;
}

.dpg-table,
.dpg-compare {
  width: 100%;
  border-collapse: collapse;
  background: var(--dpg-paper);
  font-size: 0.9rem;
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
}

.dpg-table {
  min-width: 40rem;
}

.dpg-compare {
  min-width: 56rem;
}

.dpg-table thead th,
.dpg-compare thead th {
  text-align: left;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--dpg-ink-pale);
  padding: 0.75rem 0.9rem;
  border-bottom: 1px solid var(--dpg-ink);
}

.dpg-table thead th:not(:first-child),
.dpg-compare thead th:not(:first-child) {
  text-align: right;
}

.dpg-table tbody th,
.dpg-compare tbody th {
  text-align: left;
  font-weight: 600;
  padding: 0.6rem 0.9rem;
  border-bottom: var(--dpg-hairline);
}

.dpg-table tbody td,
.dpg-compare tbody td {
  padding: 0.6rem 0.75rem;
  border-bottom: var(--dpg-hairline);
  vertical-align: top;
  color: var(--dpg-ink);
}

/* Column separators, the only vertical rules allowed */
.dpg-table thead th + thead th,
.dpg-table tbody td + tbody td,
.dpg-table tbody th + tbody td,
.dpg-compare thead th + thead th,
.dpg-compare tbody td + tbody td,
.dpg-compare tbody th + tbody td {
  border-left: 1px solid var(--dpg-rule-col);
}

.dpg-table tbody td:not(:first-child),
.dpg-compare tbody td:not(:first-child) {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.dpg-table tbody tr:first-child td,
.dpg-compare tbody tr:first-child td {
  border-top: 1px solid var(--dpg-ink);
}

.dpg-table tbody tr:hover,
.dpg-compare tbody tr:hover {
  background: var(--dpg-zebra);
}

.dpg-table tbody td:first-child,
.dpg-compare tbody td:first-child {
  font-weight: 600;
}

/* Status tags, the one deliberate square corner family */

.dpg-tag--uk,
.dpg-tag--off {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.25rem 0.55rem;
  white-space: nowrap;
  border-radius: 0;
}

.dpg-tag--uk {
  background: var(--dpg-ink-soft);
  color: #FFFFFF;
  border: 1px solid var(--dpg-ink-soft);
}

.dpg-tag--off {
  background: transparent;
  color: var(--dpg-accent);
  border: 1px solid var(--dpg-accent);
}

.dpg-compare-note {
  font-size: 0.8rem;
  color: var(--dpg-ink-pale);
  border-top: var(--dpg-hairline);
  margin: 0.75rem 0 0;
  padding-top: 0.6rem;
}

/* 14 - Figures and chart ink */

.dpg-figure {
  border: var(--dpg-hairline);
  background: var(--dpg-paper);
  border-radius: var(--dpg-radius);
  padding: 1rem;
  margin: 1.5rem 0;
}

.dpg-figure__title {
  margin: 0 0 1rem;
  font-size: 1rem;
  font-weight: 700;
}

.dpg-figure img,
.dpg-figure svg {
  width: 100%;
  height: auto;
  display: block;
}

.dpg-figure figcaption,
.dpg-figure__caption {
  border-top: var(--dpg-hairline);
  margin-top: 0.6rem;
  padding-top: 0.5rem;
  font-size: 0.8rem;
  line-height: 1.5;
  color: var(--dpg-ink-pale);
}

.dpg-figure text {
  font-family: var(--dpg-stack);
  font-variant-numeric: tabular-nums;
}

.dpg-ch-axis {
  fill: var(--dpg-ink-pale);
  stroke: none;
}

.dpg-ch-axis line,
.dpg-ch-axis path,
.dpg-ch-axis polyline {
  stroke: var(--dpg-ink-pale);
  fill: none;
}

.dpg-ch-grid {
  stroke: var(--dpg-rule);
  fill: none;
}

.dpg-ch-grid line,
.dpg-ch-grid path,
.dpg-ch-grid polyline {
  stroke: var(--dpg-rule);
  fill: none;
}

/* Series: lines get stroke, bars and markers get fill */
.dpg-ch-series-1 {
  stroke: var(--dpg-accent);
  fill: none;
}

.dpg-ch-series-1 rect,
.dpg-ch-series-1 circle {
  fill: var(--dpg-accent);
}

.dpg-ch-series-2 {
  stroke: var(--dpg-ink-soft);
  fill: none;
}

.dpg-ch-series-2 rect,
.dpg-ch-series-2 circle {
  fill: var(--dpg-ink-soft);
}

.dpg-ch-label {
  fill: var(--dpg-ink);
  stroke: none;
}

/* 15 - Calculator */

.dpg-calc {
  border: var(--dpg-hairline);
  background: var(--dpg-panel);
  border-radius: var(--dpg-radius);
  padding: 1.25rem;
  margin: 1.5rem 0;
}

.dpg-calc__fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem 1rem;
}

.dpg-calc__field {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
}

.dpg-calc label,
.dpg-calc__label {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--dpg-ink-pale);
}

.dpg-calc input[type="number"],
.dpg-calc input[type="text"],
.dpg-calc select {
  width: 100%;
  font: inherit;
  color: var(--dpg-ink);
  background: var(--dpg-paper);
  border: 1px solid var(--dpg-rule);
  border-radius: var(--dpg-radius);
  padding: 0.5rem 0.6rem;
  font-variant-numeric: tabular-nums;
}

.dpg-calc input::placeholder {
  color: var(--dpg-ink-pale);
}

.dpg-calc__out {
  background: var(--dpg-paper);
  border: var(--dpg-hairline);
  border-radius: var(--dpg-radius);
  padding: 0.9rem 1rem;
  margin-top: 1rem;
  font-variant-numeric: tabular-nums;
}

.dpg-calc__headline {
  font-weight: 700;
  margin: 0 0 0.5rem;
}

.dpg-calc__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  padding: 0.3rem 0;
  border-bottom: var(--dpg-hairline);
  font-variant-numeric: tabular-nums;
}

.dpg-calc__row:last-child {
  border-bottom: 0;
}

.dpg-calc__rowlabel {
  color: var(--dpg-ink-pale);
}

.dpg-calc__rowval {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.dpg-calc__note {
  font-size: 0.78rem;
  color: var(--dpg-ink-pale);
  margin: 0.75rem 0 0;
}

.dpg-calc__fields > .dpg-calc__field:first-child:nth-last-child(1) {
  grid-column: 1 / -1;
}

@media (max-width: 599px) {

  .dpg-calc__fields {
    grid-template-columns: 1fr;
  }
}

/* 16 - FAQ, heading plus answer family. Each item is a rounded paper
   panel, the question is a Georgia heading with an amber left rule
   and the answer sits indented under the rule. */

.dpg-faq {
  margin: 2rem 0;
}

.dpg-faq__item {
  background: var(--dpg-paper);
  border: var(--dpg-hairline);
  border-radius: var(--dpg-radius);
  padding: 1rem 1.25rem;
  margin: 0 0 1rem;
}

.dpg-faq__item:last-child {
  margin-bottom: 0;
}

.dpg-faq__q {
  margin: 0 0 0.5rem;
  font-family: var(--dpg-heading);
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--dpg-ink);
  border-left: 3px solid var(--dpg-accent);
  padding-left: 0.75rem;
}

.dpg-faq__a {
  padding: 0.25rem 0 0.25rem calc(0.75rem + 3px);
  color: var(--dpg-ink);
  font-size: 0.95rem;
  line-height: 1.6;
}

.dpg-faq__a p {
  margin: 0 0 0.6rem;
}

.dpg-faq__a > :last-child {
  margin-bottom: 0;
}

/* 17 - Care block */

.dpg-care {
  border: var(--dpg-hairline);
  border-left: 3px solid var(--dpg-accent);
  background: var(--dpg-panel);
  border-radius: var(--dpg-radius);
  padding: 1.1rem 1.25rem;
  margin: 2rem 0;
  font-size: 0.92rem;
  line-height: 1.6;
}

.dpg-care h2,
.dpg-care h3 {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--dpg-ink);
  margin: 0 0 0.6rem;
}

.dpg-care p {
  font-size: 0.92rem;
  line-height: 1.6;
  margin: 0 0 0.6rem;
}

.dpg-care a {
  color: var(--dpg-ink);
  text-decoration: underline;
  text-decoration-color: var(--dpg-accent);
  text-underline-offset: 2px;
}

.dpg-care a:hover {
  color: var(--dpg-accent-dark);
}

.dpg-care__stat {
  color: var(--dpg-ink-pale);
  margin-bottom: 0;
}

.dpg-care > :last-child {
  margin-bottom: 0;
}

/* 18 - Onward links */

.dpg-onward {
  margin: 2rem 0;
}

.dpg-onward h2,
.dpg-onward h3 {
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--dpg-ink-pale);
  margin: 0 0 0.75rem;
  padding-bottom: 0.6rem;
  border-bottom: var(--dpg-hairline);
}

.dpg-onward ul,
.dpg-onward ol {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem 2rem;
}

.dpg-onward li {
  border-left: 2px solid var(--dpg-rule);
  padding-left: 0.75rem;
  font-size: 0.95rem;
}

.dpg-onward a {
  color: var(--dpg-ink);
  text-decoration: underline;
  text-decoration-color: var(--dpg-accent);
  text-underline-offset: 2px;
  transition: color 120ms linear;
}

.dpg-onward a:hover,
.dpg-onward a:focus-visible {
  color: var(--dpg-accent-dark);
}

@media (max-width: 767px) {

  .dpg-onward ul,
  .dpg-onward ol {
    grid-template-columns: 1fr;
  }
}

/* 19 - Colophon */

.dpg-colophon {
  border-top: var(--dpg-hairline);
  margin-top: 3rem;
  padding: 1.25rem 0 2.5rem;
  font-size: 0.8rem;
  line-height: 1.6;
  color: var(--dpg-ink-pale);
}

.dpg-colophon p {
  margin: 0 0 0.5rem;
}

.dpg-colophon strong,
.dpg-colophon b {
  color: var(--dpg-ink);
  font-weight: 700;
}

.dpg-colophon a {
  color: var(--dpg-ink);
  text-decoration: underline;
  text-decoration-color: var(--dpg-rule);
  text-underline-offset: 2px;
}

.dpg-colophon a:hover {
  color: var(--dpg-accent-dark);
  text-decoration-color: var(--dpg-accent);
}

/* 20 - Body prose defaults */

.dpg-body {
  font-size: 1rem;
  margin-block: 0 2.5rem;
}

.dpg-body > * {
  max-width: 100%;
  min-width: 0;
}

.dpg-body h2,
h2.dpg-h2 {
  font-size: clamp(1.35rem, 2.4vw, 1.7rem);
  font-weight: 700;
  line-height: 1.25;
  margin: 3rem 0 0;
  padding-bottom: 0.5rem;
  border-bottom: var(--dpg-hairline);
}

h2.dpg-h2 + p,
.dpg-body h2 + p {
  margin-top: 1rem;
}

.dpg-body h3 {
  font-size: 1.18rem;
  font-weight: 700;
  line-height: 1.3;
  margin: 2.25rem 0 0.6rem;
}

.dpg-body h4 {
  font-size: 1.02rem;
  font-weight: 700;
  margin: 1.75rem 0 0.5rem;
}

.dpg-body h2:first-child {
  margin-top: 0.5rem;
}

.dpg-body p {
  line-height: 1.65;
  margin: 0 0 1.1rem;
}

.dpg-body ul,
.dpg-body ol {
  margin: 0 0 1.1rem;
  padding-left: 1.5rem;
}

.dpg-body li {
  margin: 0 0 0.35rem;
}

.dpg-body li::marker {
  color: var(--dpg-ink-pale);
}

.dpg-body blockquote {
  margin: 1.75rem 0;
  padding: 0.2rem 0 0.2rem 1.4rem;
  border-left: 1px solid var(--dpg-ink-soft);
  color: var(--dpg-ink-soft);
  font-size: 1.02rem;
}

.dpg-body blockquote p:last-child {
  margin-bottom: 0;
}

.dpg-body hr {
  border: 0;
  border-top: var(--dpg-hairline);
  margin: 2.5rem 0;
}

.dpg-body strong,
.dpg-body b {
  font-weight: 700;
}

/* 21 - Utility site pages modifier */

.dpg-page--site .dpg-body {
  line-height: 1.7;
}

.dpg-page--site .dpg-body p {
  margin-bottom: 1.25rem;
}

.dpg-page--site .dpg-hero {
  padding-block: clamp(1.5rem, 3vw, 2.25rem) 1rem;
}

/* 22 - Astra header fallback styles */

#masthead,
.site-header,
.main-header-bar {
  background-color: var(--dpg-paper);
  border-bottom: var(--dpg-hairline);
  box-shadow: none;
}

.site-branding {
  padding-block: 0.9rem;
  line-height: 1.2;
}

.site-title,
.site-title a {
  font-family: var(--dpg-heading);
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.1;
  color: var(--dpg-ink);
  text-decoration: none;
}

.site-title a:hover,
.site-title a:focus-visible {
  color: var(--dpg-ink);
}

.site-description {
  color: var(--dpg-ink-pale);
  font-size: 0.78rem;
}

/* Navigation stays one row and scrolls when it cannot fit */

.main-header-bar-navigation,
.main-navigation {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}

.main-navigation ul,
.main-header-menu,
.ast-inline-menu {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

.main-navigation li,
.main-header-menu .menu-item {
  white-space: nowrap;
}

.main-navigation a,
.main-header-menu .menu-link,
.ast-inline-menu .menu-link {
  font-family: var(--dpg-stack);
  font-size: 0.95rem;
  color: var(--dpg-ink-soft);
  text-decoration: none;
  padding: 0.6rem 0.8rem;
  white-space: nowrap;
  transition: color 120ms linear;
}

.main-navigation a:hover,
.main-navigation a:focus-visible,
.main-header-menu .menu-link:hover,
.main-header-menu .menu-link:focus-visible,
.ast-inline-menu .menu-link:hover,
.ast-inline-menu .menu-link:focus-visible {
  color: var(--dpg-accent);
}

.main-navigation ul ul {
  background: var(--dpg-paper);
  border: var(--dpg-hairline);
  border-radius: var(--dpg-radius);
  box-shadow: none;
  min-width: 12rem;
}

.ast-mobile-menu-trigger-fill,
.ast-mobile-menu-trigger-minimal,
.menu-toggle {
  color: var(--dpg-ink);
  background: transparent;
  border: 1px solid var(--dpg-rule);
  border-radius: var(--dpg-radius);
}

@media (max-width: 600px) {

  .main-navigation a,
  .main-header-menu .menu-link,
  .ast-inline-menu .menu-link {
    font-size: 0.9rem;
    padding: 0.5rem 0.55rem;
  }

  .site-title,
  .site-title a {
    font-size: 1.2rem;
  }
}

/* 23 - Astra footer fallback styles */

.site-footer,
#colophon {
  background-color: var(--dpg-footer-ground);
  border-top: var(--dpg-hairline);
  margin-top: 0;
  color: var(--dpg-ink-pale);
  font-size: 0.85rem;
  padding-block: 2rem;
}

.site-footer .dpg-sheet {
  padding-block: 0;
}

.site-footer p {
  color: var(--dpg-ink-pale);
  font-size: 0.85rem;
  margin: 0 0 0.5rem;
}

.site-footer a {
  color: var(--dpg-ink-soft);
  text-decoration: none;
  transition: color 120ms linear;
}

.site-footer a:hover,
.site-footer a:focus-visible {
  color: var(--dpg-accent);
}

.site-footer nav ul,
.footer-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
}

.site-footer nav a,
.footer-nav a {
  font-size: 0.85rem;
  padding: 0.25rem 0;
  display: inline-block;
}

/* 24 - Small screen guards */

@media (max-width: 400px) {

  .dpg-board {
    padding: 0.9rem;
  }

  .dpg-board__column {
    padding: 0.85rem;
  }

  .dpg-calc {
    padding: 1rem;
  }

  .dpg-figure {
    padding: 0.75rem;
  }

  .dpg-hero h1 {
    font-size: 1.9rem;
  }
}

/* 25 - Template classes: teaser list and page shells */

.dpg-teaser {
  border-bottom: var(--dpg-hairline);
  padding-block: 1.25rem;
}

.dpg-teaser__h {
  margin: 0 0 0.35rem;
  font-family: var(--dpg-heading);
  font-size: 1.2rem;
  font-weight: 700;
}

.dpg-teaser__h a {
  color: var(--dpg-ink);
  text-decoration: none;
}

.dpg-teaser__h a:hover,
.dpg-teaser__h a:focus-visible {
  color: var(--dpg-accent);
}

.dpg-teaser__meta {
  margin: 0 0 0.5rem;
  font-size: 0.78rem;
  color: var(--dpg-ink-pale);
  font-variant-numeric: tabular-nums;
}

.dpg-sheet--tmpl {
  padding-block: 0 clamp(2.5rem, 5vw, 4rem);
}

/* 26 - Chrome: skip link and wrap */

.dpg-skip {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--dpg-accent, #C97B0A);
  color: #FFFFFF;
  font-weight: 700;
  font-size: 0.85rem;
  padding: 0.6rem 1rem;
  z-index: 999;
}

.dpg-skip:focus {
  left: 0;
}

.dpg-wrap {
  max-width: var(--dpg-measure, 72rem);
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 32px);
}

/* 27 - Chrome: masthead */

.dpg-top,
.dpg-mast {
  background: var(--dpg-paper, #FFFFFF);
}

.dpg-mast-in {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.35rem 1.5rem;
  padding-block: 0.95rem 0.85rem;
}

.dpg-logo {
  font-family: var(--dpg-heading);
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1;
  color: var(--dpg-ink, #211A10);
  text-decoration: none;
}

/* The middle word of the wordmark carries the amber, the rest is ink */
.dpg-logo span {
  color: var(--dpg-accent, #C97B0A);
}

.dpg-logo:hover,
.dpg-logo:focus-visible {
  color: var(--dpg-ink, #211A10);
}

.dpg-tag {
  margin: 0;
  font-size: 0.78rem;
  color: var(--dpg-ink-pale, #71685A);
  letter-spacing: 0.01em;
}

.dpg-util {
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem 1.1rem;
}

.dpg-util a {
  font-size: 0.8rem;
  color: var(--dpg-ink-soft, #4C4336);
  text-decoration: none;
  transition: color 120ms linear;
}

.dpg-util a:hover,
.dpg-util a:focus-visible {
  color: var(--dpg-accent, #C97B0A);
}

/* 28 - Chrome: menu bar with dropdowns. The bar is sticky and its
   items stay on a single row. No overflow property lives on the bar
   or the list: an overflow-x auto there would compute overflow-y to
   auto as well and clip the dropdown panels, so the bar stays
   overflow free and the panels stay readable. */

.dpg-menubar {
  position: sticky;
  top: 0;
  z-index: 900;
  background: var(--dpg-paper, #FFFFFF);
  border-top: var(--dpg-hairline, 1px solid #E7DECD);
  border-bottom: var(--dpg-hairline, 1px solid #E7DECD);
}

.dpg-menu {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

.dpg-item {
  position: relative;
}

.dpg-item > a {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--dpg-ink-soft, #4C4336);
  text-decoration: none;
  padding: 0.65rem 0.85rem;
  white-space: nowrap;
  transition: color 120ms linear;
}

.dpg-item > a::after {
  content: "";
  width: 0.42rem;
  height: 0.42rem;
  margin-top: -0.3rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform 120ms linear;
  opacity: 0.55;
}

.dpg-item > a:hover,
.dpg-item > a:focus-visible,
.dpg-item.dpg-open > a {
  color: var(--dpg-accent, #C97B0A);
}

.dpg-item.dpg-open > a::after {
  transform: rotate(225deg);
  margin-top: 0.15rem;
}

.dpg-item:not(.dpg-has-children) > a::after {
  display: none;
}

/* Dropdown panels. Two CSS columns with a visible rule keep long
   child lists inside one screen at desktop widths: the panel widens,
   the rows flow down the left column then the right, and the Overview
   link spans the full width on top. Small screens collapse to one
   column. */

.dpg-drop {
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 50;
  display: none;
  min-width: 26rem;
  max-height: 65vh;
  overflow-y: auto;
  padding-block: 0.3rem;
  columns: 2;
  column-gap: 0.75rem;
  column-rule: 1px solid var(--dpg-rule-col, #EEE6D6);
  background: var(--dpg-paper, #FFFFFF);
  border: var(--dpg-hairline, 1px solid #E7DECD);
  border-top: 2px solid var(--dpg-accent, #C97B0A);
  border-radius: var(--dpg-radius, 10px);
  box-shadow: 0 10px 24px rgba(33, 26, 16, 0.12);
}

.dpg-item:hover .dpg-drop,
.dpg-item:focus-within .dpg-drop,
.dpg-item.dpg-open .dpg-drop {
  display: block;
}

.dpg-drop a {
  display: block;
  break-inside: avoid;
  font-size: 0.85rem;
  color: var(--dpg-ink-soft, #4C4336);
  text-decoration: none;
  padding: 0.45rem 0.9rem;
  border-bottom: 1px solid var(--dpg-rule-col, #EEE6D6);
  transition: color 120ms linear, background-color 120ms linear;
}

.dpg-drop a:last-child {
  border-bottom: 0;
}

.dpg-drop a:hover,
.dpg-drop a:focus-visible {
  color: var(--dpg-accent, #C97B0A);
  background: var(--dpg-zebra, #FDFAF4);
}

.dpg-drop .dpg-drop__all {
  column-span: all;
  font-weight: 700;
  color: var(--dpg-ink, #211A10);
  border-bottom: 1px solid var(--dpg-rule-col, #EEE6D6);
}

.dpg-drop .dpg-drop__all:hover,
.dpg-drop .dpg-drop__all:focus-visible {
  color: var(--dpg-accent, #C97B0A);
}

/* The last dropdown may overflow the viewport edge: keep it inside */
.dpg-item:last-child .dpg-drop {
  left: auto;
  right: 0;
}

/* 29 - Chrome: risk strip */

.dpg-risk {
  background: var(--dpg-panel, #F5EEDF);
}

.dpg-risk p {
  margin: 0;
  padding-block: 0.45rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--dpg-ink-soft, #4C4336);
}

/* 30 - Chrome: content area guard */

.dpg-own-chrome #content {
  background: var(--dpg-ground, #FBF6EC);
}

.dpg-own-chrome .site-content .ast-container {
  max-width: none;
  padding: 0;
  margin: 0;
  width: 100%;
}

.dpg-own-chrome #primary,
.dpg-own-chrome .site-main {
  float: none;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.dpg-own-chrome .entry-content {
  max-width: none;
  margin: 0;
  padding: 0;
}

.dpg-own-chrome #secondary,
.dpg-own-chrome .widget-area {
  display: none;
}

/* 31 - Chrome: page title block and template shells */

.dpg-pagewrap {
  max-width: var(--dpg-measure, 72rem);
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 32px);
  padding-block: 0 clamp(2.5rem, 5vw, 4rem);
}

.dpg-pagetitle {
  padding-block: clamp(1.5rem, 3vw, 2.25rem) 0.5rem;
}

.dpg-pagetitle h1 {
  margin: 0 0 0.5rem;
  font-family: var(--dpg-heading);
  font-size: clamp(2rem, 4.5vw, 3rem);
  font-weight: 700;
  line-height: 1.12;
  color: var(--dpg-ink, #211A10);
}

.dpg-pagetitle p {
  margin: 0;
  font-size: clamp(1rem, 1.5vw, 1.15rem);
  line-height: 1.5;
  color: var(--dpg-ink-pale, #71685A);
}

/* Bare fragment pages render inside .dpg-main without the template
   shell, so the main element itself guards the ground. */

.dpg-main {
  padding-bottom: clamp(2rem, 5vw, 3.5rem);
}

/* 32 - Chrome: footer */

.dpg-foot {
  background: var(--dpg-footer-ground, #F2EADA);
  border-top: var(--dpg-hairline, 1px solid #E7DECD);
  margin-top: 0;
  color: var(--dpg-ink-pale, #71685A);
  font-size: 0.85rem;
}

.dpg-foot-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: 2rem;
  padding-block: 2.25rem 1.75rem;
}

.dpg-foot-brand .dpg-logo {
  display: inline-block;
  margin-bottom: 0.75rem;
}

.dpg-foot-brand p {
  margin: 0 0 0.6rem;
  line-height: 1.6;
  color: var(--dpg-ink-pale, #71685A);
}

.dpg-foot-risk {
  font-weight: 600;
  color: var(--dpg-ink-soft, #4C4336);
}

.dpg-foot-h {
  font-family: var(--dpg-stack);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--dpg-ink, #211A10);
  margin: 0 0 0.6rem;
}

.dpg-foot-col a {
  display: block;
  font-size: 0.85rem;
  color: var(--dpg-ink-soft, #4C4336);
  text-decoration: none;
  padding: 0.22rem 0;
  transition: color 120ms linear;
}

.dpg-foot-col a:hover,
.dpg-foot-col a:focus-visible {
  color: var(--dpg-accent, #C97B0A);
}

.dpg-foot-strip {
  border-top: var(--dpg-hairline, 1px solid #E7DECD);
}

.dpg-foot-strip p {
  margin: 0;
  padding-block: 0.9rem;
  font-size: 0.78rem;
  color: var(--dpg-ink-pale, #71685A);
}

/* 33 - Chrome: responsive */

@media (max-width: 899px) {

  .dpg-foot-grid {
    grid-template-columns: 1fr 1fr;
  }

  .dpg-foot-brand {
    grid-column: 1 / -1;
  }
}

@media (max-width: 599px) {

  .dpg-mast-in {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }

  .dpg-tag {
    display: none;
  }

  .dpg-drop {
    min-width: min(26rem, 88vw);
    columns: 1;
  }

  .dpg-foot-grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }
}

@media (max-width: 400px) {

  .dpg-logo {
    font-size: 1.25rem;
  }

  .dpg-item > a {
    font-size: 0.9rem;
    padding: 0.55rem 0.65rem;
  }
}