/* Royal Pixel Press — core design system */
@import url("fonts.css");

:root {
  --burgundy: #642D3B;
  --burgundy-dark: #48212C;
  --ivory: #F8F5EF;
  --cream: #F0EBE2;
  --gold: #C6A778;
  --gold-text: #8A6A3C; /* gold tone darkened for text on light backgrounds (contrast) */
  --espresso: #292523;
  --warm-gray: #6B655F;
  --stone: #DDD5CA;
  --white: #FFFFFF;
  --serif: "Cormorant Garamond", "Libre Baskerville", Georgia, serif;
  --sans: "DM Sans", "Source Sans 3", system-ui, -apple-system, "Segoe UI", sans-serif;
  --wrap: 1280px;
  --gutter: clamp(1.25rem, 4vw, 3rem);
  --sec: clamp(4.5rem, 9vw, 8.5rem);
  --ease: cubic-bezier(.2, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background: var(--ivory); color: var(--espresso); font-family: var(--sans); font-size: 1.0625rem; line-height: 1.7; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--burgundy); text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { color: var(--burgundy-dark); }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
h1, h2, h3 { font-family: var(--serif); font-weight: 500; line-height: 1.08; letter-spacing: -.01em; margin: 0 0 .5em; color: inherit; }
h1 { font-size: clamp(2.75rem, 7vw, 6.25rem); }
.display { font-size: clamp(2.1rem, 4.4vw, 3.75rem); }
.h2 { font-size: clamp(1.9rem, 3.2vw, 2.75rem); }
.h3, h3 { font-size: 1.5rem; }
p { margin: 0 0 1.1em; }
em { font-style: italic; }
address { font-style: normal; }

.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.narrow { max-width: 860px; }
.narrow-l { max-width: 760px; margin-bottom: 3rem; }
.center { text-align: center; }
.skip { position: absolute; left: 1rem; top: -4rem; background: var(--espresso); color: var(--ivory); padding: .75rem 1.25rem; z-index: 100; }
.skip:focus { top: 1rem; }

.eyebrow { font-family: var(--sans); font-size: .75rem; letter-spacing: .22em; text-transform: uppercase; font-weight: 600; color: var(--burgundy); margin: 0 0 1.25rem; }
.eyebrow-gold { color: var(--gold); }
.gold-rule { display: block; width: 72px; height: 1px; background: var(--gold); margin: 2rem 0; }
.center .gold-rule { margin-left: auto; margin-right: auto; }
.lead { font-size: clamp(1.1rem, 1.6vw, 1.3rem); line-height: 1.6; max-width: 40rem; color: var(--ivory); opacity: .92; }
.lead.dark { color: var(--warm-gray); opacity: 1; }
.prose { max-width: 68ch; }
.prose-lg { font-size: 1.15rem; line-height: 1.75; }
.fine { font-size: .85rem; color: var(--warm-gray); margin-top: 1.5rem; }
.fine.light { color: rgba(248,245,239,.65); }
.fine.light a { color: var(--gold); }
.bignum { font-family: var(--serif); font-size: clamp(3.5rem, 7vw, 6rem); line-height: .9; color: var(--gold); font-weight: 500; display: block; }
.bignum.sm { font-size: 2.6rem; margin-bottom: 1rem; }
.ico { width: 1.15em; height: 1.15em; flex: none; transition: transform .35s var(--ease); }

/* Buttons */
.btn { display: inline-flex; align-items: center; gap: .6rem; font-family: var(--sans); font-size: .82rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; padding: 1.05rem 1.9rem; border: 1px solid transparent; text-decoration: none; cursor: pointer; transition: background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease); border-radius: 0; }
.btn-primary { background: var(--burgundy); color: var(--ivory); }
.btn-primary:hover { background: var(--burgundy-dark); color: var(--ivory); }
.btn-ivory { background: var(--ivory); color: var(--burgundy-dark); }
.btn-ivory:hover { background: var(--gold); color: var(--espresso); }
.btn-outline-light { border-color: rgba(248,245,239,.55); color: var(--ivory); }
.btn-outline-light:hover { border-color: var(--gold); color: var(--gold); }
.btn-ghost-dark { border-color: var(--espresso); color: var(--espresso); background: transparent; }
.btn-ghost-dark:hover { background: var(--espresso); color: var(--ivory); }
.btn:hover .ico { transform: translateX(4px); }
.btn-wide { width: 100%; justify-content: center; }
.btns { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2.5rem; }
.btns.center { justify-content: center; }
.textlink { display: inline-flex; align-items: center; gap: .5rem; font-size: .8rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; text-decoration: none; color: var(--burgundy); border-bottom: 1px solid var(--gold); padding-bottom: .3rem; }
.textlink:hover .ico { transform: translateX(4px); }
.linkish { background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: .2em; }

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