/* Run the Room — canonical brand guide build
   Palette: Midnight Navy #0D1B2A · Clean White #FFFFFF · Electric Teal #00A6A6 · Goldenrod #FFC857
   Type: Montserrat (display/section) · Inter (body) · Merriweather Italic (pull quotes only)
   Rules honored: off-white/white only (no dark mode); no cards/shadows/rounded boxes;
   single accent rules not boxed sections; teal = structural marker only;
   goldenrod = earned moments only; soft text = navy 60%; dividers = navy 15%. */

:root {
  --navy: #0D1B2A;
  --navy-60: rgba(13, 27, 42, 0.60);
  --navy-15: rgba(13, 27, 42, 0.15);
  --navy-08: rgba(13, 27, 42, 0.06);
  --white: #FFFFFF;
  --offwhite: #FBFAF7;
  --teal: #00A6A6;
  --gold: #FFC857;
  --maxw: 74rem;
  --readw: 46rem;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

html { font-size: 17px; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  font-family: 'Inter', system-ui, sans-serif;
  color: var(--navy);
  background: var(--white);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

.wrap { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 2rem; }

h1, h2, h3, h4 { font-family: 'Montserrat', sans-serif; font-weight: 900; line-height: 1.08; letter-spacing: -0.01em; }

a { color: inherit; text-decoration: none; }

em { font-family: 'Merriweather', Georgia, serif; font-style: italic; font-weight: 400; }

/* --- NAV --- */
nav {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,0.92);
  backdrop-filter: saturate(140%) blur(8px);
  border-bottom: 1px solid var(--navy-15);
}
.nav-inner { display: flex; align-items: center; justify-content: space-between; height: 4.25rem; }
.mark {
  font-family: 'Montserrat', sans-serif; font-weight: 700;
  font-size: 0.95rem; letter-spacing: 0.14em; text-transform: uppercase;
}
.mark .slash { color: var(--teal); }
.nav-links { display: flex; align-items: center; gap: 2rem; }
.nav-links a { font-size: 0.9rem; color: var(--navy-60); transition: color .2s; }
.nav-links a:hover { color: var(--navy); }
.nav-cta {
  color: var(--navy) !important; font-weight: 600;
  border-bottom: 2px solid var(--gold); padding-bottom: 2px;
}
.nav-toggle, .nav-burger { display: none; }

/* --- HERO --- */
.hero { padding: 6.5rem 0 4.5rem; }
.eyebrow, .kicker {
  font-family: 'Montserrat', sans-serif; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.22em;
  font-size: 0.72rem; color: var(--teal); margin-bottom: 1.4rem;
}
.hero h1 { font-size: clamp(2.6rem, 6.2vw, 5rem); margin-bottom: 1.8rem; }
.hero h1 em { color: var(--navy); }
.lede {
  font-size: clamp(1.15rem, 2vw, 1.5rem); font-weight: 500;
  max-width: var(--readw); margin-bottom: 1.1rem;
}
.sub { font-size: 1.08rem; color: var(--navy-60); max-width: var(--readw); }
.hero-ctas { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2.6rem; }

/* --- BUTTONS --- */
.btn {
  display: inline-block; font-family: 'Montserrat', sans-serif; font-weight: 700;
  font-size: 0.92rem; letter-spacing: 0.01em; padding: 0.85rem 1.6rem;
  transition: transform .12s ease, background .2s, color .2s;
}
.btn:hover { transform: translateY(-1px); }
.btn-gold { background: var(--gold); color: var(--navy); }
.btn-gold:hover { background: #ffd777; }
.btn-navy { background: var(--navy); color: var(--white); }
.btn-navy:hover { background: #16324b; }
.btn-ghost { background: transparent; color: var(--navy); box-shadow: inset 0 0 0 1.5px var(--navy-15); }
.btn-ghost:hover { box-shadow: inset 0 0 0 1.5px var(--navy); }

/* --- PROOF STRIP --- */
.creds { padding: 3rem 0 3.5rem; border-top: 1px solid var(--navy-15); border-bottom: 1px solid var(--navy-15); background: var(--offwhite); }
.creds-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; }
.cred .num { font-family: 'Montserrat', sans-serif; font-weight: 900; font-size: 1.9rem; margin-bottom: 0.4rem; }
.cred .desc { font-size: 0.98rem; color: var(--navy-60); }
.press { margin-top: 2.4rem; font-size: 0.82rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--navy-60); }
.press span { color: var(--navy); font-weight: 600; }

/* --- SECTION SHARED --- */
section { padding: 5.5rem 0; }
.frame h2, .advisory h2, .proof h2, .newsletter h2, .manifesto h2, .intake h2, .voices h2 { font-size: clamp(1.9rem, 3.6vw, 3rem); max-width: 20ch; margin-bottom: 1.2rem; }
.section-lede { font-size: 1.12rem; color: var(--navy-60); max-width: var(--readw); }

/* --- THE FRAME --- */
.levels { margin-top: 3.2rem; display: grid; gap: 0; }
.level { padding: 2.2rem 0; border-top: 1px solid var(--navy-15); display: grid; grid-template-columns: 4.5rem 1fr; gap: 1.5rem; align-items: start; }
.level:last-child { border-bottom: 1px solid var(--navy-15); }
.lnum { grid-column: 1; grid-row: 1; font-family: 'Montserrat', sans-serif; font-weight: 900; font-size: 1.6rem; color: var(--teal); }
.level h3 { grid-column: 2; font-size: 1.45rem; margin-bottom: 0.5rem; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.7rem; }
.tier { font-family: 'Inter', sans-serif; font-weight: 500; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.16em; color: var(--navy-60); }
.level p { grid-column: 2; font-size: 1.1rem; max-width: 44ch; }
.level p + p { margin-top: 0.6rem; }
.level p.level-lead { font-weight: 700; color: var(--navy); font-size: 1.2rem; }
.level p.level-soft { color: var(--navy-60); }

/* --- ADVISORY --- */
.advisory { background: var(--offwhite); border-top: 1px solid var(--navy-15); }
.offer { padding: 2.4rem 0; border-top: 1px solid var(--navy-15); max-width: var(--readw); }
.offer:first-of-type { margin-top: 2.8rem; }
.offer-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.6rem; margin-bottom: 0.9rem; }
.offer-head h3 { font-size: 1.55rem; }
.offer-meta { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--navy-60); }
.offer-meta strong { color: var(--navy); }
.offer-anchor { font-family: 'Merriweather', Georgia, serif; font-style: italic; font-size: 1.12rem; color: var(--navy); margin-bottom: 0.9rem; padding-left: 1rem; border-left: 2px solid var(--gold); }
.offer p:last-child { color: var(--navy-60); }
.offer-cta { margin-top: 3rem; padding-top: 2.4rem; border-top: 1px solid var(--navy-15); }
.offer-note { margin-top: 1rem; font-size: 0.98rem; color: var(--navy-60); max-width: 48ch; }
.offer p { color: var(--navy-60); }
.offer p + p { margin-top: 0.8rem; }
.offer p.offer-level { font-family: 'Montserrat', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.72rem; color: var(--teal); margin-bottom: 0.6rem; }
.offer h3 { font-size: 1.55rem; margin-bottom: 0.8rem; }
.offer p.offer-lead { color: var(--navy); font-weight: 700; font-size: 1.15rem; padding-left: 1rem; border-left: 2px solid var(--gold); }
.offer p.offer-take { color: var(--navy); font-weight: 700; }

