/*
 * Aperina base — reset, helpers and WordPress content defaults.
 * Loads after tokens.css and components.css.
 */

*, *::before, *::after { box-sizing: border-box; }
html { background: var(--bg); scroll-behavior: smooth; overflow-x: clip; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: var(--font-sans); font-size: var(--text-body); line-height: var(--lh-body); -webkit-font-smoothing: antialiased; transition: background-color var(--dur-theme) var(--ease-in-out), color var(--dur-theme) var(--ease-in-out); }
h1, h2, h3, h4, p, figure, ul, ol { margin: 0; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
[hidden] { display: none !important; }
:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 3px; }
::selection { background: var(--primary); color: var(--on-primary); }

.wrap { max-width: var(--container); margin-inline: auto; padding-inline: clamp(16px, 4vw, 40px); }
.wrap-narrow { max-width: calc(var(--container-narrow) + 2 * clamp(16px, 4vw, 40px)); }
.sr, .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip { position: absolute; inset-inline-start: 16px; top: -80px; z-index: 100; }
.skip:focus { top: 12px; }
.row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.section { padding-block: clamp(56px, 8vw, 112px); }
.section-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--space-3) var(--space-8); margin-block-end: clamp(24px, 3vw, 40px); }
.section-head p { color: var(--text-muted); max-width: 46ch; margin-block-start: var(--space-2); }
.btn .spinner { display: none; }
.btn[aria-busy="true"] .spinner { display: inline-block; }

/* ---------- Editor content ---------- */
.entry-content a { color: var(--link); text-decoration-thickness: 1px; text-underline-offset: 0.4em; }
.entry-content img { height: auto; }
.entry-content figcaption, .wp-element-caption { font-size: var(--text-caption); line-height: var(--lh-caption); color: var(--text-muted); margin-block-start: var(--space-2); }
.entry-content .alignwide { max-width: var(--container); }
.entry-content .alignfull { max-width: none; margin-inline: calc(50% - 50vw); }
.aligncenter { margin-inline: auto; }
.alignleft { float: left; margin-inline-end: var(--space-6); }
.alignright { float: right; margin-inline-start: var(--space-6); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
