/* ==========================================================================
   minimalisTee — base.css
   Loaded on every page. Holds the design tokens, base element styles,
   navbar, footer, subscribe bar and shared components.
   Page-specific styles live in assets/css/pages/<page>.css
   ========================================================================== */

/* ── 1. Design tokens ───────────────────────────────────────────────────── */
:root {
  /* colours — taken from the Redefining Minimalism e-book page */
  --ink:        #1C1A18;   /* warm black: text, navbar, dark sections */
  --ink-2:      #2A2724;   /* hover black / cards on dark */
  --ink-soft:   #33302C;   /* borders on dark */
  --paper:      #ffffff;   /* white sections */
  --cream:      #F9F7F4;   /* warm off-white sections */
  --cream-2:    #F1EDE6;   /* warm sand cards / alternate sections */
  --line:       #ECE7E0;   /* hairlines on white */
  --line-warm:  #DDD6CC;   /* hairlines on cream */
  --text:       #1C1A18;
  --text-2:     #4A4642;   /* body copy */
  --text-3:     #6B6661;   /* secondary copy, labels */
  --muted:      #8A847D;   /* captions, meta */
  --muted-2:    #A8A29A;
  --star:       #E3A33B;
  --accent:     #FF5757;   /* "Buy" coral */

  /* the three brand accents: focus · clarity · freedom */
  --focus:       #F2B8C4;  --focus-ink:   #C88C94;  --focus-tint:   #FCEDF0;
  --clarity:     #A9D6B7;  --clarity-ink: #5E9A6E;  --clarity-tint: #EAF5ED;
  --freedom:     #AFC7F2;  --freedom-ink: #6F8FD8;  --freedom-tint: #EBF1FC;
  --lilac:       var(--focus);   /* old name, kept for older styles */

  --tint-blue:   var(--freedom-tint);  --ink-blue:   #3F5FA8;
  --tint-green:  var(--clarity-tint);  --ink-green:  #3E7A50;
  --tint-purple: var(--focus-tint);    --ink-purple: #9A5A68;

  /* type — one system for the whole site */
  --font-display: 'Poppins', 'Montserrat', sans-serif;          /* headings, buttons, numbers */
  --font-body:    'Montserrat', sans-serif;                      /* everything else */
  --font-serif:   'Cormorant Garamond', Georgia, serif;          /* italic quotes */

  /* type scale (desktop → phone) */
  --fs-hero:  clamp(40px, 6vw, 84px);
  --fs-h2:    clamp(30px, 3.6vw, 52px);
  --fs-title: clamp(36px, 4.5vw, 64px);   /* plain page titles (contact, privacy) */
  --fs-h3:    clamp(20px, 1.8vw, 24px);
  --fs-lead:  clamp(16px, 1.3vw, 18px);
  --fs-body:  16px;
  --fs-small: 14px;

  /* small uppercase "eyebrow" labels — one size everywhere */
  --eyebrow-size: 12px;
  --eyebrow-track: .16em;

  /* layout */
  --nav-h: 72px;
  --gutter: 8vw;
  --radius: 14px;
  --shadow-soft: 0 18px 50px rgba(28, 26, 24, .07);
}