/* --- PROOF CASE --- */
.drive { margin: 3rem 0 2.4rem; max-width: var(--readw); }
.drive-row { display: grid; grid-template-columns: 3.4rem 1fr; gap: 1.4rem; padding: 1.4rem 0; border-top: 1px solid var(--navy-15); align-items: start; }
.drive-row:last-child { border-bottom: 1px solid var(--navy-15); }
.dletter { font-family: 'Montserrat', sans-serif; font-weight: 900; font-size: 1.9rem; color: var(--teal); line-height: 1; }
.drive-row h4 { font-size: 1.12rem; margin-bottom: 0.3rem; }
.drive-row p { font-size: 1.02rem; color: var(--navy-60); }
.proof-close { font-family: 'Merriweather', Georgia, serif; font-style: italic; font-size: 1.25rem; max-width: 40ch; }
.proof p { font-size: 1.12rem; color: var(--navy-60); max-width: var(--readw); margin-bottom: 1.1rem; }
.proof p strong { color: var(--navy); }
.proof p.proof-emph { color: var(--navy); font-weight: 700; font-size: 1.2rem; margin-top: 0.4rem; margin-bottom: 0; }

/* --- VOICES / TESTIMONIALS --- */
.voices { background: var(--offwhite); border-top: 1px solid var(--navy-15); }
.voices-grid { margin-top: 3rem; display: grid; grid-template-columns: 1fr 1fr; gap: 2.6rem 3.5rem; }
.voice { border-top: 1px solid var(--navy-15); padding-top: 1.5rem; }
.voice blockquote { font-family: 'Merriweather', Georgia, serif; font-style: italic; font-size: 1.22rem; line-height: 1.5; color: var(--navy); }
.voice figcaption { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 0.76rem; letter-spacing: 0.13em; text-transform: uppercase; color: var(--navy-60); margin-top: 1.1rem; }

