/* base.css, reset + typography defaults, mobile-first */

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--pd-font-body);
  font-size: var(--pd-fs-base);
  line-height: var(--pd-lh-normal);
  color: var(--pd-neutral-900);
  background: var(--pd-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

img, picture, video, svg { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }

a { color: var(--pd-primary); text-decoration: none; transition: color var(--pd-dur) var(--pd-ease); }
a:hover { color: var(--pd-primary-dark); text-decoration: underline; }
a:focus-visible { outline: 3px solid var(--pd-accent); outline-offset: 3px; border-radius: 4px; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--pd-font-heading);
  font-weight: var(--pd-fw-bold);
  letter-spacing: var(--pd-tracking-snug);
  line-height: var(--pd-lh-tight);
  color: var(--pd-neutral-900);
  margin: 0 0 var(--pd-space-4);
}
h1 { font-size: var(--pd-fs-2xl); font-weight: var(--pd-fw-extra); }
h2 { font-size: var(--pd-fs-xl); }
h3 { font-size: var(--pd-fs-lg); }
h4 { font-size: var(--pd-fs-md); }
h5, h6 { font-size: var(--pd-fs-base); }

@media (min-width: 768px) {
  h1 { font-size: var(--pd-fs-3xl); }
  h2 { font-size: var(--pd-fs-2xl); }
  h3 { font-size: var(--pd-fs-xl); }
}
@media (min-width: 1024px) {
  h1 { font-size: var(--pd-fs-4xl); letter-spacing: var(--pd-tracking-tight); }
}

p { margin: 0 0 var(--pd-space-4); }
p:last-child { margin-bottom: 0; }
strong, b { font-weight: var(--pd-fw-bold); }

ul, ol { margin: 0 0 var(--pd-space-4); padding-left: var(--pd-space-5); }
li { margin-bottom: var(--pd-space-2); }

blockquote {
  margin: var(--pd-space-5) 0;
  padding: var(--pd-space-4) var(--pd-space-5);
  border-left: 4px solid var(--pd-accent);
  background: var(--pd-accent-50);
  border-radius: var(--pd-radius-sm);
  font-style: italic;
  color: var(--pd-neutral-800);
}
blockquote.pd-tip { border-left-color: var(--pd-success); background: #E8F8F1; }
blockquote.pd-warning { border-left-color: var(--pd-warning); background: #FEF6E0; }

hr { border: 0; border-top: var(--pd-border); margin: var(--pd-space-6) 0; }

/* Tabular numbers for prices */
.pd-num, [data-pd-num] {
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum";
}

/* Accessibility helpers */
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.skip-link {
  position: absolute; top: -100px; left: 0; padding: var(--pd-space-3) var(--pd-space-5);
  background: var(--pd-neutral-900); color: var(--pd-white); z-index: var(--pd-z-toast);
}
.skip-link:focus { top: 0; }

/* Selection */
::selection { background: var(--pd-accent); color: var(--pd-white); }
