@font-face {
  font-family: "Escrow";
  src: url("/fonts/escrow-bold-cond.woff2") format("woff2"),
       url("/fonts/escrow-bold-cond.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

:root {
  --navy: #102544;
  --navy-deep: #09172c;
  --gold: #b89755;
  --gold-pale: #efe3c4;
  --paper: #f7f2e7;
  --white: #fffefa;
  --ink-soft: #536176;
  --line: #d9d1c0;
  --danger: #8b2f2f;
  --shadow: 0 24px 70px rgba(9, 23, 44, 0.13);
}

* { box-sizing: border-box; }
html { color-scheme: light; }
body {
  margin: 0;
  background:
    radial-gradient(circle at 15% 0%, rgba(184, 151, 85, 0.17), transparent 34rem),
    var(--paper);
  color: var(--navy);
  font: 17px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
button, input, textarea { font: inherit; }
a { color: var(--navy); }
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 1rem; top: 1rem; z-index: 10; background: white; padding: .7rem; }

.masthead {
  width: 100%;
  padding: 1.25rem max(1.5rem, calc((100vw - 1120px) / 2));
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr) 180px;
  align-items: center;
  gap: 1.5rem;
  color: #fbf8ef;
  background: var(--navy-deep);
  border-top: 4px double var(--gold);
  border-bottom: 4px double var(--gold);
  text-align: center;
}
.masthead-mark {
  display: block;
  width: 112px;
  height: 112px;
  border: 3px solid var(--gold);
  border-radius: 50%;
  object-fit: cover;
}
.masthead-nameplate { min-width: 0; }
.masthead-wordmark {
  margin: 0;
  color: #fbf8ef;
  font: 700 clamp(2rem, 4.7vw, 3.5rem)/1 "Escrow", Georgia, "Times New Roman", serif;
  letter-spacing: .05em;
  white-space: nowrap;
}
.masthead-reg {
  color: var(--gold);
  font-size: .32em;
  vertical-align: super;
  letter-spacing: 0;
}
.masthead-sub {
  margin: .55rem 0 0;
  color: #cfd6e4;
  font: 700 clamp(.78rem, 1.5vw, 1rem)/1.3 Georgia, "Times New Roman", serif;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.masthead-sub span:not(.masthead-dot) { white-space: nowrap; }
.masthead-dot { margin: 0 .45em; color: var(--gold); }
.masthead-credential {
  margin: .35rem 0 0;
  color: var(--gold);
  font-size: clamp(.68rem, 1.2vw, .82rem);
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.masthead-phone {
  margin: 0;
  color: #8fa0bd;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.masthead-phone a {
  display: block;
  margin-top: .25rem;
  color: #fbf8ef;
  font-size: .95rem;
  letter-spacing: .03em;
  text-decoration: none;
}

main { max-width: 980px; margin: 0 auto; padding: 5rem 1.5rem 3rem; }
.intro { max-width: 780px; margin-bottom: 2rem; }
.kicker { color: #785d29; font-weight: 800; }
h1, h2 {
  margin: 0 0 .8rem;
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1.04;
}
h1 { font-size: clamp(2.7rem, 8vw, 5.6rem); letter-spacing: -.045em; }
h2 { font-size: clamp(2rem, 5vw, 3.2rem); }
.intro > p:last-child { max-width: 720px; color: var(--ink-soft); font-size: 1.15rem; }

/* Video block had NO rules at all until 2026-08-10 — it was rendering at the
   source file's native 1920x1080, unconstrained, which is why it blew out to
   the right and ignored mobile entirely. Same width/centering convention as
   .intro and .chat-shell above: capped, margin:0 auto, block-level so nothing
   floats it off-center. */
.intro-video { max-width: 780px; margin: 0 auto 2rem; text-align: center; }
.video-hook { max-width: 720px; margin: 0 auto .9rem; color: var(--ink-soft); font-size: 1.1rem; }
.avatar-video {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  border-radius: 14px;
  box-shadow: var(--shadow);
  background: #000;
}
/* The one primary CTA on the page (Paul's spine, 2026-08-11): video ->
   book mention -> CONSULTATION. Deliberately not "free" — a named offer,
   not an invitation to "just a question". */
.consult-cta-row { margin: 1.1rem 0 0; }
.consult-cta {
  display: inline-block;
  background: var(--gold, #b89656);
  color: #1a1400;
  font-weight: 700;
  font-size: 1.08rem;
  padding: .85rem 1.9rem;
  border-radius: 999px;
  text-decoration: none;
  box-shadow: var(--shadow);
}
.consult-cta:hover, .consult-cta:focus-visible { transform: translateY(-2px); outline: none; }
.tbp-launch { color: var(--gold, #b89656); font-weight: 700; letter-spacing: .04em; margin: .4rem 0 0; }

/* The three front doors — the cross-property strip (Paul-approved 2026-08-11,
   from the digital-concept review). Left-to-right on desktop, stacked on
   mobile. Each property shows this strip with its own card marked. */
.doors { max-width: 900px; margin: 2.6rem auto 0; text-align: center; }
.doors-head { font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.5rem, 4vw, 2.1rem); letter-spacing: -.02em; margin: 0 0 1.2rem; }
.doors-row { display: flex; gap: 1rem; align-items: stretch; }
.door {
  flex: 1 1 0; min-width: 0; text-align: left; text-decoration: none; color: var(--navy, #102544);
  background: var(--white, #fffefa); border: 1px solid var(--line, #d9d1c0);
  border-top: 4px solid var(--gold, #b89755); border-radius: 12px; padding: 1.1rem 1.2rem;
  display: flex; flex-direction: column; gap: .3rem;
}
a.door:hover, a.door:focus-visible { border-color: var(--gold, #b89755); box-shadow: var(--shadow); outline: none; }
.door--here { background: var(--navy, #102544); color: var(--white, #fffefa); border-color: var(--navy, #102544); }
.door-name { font-family: Georgia, serif; font-weight: 700; font-size: 1.12rem; margin: 0; }
.door-domain { font-family: ui-monospace, Menlo, monospace; font-size: .78rem; color: var(--gold, #b89755); margin: 0; letter-spacing: .03em; }
.door-mission { font-size: .9rem; margin: .2rem 0 0; opacity: .85; }
.door-here-chip { margin: .55rem 0 0; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-pale, #efe3c4); border: 1px solid var(--gold, #b89755); border-radius: 999px; padding: .15rem .6rem; align-self: flex-start; }
@media (max-width: 720px) { .doors-row { flex-direction: column; } }

.chat-shell {
  width: 100%;
  max-width: 780px;
  min-width: 0;
  margin: 0 auto;
  overflow: hidden;
  background: var(--white);
  border: 1px solid var(--gold);
  border-radius: 18px;
  box-shadow: var(--shadow);
}
.chat-shell > * { min-width: 0; }
.concierge-head {
  display: flex;
  align-items: center;
  gap: .6rem;
  flex-wrap: wrap;
  padding: .72rem 1.1rem;
  color: #fbf8ef;
  background: var(--navy-deep);
}
.presence {
  width: 9px;
  height: 9px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #7bd88a;
  box-shadow: 0 0 0 4px rgba(123, 216, 138, .14);
}
.concierge-title {
  font: 700 1.02rem/1.25 Georgia, "Times New Roman", serif;
  letter-spacing: .06em;
}
.concierge-status {
  margin-left: auto;
  color: #b9d4a9;
  font-size: .74rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.chat-intro {
  max-width: 640px;
  margin: 1.3rem auto .55rem;
  padding: 0 1.1rem;
  text-align: center;
}
.chat-intro h2 {
  margin: 0;
  color: var(--navy);
  font-size: clamp(1.5rem, 4.5vw, 2.4rem);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.chat-intro p {
  margin: .55rem auto 0;
  color: var(--ink-soft);
  font-size: .94rem;
}
.chat-window {
  width: auto;
  min-width: 0;
  margin: 0 1.1rem 1.1rem;
  overflow: hidden;
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 12px 34px rgba(9, 23, 44, .09);
}
.chat-boundary-statement {
  max-width: 700px;
  margin: .15rem auto 1rem;
  padding: 0 1rem;
  color: var(--navy);
  font-size: 1rem;
  line-height: 1.55;
  text-align: center;
}
.transcript {
  min-height: 210px;
  max-height: 430px;
  overflow-y: auto;
  padding: 1.15rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.transcript[hidden] { display: none; }
.message {
  max-width: 82%;
  padding: .85rem 1rem;
  border-radius: 16px;
  text-align: left;
}
.message p { margin: 0; white-space: pre-wrap; text-align: left !important; }
.message.assistant { align-self: flex-start; background: #f0eadc; }
.message.user { align-self: flex-end; background: var(--navy); color: white; }
.message.error { background: #f8e4e2; color: var(--danger); }
.citation-followups {
  margin-top: .8rem;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}
.citation-followups-label {
  flex-basis: 100%;
  color: var(--ink-soft);
  font-size: .79rem;
  font-weight: 750;
}
.citation-followup {
  border: 1.5px solid var(--navy);
  border-radius: 999px;
  background: #fbf8ef;
  color: var(--navy);
  padding: .42rem .72rem;
  font-size: .78rem;
  font-weight: 650;
  line-height: 1.25;
  text-align: left;
  cursor: pointer;
}
.citation-followup:hover,
.citation-followup:focus-visible {
  border-color: var(--gold);
  background: var(--navy);
  color: white;
}
.citation-followup[disabled] { opacity: .55; cursor: wait; }

.suggestions {
  padding: .35rem 1.1rem 1rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .6rem;
  overflow: visible;
}
.suggestions button {
  flex: 0 1 auto;
  border: 1.5px solid var(--navy);
  border-radius: 999px;
  background: #fbf8ef;
  color: var(--navy);
  padding: .48rem .92rem;
  font-size: .84rem;
  font-weight: 650;
  cursor: pointer;
}
.suggestions button:hover,
.suggestions button:focus-visible {
  border-color: var(--gold);
  background: var(--navy);
  color: white;
}

.chat-form { border-top: 1px solid var(--line); padding: 1rem 1.15rem 1.1rem; }
.chat-form > label, .lead-form > label:not(.consent), .two-up label {
  display: block;
  margin-bottom: .4rem;
  font-weight: 750;
}
.composer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .65rem;
  align-items: end;
}
.composer > * { min-width: 0; }
textarea, input {
  width: 100%;
  border: 1px solid #b9b2a4;
  border-radius: 11px;
  background: white;
  padding: .78rem .85rem;
  color: var(--navy);
}
textarea:focus, input:focus { outline: 3px solid var(--gold-pale); border-color: var(--gold); }
button[type="submit"] {
  border: 0;
  border-radius: 11px;
  background: var(--navy);
  color: white;
  padding: .8rem 1.2rem;
  font-weight: 800;
  cursor: pointer;
}
button[disabled] { opacity: .62; cursor: wait; }
.privacy-note { margin: .6rem 0 0; color: var(--ink-soft); font-size: .82rem; }

.human-path {
  margin: 4rem 0 2rem;
  padding: 2.2rem;
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 3rem;
  background: var(--navy-deep);
  color: white;
  border-radius: 26px;
}
.human-path a { color: #f4d58d; }
.direct { display: flex; flex-wrap: wrap; gap: .55rem; font-weight: 800; }
.lead-form { display: grid; gap: .8rem; }
.two-up { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.consent { display: flex; gap: .65rem; font-size: .88rem; }
.consent input { width: 20px; height: 20px; flex: 0 0 auto; }
.lead-form button[type="submit"] { background: var(--gold); color: var(--navy-deep); }
.lead-result { min-height: 1.5rem; font-weight: 700; }
.receipt {
  padding: .8rem;
  background: rgba(255, 255, 255, .1);
  border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 10px;
}

.facts { display: grid; gap: .7rem; }
details { background: rgba(255, 254, 250, .72); border: 1px solid var(--line); border-radius: 12px; padding: 1rem 1.15rem; }
summary { cursor: pointer; font-weight: 800; }
details p { color: var(--ink-soft); }
footer { padding: 2rem 1.5rem 3rem; text-align: center; color: var(--ink-soft); font-size: .86rem; }

@media (max-width: 720px) {
  .masthead {
    grid-template-columns: 72px minmax(0, 1fr);
    gap: .85rem;
    padding: .9rem 1rem .8rem;
    text-align: left;
  }
  .masthead-mark { width: 72px; height: 72px; border-width: 2px; }
  .masthead-wordmark {
    font-size: clamp(1.05rem, 5.2vw, 1.35rem);
    letter-spacing: .025em;
  }
  .masthead-sub { font-size: .59rem; letter-spacing: .04em; }
  .masthead-sub span:not(.masthead-dot) { display: block; white-space: normal; }
  .masthead-dot { display: none; }
  .masthead-credential { font-size: .56rem; letter-spacing: .055em; }
  .masthead-phone {
    grid-column: 1 / -1;
    text-align: center;
  }
  .masthead-phone a { display: inline; margin-left: .35rem; }
  main { padding-top: 3rem; }
  .concierge-status { display: none; }
  .concierge-title { font-size: .92rem; }
  .chat-intro { margin-top: 1.05rem; padding-left: .85rem; padding-right: .85rem; }
  .suggestions { padding-left: .75rem; padding-right: .75rem; gap: .45rem; }
  .suggestions button { padding: .42rem .72rem; font-size: .78rem; }
  .chat-window { margin-left: .75rem; margin-right: .75rem; margin-bottom: .75rem; }
  .transcript, .chat-form { padding-left: .75rem; padding-right: .75rem; }
  .message { max-width: 94%; }
  .human-path { grid-template-columns: 1fr; gap: 1.5rem; padding: 1.35rem; }
  .two-up, .composer { grid-template-columns: 1fr; }
}

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

/* 2026-08-04 book-first ladder additions */
.book-line { font-size: .95rem; opacity: .92; margin-top: .6rem; }
.book-line a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
footer nav[aria-label="The ladder"] { margin: .5rem 0; font-size: .9rem; }
footer nav[aria-label="The ladder"] a { color: inherit; }

/* 2026-08-04 chat book CTA */
.chat-cta { margin-top: .7rem; padding: .65rem .8rem; border-left: 3px solid #8e6f30; background: rgba(142,111,48,.07); border-radius: 4px; }
.chat-cta-text { margin: 0 0 .4rem; font-size: .9rem; }
.chat-cta-link { display: inline-block; margin-right: 1rem; font-size: .9rem; font-weight: bold; color: inherit; text-decoration: underline; text-underline-offset: 2px; }

/* Book promo — homepage (chat shell) and index. */
.ttc-book-promo{margin:2.6rem auto 0;padding:2rem 1.2rem;background:#0c1c33;border-radius:6px;max-width:900px}
      .ttc-book-promo a{display:flex;gap:1.7rem;align-items:center;justify-content:center;
        flex-wrap:wrap;text-decoration:none;color:#e6ebf5}
      .ttc-book-promo img{width:196px;height:auto;display:block;border-radius:2px;
        box-shadow:0 18px 40px rgba(0,0,0,.45)}
      .ttc-book-promo>a>div{flex:1 1 330px;min-width:270px}
      .tbp-eyebrow{margin:0 0 .3rem;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;opacity:.72}
      .tbp-title{margin:0 0 .55rem;font-size:1.3rem;line-height:1.25;font-weight:700}
      .tbp-sub{margin:0 0 .8rem;font-size:.96rem;line-height:1.55;opacity:.88}
      .tbp-cta{margin:0;font-weight:700}
      .ttc-book-promo a:hover img{opacity:.94}
      @media(max-width:640px){.ttc-book-promo img{width:150px;margin:0 auto}}

/* 2026-08-23 — Consultation | Click Here. The one green button on the site:
   nothing else uses green, so it reads as THE action everywhere it appears. */
.consult-cta-row { text-align:center; margin:1.4rem 0 .4rem; }
.consult-cta {
  display:inline-block; padding:.95rem 2.2rem; margin:0 auto;
  background:#1F8A4C; color:#fff !important; text-decoration:none;
  font-weight:700; font-size:1.08rem; letter-spacing:.02em;
  border:none; border-radius:6px; cursor:pointer;
  box-shadow:0 6px 18px rgba(31,138,76,.38), inset 0 1px 0 rgba(255,255,255,.18);
  transition:background .15s ease, transform .12s ease, box-shadow .15s ease;
}
.consult-cta:hover { background:#187043; transform:translateY(-1px);
  box-shadow:0 9px 22px rgba(31,138,76,.46), inset 0 1px 0 rgba(255,255,255,.18); }
.consult-cta:active { transform:translateY(0); }
.consult-cta:focus-visible { outline:3px solid #C4A35A; outline-offset:2px; }