/* --- ABOUT --- */
.about-grid { display: grid; grid-template-columns: 20rem 1fr; gap: 3.5rem; align-items: start; }
.about-photo img { width: 100%; height: auto; display: block; filter: grayscale(100%); }
.about h2 { font-size: clamp(1.9rem, 3.4vw, 2.7rem); margin-bottom: 1.2rem; }
.about p { font-size: 1.1rem; margin-bottom: 1rem; max-width: 52ch; }
.about p:not(.about-sig):nth-of-type(n+2) { color: var(--navy-60); }
.about-sig { font-family: 'Merriweather', Georgia, serif; font-style: italic; color: var(--navy) !important; }

/* --- FAQ --- */
.faq-list { margin-top: 3rem; max-width: var(--readw); }
.faq details { border-top: 1px solid var(--navy-15); padding: 1.4rem 0; }
.faq details:last-child { border-bottom: 1px solid var(--navy-15); }
.faq summary {
  font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 1.12rem;
  cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; align-items: baseline;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; color: var(--teal); font-weight: 700; font-size: 1.4rem; line-height: 1; }
.faq details[open] summary::after { content: '–'; }
.faq details p { margin-top: 0.9rem; color: var(--navy-60); font-size: 1.05rem; max-width: 60ch; }
.faq details p strong { color: var(--navy); }

/* --- WRITING --- */
.writing { background: var(--offwhite); border-top: 1px solid var(--navy-15); }
.writing-list { margin-top: 3rem; max-width: var(--readw); }
.wpost { display: grid; gap: 0.35rem; padding: 1.5rem 0; border-top: 1px solid var(--navy-15); }
.wpost:last-of-type { border-bottom: 1px solid var(--navy-15); }
.wlevel { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--teal); }
.wtitle { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 1.22rem; color: var(--navy); }
.wpost:hover .wtitle { text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 4px; }
.wline { font-size: 1.02rem; color: var(--navy-60); max-width: 60ch; }
.writing-cta { margin-top: 1.9rem; }
.link-arrow { font-family: 'Montserrat', sans-serif; font-weight: 700; color: var(--navy); border-bottom: 2px solid var(--gold); padding-bottom: 2px; }
.link-arrow:hover { border-bottom-color: var(--navy); }

/* --- NEWSLETTER --- */
.newsletter { background: var(--navy); color: var(--white); text-align: center; }
.newsletter .kicker { color: var(--gold); }
.newsletter h2 { color: var(--white); margin-left: auto; margin-right: auto; }
.newsletter .section-lede { color: rgba(255,255,255,0.72); margin: 0 auto; }
.sub-form { display: flex; flex-wrap: wrap; gap: 0.7rem; justify-content: center; max-width: 32rem; margin: 2.4rem auto 0; }
.sub-form input {
  flex: 1 1 16rem; font-family: 'Inter', sans-serif; font-size: 1rem;
  padding: 0.85rem 1rem; border: 1px solid rgba(255,255,255,0.25);
  background: rgba(255,255,255,0.06); color: var(--white);
}
.sub-form input::placeholder { color: rgba(255,255,255,0.5); }
.sub-note { margin-top: 1rem; font-size: 0.85rem; color: rgba(255,255,255,0.5); }
.newsletter-cta { margin-top: 2.2rem; }

