:root {
  --tlm-bg: #f7f4f1;
  --tlm-surface: #fff;
  --tlm-text: #171514;
  --tlm-accent: #b86f7f;
  --tlm-muted: #706a66;
  --tlm-border: rgba(23, 21, 20, .16);
  --tlm-radius: 0;
  /* Global layout rhythm: one horizontal axis and one section spacing system. */
  --tlm-container: 1440px;
  --tlm-gutter: clamp(20px, 3.333vw, 64px);
  --tlm-section: clamp(58px, 4.8vw, 84px);
  --tlm-section-head-gap: clamp(22px, 2.2vw, 34px);
  --tlm-font: Arial, Helvetica, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--tlm-text); background: var(--tlm-bg); font-family: var(--tlm-font); font-size: 16px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
body.tlm-overlay-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
svg { width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }

.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; }
.screen-reader-text:focus { clip: auto !important; clip-path: none; display: block; height: auto; left: 10px; top: 10px; width: auto; z-index: 100000; background: #fff; color: #000; padding: 12px 16px; }
.tlm-skip-link { position: fixed; left: -9999px; top: 12px; z-index: 100000; }
.tlm-skip-link:focus { left: 12px; background: #fff; padding: 10px 14px; }

.tlm-container { width: min(100% - (var(--tlm-gutter) * 2), var(--tlm-container)); margin-inline: auto; }
/* Kept for backwards compatibility with existing templates; all primary sections now share one axis. */
.tlm-container--wide { width: min(100% - (var(--tlm-gutter) * 2), var(--tlm-container)); }
.tlm-container--narrow { max-width: 1180px; }
.tlm-section { padding-block: var(--tlm-section); }
.tlm-eyebrow { margin: 0 0 14px; text-transform: uppercase; letter-spacing: .16em; font-size: 11px; font-weight: 700; }
.tlm-section h2, .tlm-story h2, .tlm-newsletter h2, .tlm-campaign h2 { margin: 0; font-size: clamp(34px, 4.3vw, 72px); line-height: .98; letter-spacing: -.045em; font-weight: 500; }
.tlm-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: var(--tlm-section-head-gap); }
.tlm-section-head h2 { font-size: clamp(30px, 3.4vw, 56px); }
.tlm-section-head__actions { display: flex; align-items: center; gap: 28px; }
.tlm-link-arrow { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; padding-bottom: 4px; border-bottom: 1px solid currentColor; }
.tlm-link-arrow svg { width: 16px; transition: transform .25s ease; }
.tlm-link-arrow:hover svg { transform: translateX(4px); }
.tlm-button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 0 22px; border: 1px solid transparent; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; transition: background .2s ease, color .2s ease, border-color .2s ease; }
.tlm-button--solid { background: #fff; color: #111; }
.tlm-button--solid:hover { background: #111; color: #fff; }
.tlm-button--dark { background: #171514; color: #fff; }
.tlm-button--dark:hover { background: transparent; color: #171514; border-color: #171514; }
.tlm-editor-note { border: 1px dashed var(--tlm-border); padding: 18px; margin: 0; color: var(--tlm-muted); }

.tlm-default-page, .tlm-404 { padding-block: clamp(80px, 10vw, 160px); min-height: 55vh; }
.tlm-prose { max-width: 900px; }
.tlm-prose h1, .tlm-404 h1 { margin: 0 0 28px; font-size: clamp(42px, 6vw, 88px); line-height: .96; letter-spacing: -.05em; font-weight: 500; }

@media (max-width: 767px) {
  :root { --tlm-section: 52px; --tlm-section-head-gap: 22px; }
  .tlm-section-head { align-items: flex-start; }
  .tlm-section-head__actions { gap: 16px; }
  .tlm-section-head .tlm-link-arrow { font-size: 11px; }
}
