:root {
  --tvk-black: #0d0e0e;
  --tvk-charcoal: #1b1b1a;
  --tvk-bg: #fbfaf7;
  --tvk-bg-soft: #f4eee8;
  --tvk-surface: #fff;
  --tvk-border: #e6ddd4;
  --tvk-accent: #bb744b;
  --tvk-accent-dark: #925234;
  --tvk-text: #22201e;
  --tvk-muted: #716b66;
  --tvk-success: #278157;
  --tvk-radius-sm: 6px;
  --tvk-radius-md: 12px;
  --tvk-radius-lg: 20px;
  --tvk-shadow: 0 18px 50px rgba(40, 27, 18, .08);
  --tvk-container: 1180px;
  --tvk-site-header-height: 96px;
  --tvk-site-logo-height: 64px;
  --tvk-serif: Georgia, "Times New Roman", serif;
  --tvk-sans: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.tvk-site { margin: 0; color: var(--tvk-text); background: var(--tvk-bg); font-family: var(--tvk-sans); font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
body.tvk-site img { display: block; max-width: 100%; height: auto; }
body.tvk-site .tvk-brand-logo,
body.tvk-site .tvk-home-brand__logo { width: auto; height: var(--tvk-site-logo-height); max-width: 100%; object-fit: contain; object-position: left center; }
body.tvk-site a { color: inherit; text-decoration: none; }
body.tvk-site button, body.tvk-site input, body.tvk-site select, body.tvk-site textarea { font: inherit; }
body.tvk-site h1, body.tvk-site h2, body.tvk-site h3, body.tvk-site h4 { margin: 0 0 .55em; font-family: var(--tvk-serif); font-weight: 500; line-height: 1.08; letter-spacing: -.025em; }
body.tvk-site h1 { font-size: clamp(2.45rem, 5vw, 4.4rem); }
body.tvk-site h2 { font-size: clamp(2rem, 3.5vw, 3.05rem); }
body.tvk-site h3 { font-size: clamp(1.15rem, 2vw, 1.45rem); }
body.tvk-site p { margin: 0 0 1em; }
body.tvk-site :focus-visible { outline: 3px solid rgba(187, 116, 75, .5); outline-offset: 3px; }
.screen-reader-text { position: absolute !important; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); width: 1px; height: 1px; white-space: nowrap; }
.tvk-skip-link { position: fixed; z-index: 9999; top: 12px; left: 12px; padding: 10px 16px; transform: translateY(-150%); color: #fff; background: var(--tvk-accent-dark); }
.tvk-skip-link:focus { transform: none; }
.tvk-container { width: min(calc(100% - 40px), var(--tvk-container)); margin-inline: auto; }
.tvk-narrow { max-width: 880px; }
.tvk-main { padding-block: clamp(48px, 7vw, 96px); }
.tvk-section { padding-block: clamp(58px, 8vw, 108px); }
.tvk-section-soft { background: var(--tvk-bg-soft); }
.tvk-icon { width: 32px; height: 32px; }