/* --- BRIEFING PAGE --- */
.briefing-hero { padding: 5rem 0 2.5rem; }
.briefing-hero h1 { font-size: clamp(2.3rem, 5vw, 3.8rem); margin-bottom: 1.5rem; }
.briefing-issues { padding-top: 1rem; }
.issue { max-width: var(--readw); padding: 3rem 0; border-top: 1px solid var(--navy-15); }
.issue:first-of-type { border-top: none; padding-top: 0.5rem; }
.issue h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); margin-bottom: 0.7rem; }
.issue p { color: var(--navy-60); margin-bottom: 1rem; font-size: 1.08rem; }
.issue p.issue-tag { font-family: 'Montserrat', sans-serif; font-weight: 700; text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.72rem; color: var(--teal); margin-bottom: 0.8rem; }
.issue p.issue-dek { color: var(--navy); font-weight: 700; margin-bottom: 1rem; }
.issue p.issue-try { color: var(--navy); }
.issue p.issue-leaf { color: var(--navy); font-family: 'Merriweather', Georgia, serif; font-style: italic; font-size: 1.15rem; }
.issue-cta { margin-top: 1.6rem; }
.issue ol, .issue ul { margin: 0 0 1rem 1.3rem; }
.issue li { color: var(--navy-60); margin-bottom: 0.4rem; font-size: 1.08rem; }

/* --- INTAKE + TALLY --- */
.intake { background: var(--offwhite); border-top: 1px solid var(--navy-15); }
.tally-embed { max-width: var(--readw); margin: 2.2rem 0 0; }

/* --- SIGNUP MODAL (pure-CSS :target) --- */
.modal { position: fixed; inset: 0; z-index: 100; display: none; }
.modal:target, .modal.is-open { display: flex; align-items: center; justify-content: center; padding: 1.5rem; }
.modal-overlay { position: absolute; inset: 0; background: rgba(13, 27, 42, 0.6); }
.modal-box { position: relative; z-index: 1; background: var(--white); width: 100%; max-width: 30rem; padding: 2.6rem 2.2rem 2.2rem; border-top: 3px solid var(--gold); }
.modal-close { position: absolute; top: 0.7rem; right: 1.1rem; font-size: 1.7rem; line-height: 1; color: var(--navy-60); }
.modal-close:hover { color: var(--navy); }
.modal-title { font-size: 1.7rem; margin-bottom: 0.5rem; }
.modal-sub { color: var(--navy-60); margin-bottom: 1.4rem; }
.modal-note { margin-top: 0.9rem; font-size: 0.85rem; color: var(--navy-60); }
.sub-form-light input { flex: 1 1 14rem; font-family: 'Inter', sans-serif; font-size: 1rem; padding: 0.85rem 1rem; border: 1px solid var(--navy-15); background: var(--white); color: var(--navy); }
.sub-form-light input::placeholder { color: var(--navy-60); }

/* --- FOOTER --- */
footer { padding: 3rem 0; border-top: 1px solid var(--navy-15); }
.footer-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 1.4rem; justify-content: space-between; }
.footer-links { display: flex; gap: 1.6rem; }
.footer-links a { font-size: 0.9rem; color: var(--navy-60); }
.footer-links a:hover { color: var(--navy); }
.footer-tag { width: 100%; font-size: 0.85rem; color: var(--navy-60); border-top: 1px solid var(--navy-15); padding-top: 1.4rem; }

/* --- RESPONSIVE --- */
@media (max-width: 820px) {
  .nav-burger { display: block; cursor: pointer; font-size: 1.6rem; line-height: 1; }
  .nav-links {
    position: absolute; top: 4.25rem; left: 0; right: 0;
    flex-direction: column; align-items: flex-start; gap: 0;
    background: var(--white); border-bottom: 1px solid var(--navy-15);
    max-height: 0; overflow: hidden; transition: max-height .25s ease;
  }
  .nav-links a { width: 100%; padding: 0.9rem 2rem; border-top: 1px solid var(--navy-08); }
  .nav-toggle:checked ~ .nav-links { max-height: 24rem; }
  .creds-grid { grid-template-columns: 1fr; gap: 1.8rem; }
  .voices-grid { grid-template-columns: 1fr; }
  .about-grid { grid-template-columns: 1fr; gap: 2rem; }
  .about-photo { max-width: 16rem; }
}
