/* ============================================================
   OA 2026 theme — element defaults and WordPress content classes.
   Components, masthead and sections come from the OA Components plugin.
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--oa-header-h) + 16px); }

body {
  margin: 0;
  font-family: var(--font-body);
  font-weight: var(--weight-light);
  font-size: var(--text-base);
  line-height: var(--leading-normal);
  letter-spacing: var(--tracking-body);
  color: var(--text-primary);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
::selection { background: var(--oa-red-100); }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-slab);
  font-weight: var(--weight-bold);
  letter-spacing: var(--tracking-head);
  line-height: var(--leading-tight);
  color: var(--text-primary);
  margin: 0 0 0.5em;
  text-wrap: balance;
}
h1 { font-size: var(--text-3xl); }
h2 { font-size: var(--text-2xl); }
h3 { font-size: var(--text-xl); }
h4 { font-size: var(--text-lg); }
h5 { font-size: var(--text-md); }
h6 { font-size: var(--text-base); }

p { margin: 0 0 1em; text-wrap: pretty; }
a { color: var(--color-link); text-decoration: none; }
a:hover { color: var(--brand-accent-hover); text-decoration: underline; }
img { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; letter-spacing: inherit; }
strong, b { font-weight: var(--weight-bold); }

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

.screen-reader-text {
  border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
  height: 1px; margin: -1px; overflow: hidden; padding: 0;
  position: absolute !important; width: 1px; word-wrap: normal !important;
}
.oa-skip {
  position: absolute; left: 12px; top: -60px; z-index: 100;
  background: var(--brand-dark); color: #fff; padding: 10px 16px;
  font-weight: 700; border-radius: var(--radius-md);
}
.oa-skip:focus { top: 12px; color: #fff; }

.oa-shell { min-height: 100vh; display: flex; flex-direction: column; background: var(--color-bg); font-family: var(--font-sans); color: var(--text-primary); }
.oa-content { flex: 1; display: flex; flex-direction: column; }
.oa-content > * { width: 100%; }

/* ============================================================
   WordPress content defaults (non-Elementor pages, posts)
   ============================================================ */
.alignleft { float: left; margin: .3em 1.5em 1em 0; }
.alignright { float: right; margin: .3em 0 1em 1.5em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.wp-caption, figure { max-width: 100%; }
.wp-caption-text, figcaption { font-size: var(--text-xs); color: var(--text-muted); margin-top: 9px; }
.sticky, .bypostauthor, .gallery-caption { /* WP required classes */ }
