:root {
  color-scheme: light;

  /* Color system — direção visual homologada. */
  --ro-color-ink: #1c1a17;
  --ro-color-deep: #20211d;
  --ro-color-off-white: #f7f3ec;
  --ro-color-paper: #fbf9f5;
  --ro-color-stone: #e8e0d5;
  --ro-color-sand: #d5c4a8;
  --ro-color-bronze: #946d42;
  --ro-color-taupe: #675f56;
  --ro-color-line: #d8cfc2;
  --ro-color-white: #ffffff;

  /* Typography — stacks locais/seguras, sem dependência externa no Pacote 02. */
  --ro-font-display: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif;
  --ro-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;

  /* Type scale. */
  --ro-text-xs: 0.6875rem;
  --ro-text-sm: 0.8125rem;
  --ro-text-md: 1rem;
  --ro-text-lg: 1.125rem;
  --ro-text-xl: 1.5rem;
  --ro-text-2xl: 2rem;
  --ro-text-3xl: 3rem;
  --ro-text-display: clamp(3rem, 6.4vw, 6.25rem);

  /* Spacing scale. */
  --ro-space-1: 0.25rem;
  --ro-space-2: 0.5rem;
  --ro-space-3: 0.75rem;
  --ro-space-4: 1rem;
  --ro-space-5: 1.5rem;
  --ro-space-6: 2rem;
  --ro-space-7: 3rem;
  --ro-space-8: 4rem;
  --ro-space-9: 6rem;
  --ro-space-10: 8rem;
  --ro-space-11: 10rem;

  /* Layout. */
  --ro-max-wide: 1360px;
  --ro-max-reading: 720px;
  --ro-max-copy: 640px;
  --ro-gutter: 24px;
  --ro-page-pad: clamp(32px, 4.2vw, 64px);
  --ro-section-space: clamp(96px, 9vw, 160px);
  --ro-section-space-compact: clamp(64px, 6vw, 104px);

  /* Interaction. */
  --ro-focus-width: 2px;
  --ro-focus-offset: 4px;
  --ro-transition-fast: 160ms ease;
  --ro-transition-base: 240ms ease;
}

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

html {
  scroll-behavior: smooth;
  text-rendering: optimizeLegibility;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--ro-color-off-white);
  color: var(--ro-color-ink);
  font-family: var(--ro-font-sans);
  font-size: var(--ro-text-md);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

main {
  display: block;
}

img,
picture,
svg,
video {
  display: block;
  max-width: 100%;
}

img {
  height: auto;
}

button,
input,
select,
textarea {
  font: inherit;
}

a {
  color: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

::selection {
  background: var(--ro-color-sand);
  color: var(--ro-color-ink);
}

:where(a, button, input, select, textarea, summary):focus-visible {
  outline: var(--ro-focus-width) solid var(--ro-color-bronze);
  outline-offset: var(--ro-focus-offset);
}

.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.screen-reader-text:focus {
  width: auto;
  height: auto;
  margin: var(--ro-space-2);
  padding: var(--ro-space-3) var(--ro-space-4);
  clip: auto;
  clip-path: none;
  white-space: normal;
  background: var(--ro-color-paper);
  color: var(--ro-color-ink);
  box-shadow: 0 8px 30px rgb(28 26 23 / 12%);
  z-index: 100000;
}

.site-main {
  min-height: 55vh;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