/* ── 2. Base / reset ────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 22px;
  font-weight: 400;
  color:var(--text);
  background:var(--paper);
  overflow-x: hidden;
  -webkit-tap-highlight-color: transparent;
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 600;
  color:var(--text);
  text-rendering: optimizeLegibility;
}
h1 { font-size: 60px; line-height: 72px; font-weight: 600; }
h2 { font-size: 68px; line-height: 81.6px; }
h3 { font-size: 56px; line-height: 67.2px; }
h4 { font-size: 42px; line-height: 50.4px; }
h5 { font-size: 28px; line-height: 33.6px; }
h6 { font-size: 20px; line-height: 30px; }
ul, ol, li { list-style: none; }
b, strong { font-weight: bolder; }
a {
  color:var(--text);
  text-decoration: none;
  display: inline-block;
  cursor: pointer;
  transition: all .3s ease;
}
img, svg { vertical-align: middle; }
img { max-width: 100%; height: auto; }
video { width: 100%; height: 100%; object-fit: cover; }
blockquote { position: relative; padding: 16px 30px 25px; margin-bottom: 45px; border-left:2px solid var(--text); }
label { display: inline-block; font-weight: 600; }
button, input, select, textarea { font-family: inherit; font-size: inherit; line-height: inherit; }
button { border-radius:0; text-transform: none; cursor: pointer; }
textarea, input[type=text], input[type=email], input[type=tel], input[type=number],
input[type=url], input[type=search], input[type=password] {
  font-family: var(--font-body);
  border:1px solid var(--text);
  outline:0;
  box-shadow:none;
  font-size: 14px;
  line-height: 24px;
  border-radius:3px;
  padding: 12px 18px;
  width: 100%;
  background:var(--paper);
  color:var(--text);
  font-weight: 400;
}
textarea { height: 112px; resize: vertical; }
fieldset { border:0; min-width: 0; }

@media (max-width: 1024px) {
  h1 { font-size: 44px; line-height: 52.8px; }
  h2 { font-size: 50px; line-height: 60px; }
  h4 { font-size: 32px; line-height: 30.4px; }
}
@media (max-width: 767px) {
  h1 { font-size: 28px; line-height: 34px; }
  h2 { font-size: 32px; line-height: 38.4px; }
  h4 { font-size: 22px; line-height: 26.4px; }
  h5 { font-size: 18px; line-height: 21.6px; }
  h6 { font-size: 16px; line-height: 26px; }
}

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border:0;
}

/* ── 3. Intro splash (home page only) ───────────────────────────────────── */
#intro {
  position: fixed; inset: 0; background:var(--paper); z-index: 1000;
  display: flex; align-items: center; justify-content: center; flex-direction: column;
  gap: 2rem; padding: 2rem 1.5rem 3rem; overflow-y: auto;
}
#intro.hide { pointer-events: none; animation: fadeOutSplash .9s ease forwards; }
@keyframes fadeOutSplash { to { opacity: 0; } }
.stones-stack { display: flex; flex-direction: column; align-items: center; position: relative; }
.zen-stone { border-radius:50%; opacity: 0; transform: translateY(-60px); }
.zen-stone:nth-child(1) { width: 44px;  height: 20px; background:#6b6560; animation: dropStone 1.1s cubic-bezier(.34,1.4,.64,1) forwards .2s; }
.zen-stone:nth-child(2) { width: 70px;  height: 26px; background:#7d7772; animation: dropStone 1.1s cubic-bezier(.34,1.3,.64,1) forwards .7s; }
.zen-stone:nth-child(3) { width: 96px;  height: 30px; background:#918c87; animation: dropStone 1s   cubic-bezier(.34,1.2,.64,1) forwards 1.2s; }
.zen-stone:nth-child(4) { width: 124px; height: 36px; background:#aca8a3; animation: dropStone .5s  cubic-bezier(.34,1.1,.64,1) forwards 1.7s; }
.zen-stone:nth-child(5) { width: 160px; height: 46px; background:#cbc7c1; animation: dropStone .45s cubic-bezier(.34,1,.64,1)   forwards 2.2s; }
@keyframes dropStone { 0% { opacity: 0; transform: translateY(-55px); } 60% { opacity: 1; } 100% { opacity: 1; transform: translateY(0); } }
.breathe-text { text-align: center; }
.breathe-main {
  opacity: 0; animation: fadeUpText 1s ease forwards 3.5s;
  font-size: clamp(1.1rem, 2.5vw, 1.5rem); font-weight: 300; color:var(--text-2);
  letter-spacing: .01em; margin-bottom: .5rem;
}
.breathe-sub {
  opacity: 0; animation: fadeUpText 1s ease forwards 5s;
  font-size: clamp(.8rem, 1.5vw, .95rem); color:var(--muted-2); font-weight: 300;
  letter-spacing: .04em; margin-bottom: 1rem;
}
@keyframes fadeUpText { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
.enter-btn {
  background:none; border:1px solid #ccc; padding: .7rem 2.2rem;
  font-size: .72rem; letter-spacing: .18em; text-transform: uppercase; color:var(--text-3);
  min-height: 44px; transition: border-color .3s, color .3s, background .3s;
}
.enter-btn:hover { border-color:var(--ink); color:var(--paper); background:var(--ink); }
@media (max-width: 768px) {
  .breathe-main, .breathe-sub { opacity: 1; animation: none; }
  .zen-stone { animation-duration: .4s; }
}

/* ── 4. Page wrapper ────────────────────────────────────────────────────── */
#main { opacity: 0; transition: opacity .8s ease; pointer-events: none; }
#main.visible { opacity: 1; pointer-events: auto; }
.nav-spacer { height: var(--nav-h); }

/* ── 5. Navbar ──────────────────────────────────────────────────────────── */
#navbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 500;
  height: var(--nav-h);
  padding: 0 3rem;
  display: flex; justify-content: space-between; align-items: center;
  background:var(--ink);
  border-bottom:1px solid transparent;
  transition: border-color .3s;
}
#navbar.scrolled { border-bottom-color: var(--ink-soft); }
.nav-logo {
  font-family: var(--font-display);
  font-weight: 700; font-size: 1.1rem; line-height: 1;
  letter-spacing: .08em; text-transform: uppercase;
  color:var(--paper);
}
.nav-logo:hover { color:var(--paper); }
.logo-t { position: relative; top: -3px; }
.nav-links { display: flex; gap: 2.5rem; align-items: center; }
.nav-links a {
  font-size: 11px; font-weight: 500; line-height: 22px;
  letter-spacing: .16em; text-transform: uppercase;
  color:rgba(255,255,255,.75);
  transition: color .2s;
}
.nav-links a:hover { color:var(--paper); }
.nav-links a.nav-active {
  color:var(--paper); opacity: .45;
  border-bottom:1px solid rgba(255,255,255,.4);
  padding-bottom: 2px; pointer-events: none;
}
.nav-links .dd-toggle { background:none; border:0; padding: 0; color:rgba(255,255,255,.75);
  font-size: 11px; font-weight: 500; line-height: 22px; letter-spacing: .16em; text-transform: uppercase; cursor: pointer; }
.nav-links .dd-toggle:hover { color:var(--paper); }
.nav-links .dd-toggle.nav-active { color:var(--paper); opacity: .45; border-bottom:1px solid rgba(255,255,255,.4); padding-bottom: 2px; }
.has-dd { position: relative; }
.dd {
  display: none; position: absolute; top: 100%; left: 0; z-index: 300;
  min-width: 240px; padding: .5rem 0;
  background:#0d0d0d; border:1px solid var(--ink-2);
  box-shadow:0 8px 32px rgba(0,0,0,.6);
}
.nav-links > li:last-child .dd { left: auto; right: 0; }
.has-dd:hover .dd, .has-dd:focus-within .dd { display: block; }
.dd li a {
  display: block; padding: .7rem 1.4rem;
  font-size: .78rem; line-height: 1.4; letter-spacing: .04em; text-transform: none;
  color:rgba(255,255,255,.7); white-space: normal;
}
.dd li a:hover { background:var(--ink-soft); color:var(--paper); }
.dd li a.nav-active { border-bottom:0; padding-bottom: .7rem; }
.hamburger { display: none; }

@media (max-width: 1024px) {
  #navbar { padding: 0 2rem; }
  .nav-links { gap: 1.5rem; }
}
@media (max-width: 768px) {
  #navbar { padding: 0 1.5rem; }
  .nav-links {
    display: none; flex-direction: column; align-items: stretch;
    position: absolute; top: 100%; left: 0; right: 0; z-index: 200;
    gap: 0; padding: .5rem 1.5rem 1rem;
    background:var(--ink); border-bottom:1px solid var(--ink-2);
    max-height: calc(100vh - var(--nav-h)); overflow-y: auto;
  }
  .nav-links.open { display: flex; }
  .nav-links > li { border-bottom:1px solid var(--ink-soft); }
  .nav-links > li > a, .nav-links .dd-toggle {
    display: flex; align-items: center; width: 100%;
    min-height: 44px; padding: .75rem 0; font-size: 11px; text-align: left;
  }
  .nav-links a.nav-active { border-bottom:0; }
  .hamburger {
    display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 5px;
    min-width: 44px; min-height: 44px; padding: 8px; background:none; border:0;
  }
  .hamburger span { display: block; width: 22px; height: 1.5px; background:var(--paper); }
  .has-dd .dd {
    position: static; display: none; width: 100%; min-width: 0;
    border:0; box-shadow:none; background:var(--ink); padding: 0 0 .5rem 1rem;
  }
  .has-dd:hover .dd, .has-dd:focus-within .dd { display: none; }
  .has-dd.dd-open .dd { display: block; }
  .dd li a { display: flex; align-items: center; min-height: 40px; padding: .6rem .5rem; font-size: .75rem; }
}
@media (max-width: 480px) {
  #navbar { padding: 0 1rem; }
  .nav-logo { font-size: .95rem; }
}

/* ── 6. Sticky subscribe bar ────────────────────────────────────────────── */
#global-sub-bar {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 90;
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  padding: 1rem 4vw;
  background:var(--ink); border-top:1px solid var(--ink-2);
  transform: translateY(100%);
  transition: transform .45s cubic-bezier(.4,0,.2,1);
}
#global-sub-bar.show { transform: translateY(0); }
.gsb-left { display: flex; align-items: center; gap: .8rem; flex: 1; min-width: 0; }
.gsb-icon { font-size: 1rem; color:var(--muted-2); flex-shrink: 0; line-height: 1; }
.gsb-text { font-size: .8rem; color:var(--paper); letter-spacing: .03em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gsb-right { display: flex; align-items: center; flex-shrink: 0; }
#global-sub-bar .gsb-email {
  width: auto; min-width: 200px; padding: .65rem 1rem; border-radius:0;
  background:transparent; border:1px solid #444; border-right:0;
  color:var(--paper); font-size: .75rem;
}
#global-sub-bar .gsb-email::placeholder { color:var(--text-3); }
.gsb-btn {
  min-height: 44px; padding: .65rem 1.5rem; flex-shrink: 0; white-space: nowrap;
  background:var(--paper); color:var(--ink); border:0;
  font-size:var(--eyebrow-size); font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
  transition: background .2s;
}
.gsb-btn:hover { background:#e0e0e0; }
.gsb-msg { color:var(--muted-2); font-size: .72rem; margin: 0 0 0 1rem; }
.no-subbar #global-sub-bar { display: none; }
.gsb-close {
  flex-shrink: 0; width: 36px; height: 36px; margin-left: -.5rem; border: 0; background: transparent;
  color: var(--muted-2); font-size: 22px; line-height: 1; cursor: pointer; transition: color .2s;
}
.gsb-close:hover { color: var(--paper); }
@media (max-width: 768px) {
  #global-sub-bar { flex-direction: column; align-items: stretch; gap: .6rem; padding: .8rem 1.2rem; }
  .gsb-left { padding-right: 32px; }
  .gsb-close { position: absolute; top: .35rem; right: .45rem; margin: 0; }
  .gsb-text { font-size: .75rem; white-space: normal; }
  .gsb-right { flex-direction: column; width: 100%; }
  #global-sub-bar .gsb-email { width: 100%; min-width: 0; border-right:1px solid #444; border-bottom:0; }
  .gsb-btn { width: 100%; text-align: center; padding: .7rem 1rem; }
}

/* ── 7. Footer ──────────────────────────────────────────────────────────── */
.site-footer { background:var(--paper); border-top:1px solid var(--line); padding-bottom: 50px; }
.no-subbar .site-footer { padding-bottom: 0; }
.site-footer .ft-inner {
  max-width: 400px; margin: 0 auto; padding: 2.4rem 1.5rem 2rem;
  display: flex; flex-direction: column; align-items: center; gap: .8rem; text-align: center;
}
.site-footer p { margin: 0; }
.ft-logo { font-family: var(--font-display); font-size: 1rem; font-weight: 700; color:var(--ink); letter-spacing: .08em; text-transform: uppercase; line-height: 22px; }
.ft-tag  { font-size: .9rem; color:var(--text-3); font-weight:400; }
.ft-year { font-size: .9rem; color:var(--text-3); font-weight:400; }
.ft-links { font-size:15px; color:var(--text-3); font-weight:400; line-height: 2; margin-top: .4rem !important; }
.ft-links a { color:var(--text-3); padding: .25rem .1rem; }
.ft-links a:hover { color:var(--ink); }
.ft-links .sep { color:var(--line); margin: 0 .5rem; }
.ft-social { display: flex; align-items: center; gap: 1.5rem; margin-top: .4rem; }
.ft-social a { color:var(--ink); line-height: 0; padding: .3rem; transition: opacity .2s; }
.ft-social a:hover { opacity: .4; }
.ft-copy { font-size: .65rem; color:var(--muted-2); font-weight:400; margin-top: .4rem !important; }

/* ── 8. Shared components ───────────────────────────────────────────────── */
/* small uppercase label above headings */
.eyebrow {
  font-family: var(--font-body);
  font-size: var(--eyebrow-size); font-weight: 600; line-height: 22px;
  letter-spacing: var(--eyebrow-track);
  text-transform: uppercase;
  color:var(--text-3);
}
/* Highlighter in the three brand colours (focus · clarity · freedom).
   Use sparingly: one key word or line per section.
   In page text / admin: [focus]words[/focus], [clarity]…[/clarity], [freedom]…[/freedom]
   or <mark>…</mark> (colours rotate automatically). */
mark, .hl {
  --hl: var(--focus);
  color:inherit; font: inherit;
  background: var(--hl);
  padding: .04em .16em; border-radius: 3px;
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
}
/* on big headings a lower, thinner band looks lighter */
/* Full block highlight behind the whole word (one rule for every page; page styles used a lower band before).
   On big headings the block is trimmed to the letter height so two highlighted lines don't touch. */
body :is(h1, h2, h3) :is(mark, .hl),
body :is(.who-title strong, .philo-mark, .cm-book-title em, .dm-title em, .simplify-bg, .sec-ttl mark, .eq-result mark) {
  background: linear-gradient(180deg, transparent 14%, var(--hl, var(--focus)) 14%, var(--hl, var(--focus)) 90%, transparent 90%);
  padding: 0 .12em; margin: 0 .02em; border-radius: 4px; color: var(--ink);
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
}
body .fcf-lead mark { background: var(--hl, var(--focus)); padding: .04em .2em; border-radius: 3px; }
.hl-focus   { --hl: var(--focus); }
.hl-clarity { --hl: var(--clarity); }
.hl-freedom { --hl: var(--freedom); }
/* coloured words (for dark backgrounds / buttons) */
.tc-focus { color:var(--focus); } .tc-clarity { color:var(--clarity); } .tc-freedom { color:var(--freedom); }
/* small coloured dot, as on the e-book page */
.dot-focus, .dot-clarity, .dot-freedom { display: inline-block; width: 8px; height: 8px; border-radius: 50%; vertical-align: middle; }
.dot-focus { background: var(--focus); } .dot-clarity { background: var(--clarity); } .dot-freedom { background: var(--freedom); }

/* buttons */
.btn-dark, .btn-outline {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  font-family: var(--font-display); font-size: 15px; font-weight: 600; line-height: 22px;
  letter-spacing: 0; text-transform: none;
  padding: 14px 30px; min-height: 50px; border-radius: 999px; border: 1px solid var(--ink);
  transition: background .25s, color .25s, transform .25s, box-shadow .25s;
}
.btn-dark:hover, .btn-outline:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(28,26,24,.16); }
.btn-dark { background:var(--ink); color:var(--paper); }
.btn-dark:hover { background:var(--ink-2); border-color:var(--ink-2); color:var(--paper); }
.btn-outline { background:transparent; color:var(--ink); }
.btn-outline:hover { background:var(--ink-2); color:var(--paper); }

/* form feedback text */
.form-msg { font-size: .75rem; margin-top: 8px; display: none; }
.form-msg.ok  { color:#2e7d32; display: block; }
.form-msg.err { color:#e05555; display: block; }

/* video/image carousel used by workshop pages */
.mt-carousel { position: relative; }
.mt-carousel-track {
  display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 3 * 30px) / 4);
  gap: 30px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
}
.mt-carousel-track::-webkit-scrollbar { display: none; }
.mt-carousel-track > * { scroll-snap-align: start; }
@media (max-width: 1024px) { .mt-carousel-track { grid-auto-columns: calc((100% - 15px) / 2); gap: 15px; } }
@media (max-width: 640px)  { .mt-carousel-track { grid-auto-columns: 100%; } }
.mt-carousel-nav { display: flex; justify-content: center; gap: .75rem; margin-top: 1.5rem; }
.mt-carousel-nav button {
  width: 44px; height: 44px; border:1px solid var(--ink); background:var(--paper);
  font-size: 1rem; line-height: 1; transition: background .2s, color .2s;
}
.mt-carousel-nav button:hover { background:var(--ink); color:var(--paper); }

/* rich text written in the admin editor (privacy policy, workshop pages) */
.prose { font-family: var(--font-body); font-size: 16px; line-height: 1.8; color:var(--text-2); }
.prose > * + * { margin-top: 1.1em; }
.prose h1, .prose h2, .prose h3, .prose h4, .prose h5, .prose h6 { font-family: var(--font-display); color:var(--ink); font-weight:600; letter-spacing:-0.006em; margin-top: 1.8em; }
.prose h1 { font-size: clamp(30px, 4vw, 44px); line-height: 1.12; }
.prose h2 { font-size: clamp(26px, 3vw, 34px); line-height: 1.18; }
.prose h3 { font-size: 24px; line-height: 1.25; }
.prose h4, .prose h5, .prose h6 { font-size: 19px; line-height: 1.35; }
.prose > :first-child { margin-top: 0; }
.prose a { display: inline; color:var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.prose ul, .prose ol { padding-left: 1.4em; }
.prose ul { list-style: disc; }
.prose ol { list-style: decimal; }
.prose li + li { margin-top: .4em; }
.prose strong, .prose b { color:var(--ink); font-weight: 700; }
.prose img, .prose video, .prose iframe { max-width: 100%; height: auto; }
.prose blockquote { border-left:3px solid var(--ink); padding: .2em 0 .2em 1.2em; font-style: italic; }

/* reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ── 9. Reveal on scroll (add class="reveal" to any block) ──────────────── */
.js .reveal { opacity: 0; transform: translate3d(0, 28px, 0); transition: opacity 1s cubic-bezier(.22,1,.36,1), transform 1.1s cubic-bezier(.22,1,.36,1); will-change: opacity, transform; }
.js .reveal.on { opacity: 1; transform: none; }
.hero-book-image { transition: transform .2s linear; will-change: transform; }

/* ── 10. Free resource popup (children / decision-making) ───────────────── */
.res-modal { display: none; position: fixed; inset: 0; z-index: 9999; background:rgba(0,0,0,.6); align-items: center; justify-content: center; }
.res-modal.open { display: flex; }
.res-box { background:var(--cream); padding: 40px; max-width: 400px; width: 90%; position: relative; color:var(--ink); }
.res-close { position: absolute; top: 12px; right: 16px; background:none; border:0; font-size: 20px; line-height: 1; color:var(--ink); }
.res-eyebrow { font-family: var(--font-display); font-size:var(--eyebrow-size); letter-spacing: .22em; text-transform: uppercase; margin-bottom: 16px; }
.res-title { font-family: var(--font-display); font-size:22px; font-weight:600; line-height:1.15; margin-bottom: 20px; }
.res-box input[type=email] { padding: .9rem 1rem; border:1px solid var(--ink); border-radius:0; font-size:15px; line-height: 22px; }
.res-box button[type=submit] { width: 100%; padding: .9rem; background:var(--ink); color:#fff; border:0; font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; }
.res-box .form-msg { font-size: .75rem; }

/* ── 11. One button style for the whole site (as on the e-book page) ───────
   Page stylesheets keep their colours; shape and type come from here. */
body :is(.hero-cta-btn, .who-btn, .founder-btn, .p-btn, .cm-cta, .cm-cta-w, .dm-cta, .dm-cta-k,
  .mt-inquire-btn, .yt-cta-btn, .yt-btn, .am-btn, .am-comm-btn, .next-cta, .cta-ghost, .btn-w,
  .btn-blk, .btn-out, .cf-submit, .enter-btn, .ws-invite-btn, .nf-links a) {
  font-family: var(--font-display); font-size: 15px; font-weight: 600; line-height: 22px;
  letter-spacing: 0; text-transform: none;
  border-radius: 999px; padding: 13px 28px;
  transition: background .25s, color .25s, border-color .25s, transform .25s, box-shadow .25s;
}
body :is(.hero-cta-btn, .who-btn, .founder-btn, .p-btn, .cm-cta, .cm-cta-w, .dm-cta, .dm-cta-k,
  .mt-inquire-btn, .yt-cta-btn, .am-btn, .am-comm-btn, .next-cta, .btn-w, .btn-blk, .btn-out, .cf-submit):hover {
  transform: translateY(-2px); box-shadow: 0 10px 24px rgba(28,26,24,.16);
}
/* small secondary buttons (profile links, "contact", "highlights") */
body :is(.btn-au, .con-btn, .p-btn) { font-size: 13px; padding: 9px 20px; border-radius: 999px; font-family: var(--font-display); font-weight: 600; letter-spacing: 0; text-transform: none; }
/* buttons glued to an email field keep their square edge, same type */
body :is(.gsb-btn, .nl-form button, .qp-form button, .ebook-form-btn, .res-box button[type=submit]) {
  font-family: var(--font-display); font-weight: 600; letter-spacing: .02em; text-transform: none; font-size: 14px;
}
input.is-err { border-color: #e05555 !important; }
input.is-err::placeholder { color: #e05555 !important; opacity: 1; }
