/* ScanToScope · founding block, shared by both site versions.
   Edit shared/founding.css, then run shared/sync.py. Uses the brand palette:
   Walnut and Cedar grounds, Plaster paper, Laser Red for action only. */

.fd, .fd-foot, .fd-float, .fd-tourbar {
  --fd-walnut: #14100D;
  --fd-cedar: #2E2119;
  --fd-paper: #F1E9DE;
  --fd-paper-2: #E8DDCE;
  --fd-ink: #1D1712;
  --fd-soft: #62554A;
  --fd-rule: #D3C5B3;
  --fd-light: #FFF3DC;
  --fd-cream: #F4EDE3;
  --fd-cream-soft: #B3A698;
  --fd-laser: #FF4B2B;
  --fd-laser-hi: #FF6344;
  --fd-gut: clamp(1rem, 4.4vw, 4rem);
  --fd-display: "Bricolage Grotesque", "Instrument Sans", system-ui, sans-serif;
  --fd-text: "Instrument Sans", system-ui, sans-serif;
}
.fd { position: relative; font-family: var(--fd-text); }
.fd *, .fd-foot * { box-sizing: border-box; }
.fd__wrap { max-width: 1240px; margin: 0 auto; padding: clamp(4.5rem, 10vw, 8.5rem) var(--fd-gut); }
.fd-vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; padding: 0; margin: 0; }

.fd-eyebrow { margin: 0 0 1rem; font-size: 13px; font-weight: 650; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fd-cream-soft); }   /* red is for actions and the scan line only */
.fd--apply .fd-eyebrow, .fd--faq .fd-eyebrow { color: var(--fd-soft); }   /* 6:1 on cream */
.fd-h { margin: 0; font-family: var(--fd-display); font-weight: 800; font-size: clamp(2.3rem, 1.2rem + 4vw, 4.6rem); line-height: 0.96; letter-spacing: -0.04em; text-wrap: balance; }
.fd-h--sm { font-size: clamp(2rem, 1.2rem + 2.8vw, 3.4rem); }
.fd-lede { margin: 1.2rem 0 0; font-size: clamp(1.05rem, 0.98rem + 0.35vw, 1.3rem); line-height: 1.5; max-width: 36ch; text-wrap: pretty; }
.fd-fine { margin: 0.8rem 0 0; font-size: 13.5px; line-height: 1.5; opacity: 0.78; }

/* ------------------------------------------------------------- buttons -- */
.fd-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5em;
  min-height: 52px; padding: 0 1.5rem; border: 0; border-radius: 999px;
  background: var(--fd-laser); color: var(--fd-walnut);
  font: 650 16px/1 var(--fd-text); text-decoration: none; cursor: pointer;
  box-shadow: 0 1px 0 hsl(12 100% 76% / 0.6) inset, 0 8px 18px -8px hsl(10 90% 30% / 0.55);
  transition: background 0.15s, transform 0.1s;
}
@media (hover: hover) and (pointer: fine) { .fd-btn:hover { background: var(--fd-laser-hi); } }
.fd-btn:active { transform: translateY(1px) scale(0.985); }
.fd-btn:focus-visible, .fd-link:focus-visible, .fd-textlink:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.fd-btn[disabled] { opacity: 0.6; cursor: progress; }
.fd-btn--full { width: 100%; }
.fd-btn--sm { min-height: 44px; padding: 0 1.1rem; font-size: 15px; }
.fd-btn--ghost { background: transparent; color: inherit; box-shadow: inset 0 0 0 1.5px currentColor; }
@media (hover: hover) and (pointer: fine) { .fd-btn--ghost:hover { background: hsl(38 100% 92% / 0.08); } }
.fd-link { min-height: 44px; padding: 0 0.4rem; border: 0; background: none; color: inherit; font: 600 15px var(--fd-text); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.fd-textlink { display: inline-block; margin-top: 1.2rem; font-weight: 650; color: inherit; text-decoration: underline; text-decoration-color: var(--fd-laser); text-decoration-thickness: 2px; text-underline-offset: 5px; }

/* ------------------------------------------------------------- the offer -- */
.fd--apply { background: var(--fd-paper); color: var(--fd-ink); }
.fd-apply { display: grid; gap: clamp(2.5rem, 5vw, 5rem); align-items: start; }
@media (min-width: 960px) { .fd-apply { grid-template-columns: 1.05fr 0.95fr; } }
.fd-perks { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; gap: 0.95rem; max-width: 40rem; }
.fd-perks li { position: relative; padding-left: 2rem; font-size: 16.5px; line-height: 1.5; color: #3A2F27; }
.fd-perks li::before {
  content: ""; position: absolute; left: 0; top: 0.28em; width: 1.15rem; height: 1.15rem; border-radius: 50%;
  background: var(--fd-laser) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%2314100D' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat;
}
.fd-perks b { color: var(--fd-ink); }
.fd-req { margin: 1.4rem 0 0; font-size: 14px; color: var(--fd-soft); max-width: 46ch; }

.fd-founder { display: grid; grid-template-columns: 1fr; gap: 1.1rem; align-items: start; margin: 2.4rem 0 0; padding: 1.4rem 0 0; border-top: 1px solid var(--fd-rule); max-width: 40rem; }
.fd-founder__photo { width: 76px; height: 76px; border-radius: 50%; overflow: hidden; display: grid; place-items: center; background: var(--fd-cedar); color: var(--fd-light); font: 800 30px var(--fd-display); }
.fd-founder__photo img { width: 100%; height: 100%; object-fit: cover; }
.fd-founder blockquote { margin: 0; font-size: 16px; line-height: 1.55; color: #3A2F27; text-wrap: pretty; }
.fd-founder figcaption { margin-top: 0.6rem; font-size: 14px; color: var(--fd-soft); }
.fd-founder figcaption b { color: var(--fd-ink); }

/* the form card */
.fd-card {
  position: relative; background: #FFFBF5; border-radius: 22px; padding: clamp(1.25rem, 3vw, 2.2rem);
  box-shadow: 0 1px 0 #fff inset, 0 0 0 1px hsl(30 25% 70% / 0.45), 0 30px 60px -30px hsl(22 40% 12% / 0.35);
  scroll-margin-top: 80px;
}
.fd-apply__side { min-width: 0; align-self: stretch; }   /* the sticky card travels inside this column only */
@media (min-width: 960px) { .fd-card { position: sticky; top: 88px; } }
@media (min-width: 960px) { .fd-card.fd-card--free { position: relative; top: auto; } }
.fd-form__title { margin: 0; font: 750 1.25rem var(--fd-display); letter-spacing: -0.02em; }
.fd-step { border: 0; margin: 0; padding: 0; min-width: 0; }
.fd-step[hidden] { display: none; }
.fd-field { margin-bottom: 0.9rem; }
.fd-field label { display: block; margin-bottom: 0.35rem; font-size: 14px; font-weight: 650; }
.fd-field input {
  width: 100%; min-height: 52px; padding: 0 1rem; border-radius: 12px;
  border: 1.5px solid var(--fd-rule); background: #fff; color: var(--fd-ink);
  font: 400 16px var(--fd-text);
}
.fd-field input::placeholder { color: #9A8C7E; }
.fd-field input:focus { outline: none; border-color: var(--fd-ink); box-shadow: 0 0 0 3px hsl(10 100% 58% / 0.25); }
.fd-field input[aria-invalid="true"] { border-color: #C2361C; }
.fd-err { margin: 0 0 0.8rem; min-height: 0; font-size: 14px; color: #B42F17; font-weight: 600; }
.fd-err:empty { margin: 0; }
.fd-q { margin-bottom: 1.3rem; }
.fd-q__t { margin: 0 0 0.6rem; font-size: 15px; font-weight: 650; }
.fd-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.fd-chips label { position: relative; }
.fd-chips input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.fd-chips span {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 1rem; border-radius: 999px;
  border: 1.5px solid var(--fd-rule); background: #fff; font-size: 15px; font-weight: 550; cursor: pointer;
  transition: background 0.12s, border-color 0.12s, color 0.12s;
}
@media (hover: hover) and (pointer: fine) { .fd-chips label:hover span { border-color: var(--fd-ink); } }
.fd-chips input:checked + span { background: var(--fd-walnut); border-color: var(--fd-walnut); color: var(--fd-light); }
.fd-chips input:focus-visible + span { outline: 2px solid var(--fd-laser); outline-offset: 2px; }
.fd-actions { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 0.4rem; }
.fd-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* thank-you */
.fd-thanks:focus { outline: none; }
.fd-thanks__h { margin: 0; font: 800 clamp(1.6rem, 1.2rem + 1.4vw, 2.2rem)/1.05 var(--fd-display); letter-spacing: -0.03em; text-wrap: balance; }
.fd-next { margin: 1.4rem 0 0; padding: 0 0 0 1.2rem; display: grid; gap: 1rem; font-size: 15.5px; line-height: 1.5; color: #3A2F27; }
.fd-next b { color: var(--fd-ink); }
.fd-next .fd-btn { margin-top: 0.7rem; }
.fd-next .fd-btn[hidden] { display: none; }
.fd-next__alt { display: block; margin-top: 0.3rem; color: var(--fd-soft); }
.fd-ref { margin-top: 1.6rem; padding: 1.2rem; border-radius: 16px; background: var(--fd-paper); }
.fd-ref__h { margin: 0; font: 750 1.1rem var(--fd-display); }
.fd-ref__p { margin: 0.4rem 0 0.9rem; font-size: 14.5px; line-height: 1.5; color: #3A2F27; }
.fd-ref__row { display: flex; gap: 8px; }
.fd-ref__row input { flex: 1; min-width: 0; min-height: 44px; padding: 0 0.8rem; border-radius: 10px; border: 1.5px solid var(--fd-rule); background: #fff; font: 14px var(--fd-text); color: var(--fd-ink); }
.fd-ref__share { display: flex; flex-wrap: wrap; gap: 0.4rem 1.2rem; margin-top: 0.8rem; }
.fd-ref__share a, .fd-ref__share button { display: inline-flex; align-items: center; min-height: 40px; padding: 0; border: 0; background: none; color: var(--fd-ink); font: 650 14.5px var(--fd-text); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.fd-ref__share [hidden] { display: none; }
.fd-preview { margin-top: 1.2rem; padding: 0.6rem 0.8rem; border-radius: 10px; background: #FBE6C2; color: #5A3A0A; opacity: 1; }

/* -------------------------------------------------- drive-time calculator -- */
.fd--drive { background: var(--fd-walnut); color: var(--fd-cream); }
.fd-drive { display: grid; gap: clamp(2.5rem, 5vw, 5rem); align-items: center; }
@media (min-width: 960px) { .fd-drive { grid-template-columns: 1fr 1fr; } }
.fd--drive .fd-lede { color: var(--fd-cream-soft); }
.fd-range { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 0.3rem 1rem; margin-top: 1.8rem; max-width: 30rem; }
.fd-range label { font-size: 15px; font-weight: 600; }
.fd-range output { font: 800 1.5rem var(--fd-display); font-variant-numeric: tabular-nums; color: var(--fd-light); }
.fd-range input {
  grid-column: 1 / -1; width: 100%; height: 44px; margin: 0; background: none; cursor: pointer;
  -webkit-appearance: none; appearance: none;
  --fill: 20%;
}
.fd-range input::-webkit-slider-runnable-track { height: 6px; border-radius: 6px; background: linear-gradient(90deg, var(--fd-laser) var(--fill), hsl(30 20% 30%) var(--fill)); }
.fd-range input::-moz-range-track { height: 6px; border-radius: 6px; background: hsl(30 20% 30%); }
.fd-range input::-moz-range-progress { height: 6px; border-radius: 6px; background: var(--fd-laser); }
.fd-range input::-webkit-slider-thumb { -webkit-appearance: none; width: 26px; height: 26px; margin-top: -10px; border-radius: 50%; background: var(--fd-light); border: 0; box-shadow: 0 2px 8px hsl(0 0% 0% / 0.5); }
.fd-range input::-moz-range-thumb { width: 26px; height: 26px; border-radius: 50%; background: var(--fd-light); border: 0; box-shadow: 0 2px 8px hsl(0 0% 0% / 0.5); }
.fd-range input:focus-visible { outline: 2px solid var(--fd-light); outline-offset: 2px; border-radius: 6px; }

.fd-drive__acts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 1.3rem; }
.fd--drive .fd-fine { color: var(--fd-cream-soft); opacity: 1; }
.fd--drive .fd-fine:empty { display: none; }

/* -------------------------------------------------------- website widget -- */
.fd--widget { background: var(--fd-cedar); color: var(--fd-cream); }
.fd-widget { display: grid; gap: clamp(2.5rem, 5vw, 5rem); align-items: center; }
@media (min-width: 960px) { .fd-widget { grid-template-columns: 1fr 1fr; } }
.fd--widget .fd-lede { color: #D8CCBE; }
.fd--widget .fd-fine { color: var(--fd-cream-soft); opacity: 1; }
.fd-mock { position: relative; margin: 0; border-radius: 16px; overflow: hidden; background: #F7F2EA; color: var(--fd-ink); box-shadow: 0 40px 80px -40px #000, 0 0 0 1px hsl(0 0% 0% / 0.2); }
.fd-mock__bar { display: flex; align-items: center; gap: 6px; padding: 10px 14px; background: #E4DACB; font-size: 12.5px; color: var(--fd-soft); }
.fd-mock__bar i { width: 10px; height: 10px; border-radius: 50%; background: #CBBDA9; }
.fd-mock__bar span { margin-left: 10px; padding: 3px 12px; border-radius: 6px; background: #F7F2EA; }
.fd-mock__body { display: grid; gap: 14px; padding: clamp(1rem, 3vw, 1.8rem); }
@media (min-width: 520px) { .fd-mock__body { grid-template-columns: 1fr 1fr; } }
.fd-mock__card { padding: 1.1rem; border-radius: 12px; background: #fff; box-shadow: 0 0 0 1px var(--fd-rule); }
.fd-mock__h { margin: 0 0 0.8rem; font: 750 1.05rem/1.2 var(--fd-display); }
.fd-mock__f { margin: 0 0 0.6rem; font-size: 12px; font-weight: 650; color: var(--fd-soft); }
.fd-mock__f span { display: block; margin-top: 4px; padding: 8px 10px; border-radius: 8px; border: 1px solid var(--fd-rule); font-size: 13.5px; font-weight: 400; color: var(--fd-ink); }
.fd-mock__btn { margin: 0.8rem 0 0; padding: 10px; border-radius: 999px; background: var(--fd-walnut); color: var(--fd-light); text-align: center; font-size: 14px; font-weight: 650; }
.fd-mock__card--out { background: var(--fd-walnut); color: var(--fd-light); box-shadow: none; display: flex; flex-direction: column; justify-content: center; }
.fd-mock__k { margin: 0; font-size: 12px; font-weight: 650; letter-spacing: 0.06em; text-transform: uppercase; color: var(--fd-laser); }
.fd-mock__range { margin: 0.5rem 0 0; font: 800 1.45rem/1.1 var(--fd-display); letter-spacing: -0.02em; }
.fd-mock__s { margin: 0.6rem 0 0; font-size: 13px; color: var(--fd-cream-soft); }
.fd-mock figcaption { position: absolute; top: 9px; right: 12px; padding: 2px 8px; border-radius: 5px; background: var(--fd-walnut); color: var(--fd-light); font-size: 11.5px; font-weight: 650; }

/* -------------------------------------------------------------- questions -- */
.fd--faq { background: var(--fd-paper); color: var(--fd-ink); }
.fd-faq { display: grid; gap: 2rem; }
@media (min-width: 960px) { .fd-faq { grid-template-columns: 0.8fr 1.2fr; gap: 4rem; } }
.fd-faq__list { border-top: 1px solid var(--fd-rule); }
.fd-faq details { border-bottom: 1px solid var(--fd-rule); scroll-margin-top: 90px; }
.fd-faq summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 64px; padding: 1rem 0; font: 700 1.1rem/1.3 var(--fd-display); cursor: pointer; list-style: none; }
.fd-faq summary::-webkit-details-marker { display: none; }
.fd-faq summary::after { content: "+"; flex: none; font: 400 1.6rem/1 var(--fd-text); color: var(--fd-laser); transition: transform 0.2s; }
.fd-faq details[open] summary::after { transform: rotate(45deg); }
.fd-faq summary:focus-visible { outline: 2px solid var(--fd-laser); outline-offset: 2px; }
.fd-faq details p {
  margin: 0 0 1.5rem; padding-right: 2.5rem; max-width: 58ch;
  font-size: clamp(16.5px, 15.6px + 0.25vw, 18px); font-weight: 450; line-height: 1.62; letter-spacing: 0.002em;
  color: #2A221C; text-wrap: pretty; font-optical-sizing: auto;
}
.fd-faq details p b { font-weight: 700; color: var(--fd-ink); }
.fd-faq summary { font-size: clamp(1.08rem, 1rem + 0.3vw, 1.22rem); letter-spacing: -0.01em; }
@media (max-width: 599px) { .fd-faq details p { padding-right: 0; } }

/* ----------------------------------------------------------------- footer -- */
.fd-foot { background: var(--fd-walnut); color: var(--fd-cream); font-family: var(--fd-text); }
.fd-foot__in { padding-top: 3.5rem; padding-bottom: calc(5.5rem + env(safe-area-inset-bottom)); }
.fd-foot__mark { display: flex; align-items: center; gap: 0.6rem; margin: 0; font: 800 1.3rem var(--fd-display); letter-spacing: -0.02em; }
.fd-foot__mark svg { width: 30px; height: 30px; fill: none; stroke: var(--fd-light); stroke-width: 1.6; }
.fd-foot__mark rect { stroke: hsl(38 60% 80% / 0.3); }
.fd-foot__mark circle { fill: var(--fd-laser); stroke: none; }
.fd-foot__line { margin: 0.6rem 0 0; font: 700 clamp(1.4rem, 1rem + 1.6vw, 2.2rem) var(--fd-display); letter-spacing: -0.03em; color: var(--fd-light); }
.fd-foot__nav { display: flex; flex-wrap: wrap; gap: 0.3rem 1.6rem; margin-top: 1.6rem; }
.fd-foot__nav a { display: inline-flex; align-items: center; min-height: 44px; color: var(--fd-cream); font-size: 15px; text-decoration: underline; text-decoration-color: hsl(38 60% 80% / 0.3); text-underline-offset: 4px; }
.fd-foot__small { margin: 1.4rem 0 0; font-size: 13px; color: var(--fd-cream-soft); max-width: 60ch; }

/* ------------------------------------------------------ floating apply -- */
.fd-float {
  position: fixed; z-index: 60; right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom));
  display: inline-flex; align-items: center; min-height: 50px; padding: 0 1.3rem; border-radius: 999px;
  background: var(--fd-laser); color: var(--fd-walnut); font: 650 15.5px var(--fd-text); text-decoration: none;
  box-shadow: 0 1px 0 hsl(12 100% 76% / 0.6) inset, 0 14px 30px -10px hsl(10 80% 12% / 0.75);
  opacity: 0; transform: translateY(16px); pointer-events: none; transition: opacity 0.25s, transform 0.25s;
}
.fd-float.on { opacity: 1; transform: none; pointer-events: auto; }
@media (max-width: 599px) { .fd-float { left: 16px; right: 16px; justify-content: center; } }
/* split version: bottom-left, away from the phone in the hero; walk-in: the header carries the button at every width */
body[data-variant="split"] .fd-float { right: auto; left: max(16px, env(safe-area-inset-left)); }
@media (max-width: 599px) { body[data-variant="split"] .fd-float { right: auto; left: 16px; justify-content: flex-start; } }
body[data-variant="walkin"] .fd-float { display: none; }
.fd-float:focus-visible { outline: 2px solid var(--fd-light); outline-offset: 3px; }

/* the founder proof line near the top of each version */
.fd-proofline { display: flex; align-items: center; gap: 0.55rem; margin: 1.1rem 0 0; font-size: 14px; font-weight: 550; letter-spacing: 0.005em; }
.fd-proofline::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--laser, #FF4B2B); box-shadow: 0 0 0 4px hsl(10 100% 58% / 0.18); }

/* reveal on scroll */
.fd [data-fd-in] { opacity: 0; transform: translateY(18px); transition: opacity 0.7s ease, transform 0.7s cubic-bezier(.2,.7,.2,1); }
.fd [data-fd-in].in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .fd [data-fd-in] { opacity: 1; transform: none; transition: none; }
  .fd-float, .fd-btn { transition: none; }
}

/* ------------------------------------------------------- see your link -- */
.fd--see { background: var(--fd-walnut); color: var(--fd-cream); }
.fd-see { display: grid; gap: clamp(2.5rem, 5vw, 5rem); align-items: center; }
@media (min-width: 960px) { .fd-see { grid-template-columns: 1fr 1fr; } }
.fd--see .fd-lede { color: var(--fd-cream-soft); }
.fd-see__field { margin-top: 1.8rem; max-width: 26rem; }
.fd-see__field label { color: var(--fd-cream); }
.fd-see__field input { background: #221A15; border-color: #4A3C31; color: var(--fd-light); font-size: 18px; min-height: 58px; }
.fd-see__field input::placeholder { color: #8E8174; }
.fd-see__field input:focus { border-color: var(--fd-light); }
.fd-see__colors { display: flex; align-items: center; gap: 10px; margin-top: 0.4rem; }
.fd-see__colors-t { font-size: 14px; font-weight: 600; margin-right: 4px; }
.fd-see__colors label { position: relative; display: grid; place-items: center; width: 44px; height: 44px; cursor: pointer; }
.fd-see__colors input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.fd-see__colors i { width: 28px; height: 28px; border-radius: 50%; background: var(--c); box-shadow: 0 0 0 1.5px hsl(38 60% 80% / 0.35); transition: box-shadow 0.15s; }
.fd-see__colors input:checked + i { box-shadow: 0 0 0 3px var(--fd-walnut), 0 0 0 5px var(--fd-light); }
.fd-see__colors input:focus-visible + i { outline: 2px solid var(--fd-laser); outline-offset: 4px; }
.fd-see__note { margin: 1rem 0 0; font-weight: 650; color: var(--fd-light); }
.fd-see__acts { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: 1.4rem; }
.fd--see .fd-fine { color: var(--fd-cream-soft); opacity: 1; }
.fd--see .fd-fine:empty { display: none; }

.fd-see__stage { display: grid; justify-items: center; gap: 14px; }
.fd-see__tabs { display: inline-flex; padding: 4px; border-radius: 999px; background: #221A15; box-shadow: inset 0 0 0 1px #3A2E25; }
.fd-see__tabs button { min-height: 40px; padding: 0 16px; border: 0; border-radius: 999px; background: none; color: var(--fd-cream-soft); font: 650 14px var(--fd-text); cursor: pointer; }
.fd-see__tabs button[aria-selected="true"] { background: var(--fd-light); color: var(--fd-walnut); }
.fd-see__tabs button:focus-visible { outline: 2px solid var(--fd-laser); outline-offset: 2px; }
.fd-see__cap { margin: 0; font-size: 13px; color: var(--fd-cream-soft); }

.fd-phone {
  --brand: #2E6B47;
  position: relative; width: 300px; height: 610px; border-radius: 46px; padding: 12px;
  background: #0B0907; box-shadow: 0 0 0 2px #2C241E, 0 50px 90px -40px #000, inset 0 0 0 1px #3A3029;
}
.fd-phone__notch { position: absolute; z-index: 2; top: 22px; left: 50%; width: 92px; height: 26px; margin-left: -46px; border-radius: 20px; background: #0B0907; }
.fd-phone__scr { position: absolute; inset: 12px; border-radius: 35px; overflow: hidden; padding: 62px 16px 18px; animation: fdScrIn 0.35s ease both; }
.fd-phone__scr[hidden] { display: none; }
@keyframes fdScrIn { from { opacity: 0; transform: translateY(8px); } }
@media (prefers-reduced-motion: reduce) { .fd-phone__scr { animation: none; } }

/* the text message */
.fd-phone__scr--text { background: #fff; color: #111; font-family: -apple-system, BlinkMacSystemFont, "Instrument Sans", sans-serif; }
.fd-sms__who { display: grid; justify-items: center; gap: 6px; margin: 0 0 6px; font-size: 12.5px; }
.fd-sms__who b { font-weight: 600; max-width: 230px; text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fd-sms__av, .fd-sms__mono, .fd-pg__mono { display: grid; place-items: center; border-radius: 50%; background: var(--brand); color: #fff; font: 700 15px var(--fd-text); }
.fd-sms__av { width: 44px; height: 44px; font-size: 16px; }
.fd-sms__time { margin: 6px 0 8px; text-align: center; font-size: 11px; color: #8A8A8E; }
.fd-sms__bubble { max-width: 88%; padding: 9px 12px; border-radius: 18px 18px 18px 5px; background: #E9E9EB; font-size: 13.5px; line-height: 1.34; }
.fd-sms__bubble p { margin: 0; }
.fd-sms__bubble p + p { margin-top: 0.55em; }
.fd-sms__link { color: #0A64D8; text-decoration: underline; text-underline-offset: 2px; overflow-wrap: anywhere; }
.fd-sms__card { display: grid; grid-template-columns: 52px 1fr; grid-template-rows: auto auto; column-gap: 10px; align-items: center; max-width: 88%; margin-top: 6px; padding: 8px; border-radius: 14px; background: #E9E9EB; }
.fd-sms__card-art { grid-row: span 2; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 10px; background: linear-gradient(135deg, var(--brand), color-mix(in srgb, var(--brand) 55%, #000)); }
.fd-sms__mono { width: 34px; height: 34px; font-size: 13px; background: rgba(255,255,255,0.18); box-shadow: inset 0 0 0 1.5px rgba(255,255,255,0.6); }
.fd-sms__card-t { align-self: end; font-size: 12.5px; font-weight: 600; line-height: 1.25; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.fd-sms__card-u { align-self: start; font-size: 11.5px; color: #8A8A8E; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* the project page */
.fd-phone__scr--page { background: #F6F2EA; color: #1B1814; display: flex; flex-direction: column; padding-top: 52px; }
.fd-pg__head { display: flex; align-items: center; gap: 8px; margin: 0 -16px 14px; padding: 0 16px 10px; border-bottom: 1px solid #E3DBCD; font: 600 14px Georgia, "Times New Roman", serif; white-space: nowrap; overflow: hidden; }
.fd-pg__head span:last-child { overflow: hidden; text-overflow: ellipsis; }
.fd-pg__mono { flex: none; width: 26px; height: 26px; font-size: 10px; }
.fd-pg__kick { margin: 0 0 5px; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--brand); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fd-pg__h { margin: 0; font: 500 24px/1.1 Georgia, "Times New Roman", serif; }
.fd-pg__fine { margin: 5px 0 0; font-size: 12px; color: #6E665C; }
.fd-pg__tasks { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 8px; }
.fd-pg__tasks li { display: grid; grid-template-columns: 36px 1fr; column-gap: 10px; align-items: center; padding: 10px; border-radius: 13px; background: #fff; box-shadow: 0 0 0 1px #E6DED1; }
.fd-pg__tasks i { grid-row: span 2; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: var(--brand); }
.fd-pg__tasks svg { width: 19px; height: 19px; fill: none; stroke: #fff; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.fd-pg__tasks b { font: 500 15px/1.15 Georgia, "Times New Roman", serif; }
.fd-pg__tasks small { font-size: 10.5px; line-height: 1.3; color: #6E665C; }
.fd-pg__send { margin-top: 12px; padding: 12px 0; border-radius: 10px; background: var(--brand); color: #fff; text-align: center; font-size: 14px; font-weight: 650; }
.fd-pg__url { margin: auto 0 0; padding: 6px 10px; border-radius: 999px; background: #E6DED1; text-align: center; font-size: 11px; color: #4A433B; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fd-lede__hit { display: block; margin-bottom: 0.35rem; color: var(--fd-light); font-weight: 700; }

/* "When does it go out?" */
.fd-see__when { margin-top: 1.4rem; }
.fd-see__when-t { margin: 0 0 0.6rem; font-size: 14px; font-weight: 600; }
.fd-chips--dark span { background: #221A15; border-color: #4A3C31; color: var(--fd-cream); }
@media (hover: hover) and (pointer: fine) { .fd-chips--dark label:hover span { border-color: var(--fd-light); } }
.fd-chips--dark input:checked + span { background: var(--fd-light); border-color: var(--fd-light); color: var(--fd-walnut); }
.fd-see__why { margin: 0.7rem 0 0; min-height: 1.5em; font-size: 14.5px; color: var(--fd-cream-soft); }

/* ------------------------------------------------- sample report strip -- */
.fd--sample { background: var(--fd-cedar); color: var(--fd-cream); }
.fd--sample .fd__wrap { padding-block: clamp(3.5rem, 8vw, 6rem); }
.fd-sample { display: grid; gap: 2.5rem; align-items: start; }
@media (min-width: 960px) { .fd-sample { grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; } }
.fd--sample .fd-lede { color: #D8CCBE; }
.fd--sample .fd-fine { color: var(--fd-cream-soft); opacity: 1; }
.fd--sample .fd-fine:empty { display: none; }
.fd-sample__form { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.4rem; max-width: 30rem; }
.fd-sample__form input {
  flex: 1 1 12rem; min-width: 0; min-height: 52px; padding: 0 1rem; border-radius: 12px;
  border: 1px solid hsl(38 100% 92% / 0.22); background: hsl(26 22% 10%); color: var(--fd-light);
  font: 500 16px var(--fd-text);
}
.fd-sample__form[hidden] { display: none; }   /* after sending, only the "Got it" line stays (the flex rule above beat [hidden]) */
.fd-sample__form input::placeholder { color: hsl(34 20% 65%); }
.fd-sample__form input:focus-visible { outline: 2px solid var(--fd-laser); outline-offset: 2px; }
.fd-sample__form input[aria-invalid="true"] { border-color: var(--fd-laser); }
.fd--sample .fd-err { color: #FFB4A3; }

/* the offer, one line under a main button; the lighter ask next to the hero button */
.fd-offerline { margin: 0.85rem 0 0; display: flex; flex-wrap: wrap; gap: 0.45rem 0.6rem; font-size: 14px; font-weight: 550; line-height: 1.2; opacity: 1; max-width: 40ch; }
.fd-offerline span { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.38rem 0.7rem 0.38rem 0.55rem; border-radius: 999px; background: hsl(38 100% 92% / 0.09); box-shadow: inset 0 0 0 1px hsl(38 100% 92% / 0.14); white-space: nowrap; }
.fd-offerline span::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--fd-laser, #FF4B2B); flex: none; }
.close-copy__act .fd-offerline span, .estimate__cta .fd-offerline span { background: rgb(29 23 18 / 0.06); box-shadow: inset 0 0 0 1px rgb(29 23 18 / 0.14); }
.fd-herolink { display: inline-block; margin-left: 1rem; color: inherit; font: 600 15px var(--fd-text); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: hsl(10 100% 58% / 0.7); }
.fd-herolink:hover { text-decoration-color: currentColor; }

/* founder photo placeholder: an empty circle until the photo exists, no letter */
.fd-founder__photo span { display: none; }

/* one quote, two names: each version shows its own founder */
.fd-founder[data-founder] { display: none; }
body[data-variant="split"] .fd-founder[data-founder="split"], body[data-variant="walkin"] .fd-founder[data-founder="walkin"] { display: grid; }

/* play the tour (prototype, shown with ?tour=play) */
.fd-play[hidden] { display: none !important; }
.fd-play { background: none; border: 0; cursor: pointer; padding: 0; font: inherit; color: inherit; }
.fd-play::before { content: "\25B6"; font-size: 0.75em; margin-right: 0.45em; color: var(--fd-laser, #FF4B2B); }
.fd-play.on::before { content: "\275A\275A"; }
.fd-play-or { display: inline-block; margin-left: 0.5em; font: 500 15px var(--fd-text, "Instrument Sans", system-ui, sans-serif); opacity: 0.72; }
.fd-play-or[hidden] { display: none; }
.fd-play-wrap { display: inline-flex; align-items: baseline; white-space: nowrap; }   /* the hint always sits beside the button */
.fd-play-wrap:empty { display: none; }

/* the tour bar: while the tour plays, the line for this stop, where we are, back / next, Stop and the progress line;
   at the end, the closing line and the Apply button */
.fd-tourbar {
  position: fixed; z-index: 70; left: 50%; bottom: calc(18px + env(safe-area-inset-bottom, 0px));
  display: flex; align-items: center; gap: 10px; width: max-content; max-width: min(780px, calc(100vw - 32px));
  padding: 8px 8px 8px 16px; border-radius: 24px; overflow: hidden;
  background: hsl(24 22% 8% / 0.94); color: var(--fd-cream); font: 500 14px/1.35 var(--fd-text);
  box-shadow: 0 0 0 1px hsl(38 60% 80% / 0.14), 0 16px 36px -12px #000;
  opacity: 0; visibility: hidden; transform: translate(-50%, 14px);
  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0s linear 0.25s;
}
.fd-tourbar.on { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition: opacity 0.25s ease, transform 0.25s ease; }
.fd-tourbar__dot { flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--fd-laser); box-shadow: 0 0 0 4px hsl(10 100% 58% / 0.2); animation: fdTourDot 1.4s ease-in-out infinite; }
@keyframes fdTourDot { 50% { opacity: 0.35; } }
.fd-tourbar__n { flex: none; font: 650 12px/1 var(--fd-text); letter-spacing: 0.04em; color: var(--fd-cream-soft); font-variant-numeric: tabular-nums; }
.fd-tourbar__t { font-size: 15px; line-height: 1.38; color: var(--fd-light); text-wrap: pretty; transition: opacity 0.16s ease; }
.fd-tourbar__t.is-swap { opacity: 0; }
.fd-tourbar__t small { display: block; margin-top: 2px; font-size: 12.5px; color: var(--fd-cream-soft); }
.fd-tourbar__t b { color: var(--fd-light); font-weight: 650; }
.fd-tourbar__nav { flex: none; display: flex; gap: 6px; }
.fd-tourbar__nav button { width: 36px; height: 36px; padding: 0; border-radius: 50%; border: 1px solid hsl(38 60% 80% / 0.28); background: none; color: var(--fd-light); font: 600 17px/1 var(--fd-text); cursor: pointer; }
.fd-tourbar__nav button:disabled { opacity: 0.35; cursor: default; }
.fd-tourbar__stop { flex: none; min-height: 36px; padding: 0 16px; border: 0; border-radius: 999px; background: var(--fd-light); color: var(--fd-walnut); font: 650 14px var(--fd-text); cursor: pointer; }
.fd-tourbar__go { display: none; flex: none; align-items: center; justify-content: center; min-height: 40px; padding: 0 18px; border-radius: 999px; background: var(--fd-laser); color: var(--fd-walnut); font: 650 14.5px var(--fd-text); text-decoration: none; white-space: nowrap; }
.fd-tourbar button:focus-visible, .fd-tourbar__go:focus-visible { outline: 2px solid var(--fd-laser); outline-offset: 2px; }
.fd-tourbar__go:focus-visible { outline-color: var(--fd-light); }
@media (hover: hover) and (pointer: fine) { .fd-tourbar__nav button:not(:disabled):hover { border-color: var(--fd-light); } .fd-tourbar__go:hover { background: var(--fd-laser-hi); } }
.fd-tourbar__prog { position: absolute; left: 0; bottom: 0; height: 2px; width: var(--p, 0%); background: var(--fd-laser); }
.fd-tourbar.is-done, .fd-tourbar.is-end { padding-right: 18px; }
.fd-tourbar.is-end { padding-right: 8px; }
.fd-tourbar.is-done .fd-tourbar__n, .fd-tourbar.is-done .fd-tourbar__nav, .fd-tourbar.is-done .fd-tourbar__stop, .fd-tourbar.is-done .fd-tourbar__prog,
.fd-tourbar.is-end .fd-tourbar__dot, .fd-tourbar.is-end .fd-tourbar__n, .fd-tourbar.is-end .fd-tourbar__nav, .fd-tourbar.is-end .fd-tourbar__stop, .fd-tourbar.is-end .fd-tourbar__prog { display: none; }
.fd-tourbar.is-end .fd-tourbar__go { display: inline-flex; }
.fd-tourbar.is-done .fd-tourbar__dot { animation: none; background: var(--fd-light); box-shadow: none; }
/* split: bottom-left on the side-by-side story, clear of the phone in the hand (where the floating button sits too) */
@media (min-width: 700px) and (orientation: landscape), (min-width: 1025px) {
  body[data-variant="split"] .fd-tourbar { left: max(16px, env(safe-area-inset-left)); max-width: calc(50vw - 40px); transform: translateY(14px); }
  body[data-variant="split"] .fd-tourbar.on { transform: none; }
}
/* phones: one row (the line, next, Stop); the progress line keeps the count */
@media (max-width: 599px) {
  .fd-tourbar { width: calc(100vw - 32px); gap: 8px; padding: 10px 8px 10px 14px; }
  .fd-tourbar__dot, .fd-tourbar__n, .fd-tourbar__back { display: none; }
  .fd-tourbar__t { flex: 1; font-size: 14.5px; }
  .fd-tourbar.is-end { flex-wrap: wrap; padding: 12px 8px 8px 14px; }
  .fd-tourbar.is-end .fd-tourbar__go { flex: 1 1 100%; }
}
body.is-touring .fd-float { opacity: 0 !important; pointer-events: none !important; }
body.fd-scene .fd-float { opacity: 0 !important; pointer-events: none !important; }   /* split phones: not over the pinned story scenes (site.js) */   /* one thing at the bottom of the screen at a time */

/* ======================================================================
   DROP 9 (Oct 2026): seven pieces, each plays once when it first comes
   into view and then holds its finished state. Scrolling back shows the
   same frame. Reduced motion shows the finished state from the start.
   ====================================================================== */

/* one example kitchen per version: the photo kitchen on split, the sample kitchen on walk-in */
[data-kitchen] { display: none; }
body[data-variant="split"] [data-kitchen="photo"], body[data-variant="walkin"] [data-kitchen="sample"] { display: inline; }

/* ---------------------------------------- the journey in the form card -- */
.fd-form__mine { margin: 0.35rem 0 0; font-size: 15px; color: #3A2F27; }
.fd-form__mine b { color: var(--fd-ink); }
.fd-jr { margin: 1rem 0 1.4rem; }
.fd-jr__groups { display: grid; grid-template-columns: 1fr 1fr; margin: 0 0 0.7rem; font-size: 11.5px; font-weight: 650; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fd-soft); }
.fd-jr__groups span + span { padding-left: 0.8rem; border-left: 1px solid var(--fd-rule); }
.fd-jr__map { position: relative; }
.fd-jr__line { position: relative; z-index: 1; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); }
.fd-jr__line li { position: relative; padding-top: 26px; text-align: center; font-size: 13px; font-weight: 600; line-height: 1.25; color: #8C7D6F; transition: color 0.4s ease; }
.fd-jr__line li i { position: absolute; top: 4px; left: 50%; width: 15px; height: 15px; margin-left: -7.5px; border-radius: 50%; background: #FFFBF5; box-shadow: inset 0 0 0 3px var(--fd-rule); transform: scale(0); transition: transform 0.35s cubic-bezier(.3,1.6,.5,1), box-shadow 0.4s ease, background 0.4s ease; }
.fd-jr.is-drawn .fd-jr__line li i { transform: none; }
.fd-jr__line li.is-done, .fd-jr__line li.is-here, .fd-jr__line li.is-peek { color: var(--fd-ink); }
.fd-jr__line li.is-here { font-weight: 700; }
.fd-jr__line li.is-done i { background: var(--fd-ink); box-shadow: inset 0 0 0 3px var(--fd-ink); }
.fd-jr__line li.is-peek i { box-shadow: inset 0 0 0 3px var(--fd-ink); }
.fd-jr__track { position: absolute; top: 10px; left: 12.5%; right: 12.5%; height: 3px; transform-origin: 0 50%; transform: scaleX(0); transition: transform 0.9s cubic-bezier(.45,0,.2,1); }
.fd-jr.is-drawn .fd-jr__track { transform: none; }
.fd-jr__track::before { content: ""; position: absolute; left: 0; width: 33.34%; top: 0; bottom: 0; border-radius: 2px; background: var(--fd-rule); }
.fd-jr__track::after { content: ""; position: absolute; left: 33.34%; right: 0; top: 0; bottom: 0; background: repeating-linear-gradient(90deg, var(--fd-rule) 0 6px, transparent 6px 11px); }
.fd-jr__fill { position: absolute; z-index: 1; left: 0; top: 0; bottom: 0; width: 0; border-radius: 2px; background: var(--fd-ink); transition: width 0.7s cubic-bezier(.45,0,.2,1); }
.fd-jr__you { position: absolute; z-index: 2; top: 3px; left: 12.5%; width: 17px; height: 17px; margin-left: -8.5px; border-radius: 50%; background: var(--fd-laser); box-shadow: 0 0 0 3px #FFFBF5; opacity: 0; transition: left 0.7s cubic-bezier(.45,0,.2,1), opacity 0.3s ease; }
.fd-jr__you::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; box-shadow: 0 0 0 2px var(--fd-laser); opacity: 0; animation: fdJrPulse 1.8s ease-out infinite; }
@keyframes fdJrPulse { 0% { opacity: 0.7; transform: scale(0.7); } 100% { opacity: 0; transform: scale(1.7); } }
.fd-jr.is-drawn .fd-jr__you { opacity: 1; }
.fd-jr__cap { margin: 0.9rem 0 0; min-height: 2.9em; font-size: 14.5px; line-height: 1.45; color: #3A2F27; }
.fd-jr__cap b { color: var(--fd-ink); }

/* three doubts, answered under the form */
.fd-doubts { grid-column: 1 / -1; padding-top: clamp(1.5rem, 3vw, 2.2rem); border-top: 1px solid var(--fd-rule); }
.fd-doubts__list { display: grid; gap: 1.2rem 2.4rem; margin: 0; }
@media (min-width: 760px) { .fd-doubts__list { grid-template-columns: repeat(3, 1fr); } }
.fd-doubts__list div { min-width: 0; }
.fd-doubts__list dt { font: 750 1.08rem/1.3 var(--fd-display); letter-spacing: -0.01em; color: var(--fd-ink); }
.fd-doubts__list dd { margin: 0.4rem 0 0; font-size: 15.5px; line-height: 1.55; color: #3A2F27; }

/* ------------------------------------------------- the trip receipt -- */
.fd-drive__out { display: grid; }
.fd-rc { container-type: inline-size; width: min(100%, 480px); margin: 0; justify-self: center; }   /* the type scales with the paper */
.fd-rc__feed { position: relative; margin: 0 10px -8px; overflow: hidden; padding-top: 12px; }   /* the paper rises out of the slot below it */
.fd-rc__paper {
  position: relative; padding: 24px 22px 26px; background: #FFFBF5; color: var(--fd-ink);
  font: 500 clamp(13.5px, 3.45cqi, 16.5px)/1.5 ui-monospace, "SF Mono", Menlo, Consolas, monospace; letter-spacing: 0.01em; text-transform: uppercase;
  -webkit-mask: linear-gradient(#000 0 0) bottom / 100% calc(100% - 9px) no-repeat, conic-gradient(from 135deg at top, #0000, #000 1deg 89deg, #0000 90deg) top / 14px 9px repeat-x;
          mask: linear-gradient(#000 0 0) bottom / 100% calc(100% - 9px) no-repeat, conic-gradient(from 135deg at top, #0000, #000 1deg 89deg, #0000 90deg) top / 14px 9px repeat-x;
}
.fd-rc__paper p { margin: 0; }
.fd-rc__c { text-align: center; }
.fd-rc__h { font-weight: 700; font-size: 1.12em; letter-spacing: 0.06em; }
.fd-rc__sub { color: #6A5D51; font-size: 0.88em; }
.fd-rc__rule { height: 0; margin: 10px 0; border-top: 1.5px dashed #BFB2A2; }
.fd-rc__rule--dbl { border-top: 3px double var(--fd-ink); }
.fd-rc__row { display: flex; align-items: baseline; gap: 6px; }
.fd-rc__row span:first-child { flex: none; }
.fd-rc__row i { flex: 1; min-width: 12px; border-bottom: 1.5px dotted #BFB2A2; transform: translateY(-4px); }
.fd-rc__row b { flex: none; font-weight: 700; font-variant-numeric: tabular-nums; }
.fd-rc__row small { display: block; font-size: 0.85em; color: #6A5D51; text-transform: none; letter-spacing: 0; }
.fd-rc__row + .fd-rc__row { margin-top: 4px; }
.fd-rc__total { font-size: 1.25em; }
.fd-rc__total b { font-size: 1.3em; }
.fd-rc__paid { margin-top: 2px; color: #6A5D51; font-size: 0.88em; }
.fd-rc__bars { display: block; width: 78%; height: 3.4em; margin: 14px auto 6px; }
.fd-rc__bars rect { fill: var(--fd-ink); }
.fd-rc__foot { font-size: 0.82em; color: #6A5D51; text-align: center; letter-spacing: 0.01em; white-space: nowrap; }
.fd-rc__why { margin: 1.4rem 0 0; max-width: 34rem; font-size: 15.5px; line-height: 1.5; color: var(--fd-cream); }
.fd-rc__why b { color: var(--fd-light); }
.fd-rc__slot { position: relative; z-index: 2; height: 16px; border-radius: 8px; background: #0D0A08; box-shadow: 0 0 0 1px hsl(38 60% 80% / 0.1) inset, 0 6px 14px -6px #000; }
.fd-rc__flash { animation: fdRcFlash 0.6s ease; }
@keyframes fdRcFlash { from { background: #FBE6C2; } }

/* ------------------------------------------ the instant-quotes route -- */
.fd-route { position: relative; margin: 1.9rem 0 0; max-width: 34rem; }
.fd-route__list { list-style: none; margin: 0; padding: 0; }
.fd-route__stop { position: relative; padding: 0 0 1.7rem 3.2rem; opacity: 0.5; transition: opacity 0.45s ease; }
.fd-route__stop:last-child { padding-bottom: 0; }
.fd-route__stop.on { opacity: 1; }
.fd-route__mark { position: absolute; left: 2px; top: 1px; width: 24px; height: 24px; border-radius: 50%; background: var(--fd-cedar); box-shadow: inset 0 0 0 5px var(--fd-light); transform: scale(0); transition: transform 0.35s cubic-bezier(.3,1.6,.5,1); }
.fd-route__stop.shown .fd-route__mark { transform: none; }
.fd-route__stop--end .fd-route__mark { left: -3px; top: -4px; width: 34px; height: 34px; box-shadow: inset 0 0 0 5px var(--fd-light), 0 0 0 4px var(--fd-cedar), 0 0 0 6px hsl(38 100% 92% / 0.35); }
.fd-route__name { margin: 0; font: 750 1.15rem/1.2 var(--fd-display); letter-spacing: -0.015em; color: var(--fd-light); }
.fd-route__d { margin: 0.25rem 0 0; font-size: 16px; line-height: 1.5; color: #D8CCBE; }
.fd-route__ends { list-style: none; margin: 0.55rem 0 0; padding: 0; display: grid; gap: 0.35rem; }
.fd-route__ends li { display: flex; align-items: baseline; gap: 0.55rem; font-size: 16px; line-height: 1.45; color: #D8CCBE; opacity: 0; transform: translateX(-6px); transition: opacity 0.4s ease, transform 0.4s ease; }
.fd-route__ends li b { color: var(--fd-light); font-weight: 650; }
.fd-route__ends li::before { content: ""; flex: none; width: 14px; height: 4px; border-radius: 2px; background: var(--fd-light); transform: translateY(-4px); }
.fd-route__ends li + li::before { background: var(--fd-laser); }
.fd-route__stop.on .fd-route__ends li { opacity: 1; transform: none; }
.fd-route__stop.on .fd-route__ends li + li { transition-delay: 0.25s; }
.fd-route__line { position: absolute; left: 11px; top: 13px; width: 6px; height: 0; border-radius: 3px; background: var(--fd-light); transform-origin: 50% 0; transform: scaleY(0); }
.fd-route.is-drawn .fd-route__line { transform: none; }
.fd-route__dot { position: absolute; left: 8px; top: 7px; width: 12px; height: 12px; border-radius: 50%; background: var(--fd-laser); box-shadow: 0 0 0 4px hsl(10 100% 58% / 0.25), 0 0 16px 2px hsl(10 100% 58% / 0.55); opacity: 0; z-index: 2; }
.fd-route__pulse { position: absolute; left: 14px; width: 0; height: 0; z-index: 1; }
.fd-route__pulse::before { content: ""; position: absolute; left: -17px; top: -17px; width: 34px; height: 34px; border-radius: 50%; box-shadow: 0 0 0 2px var(--fd-laser); opacity: 0; }
.fd-route__pulse.go::before { animation: fdRoutePulse 1.1s ease-out 2; }
@keyframes fdRoutePulse { from { opacity: 0.9; transform: scale(1); } to { opacity: 0; transform: scale(2.1); } }

/* ---------------------------------------------------- departures board -- */
.fd--board { background: var(--fd-walnut); color: var(--fd-cream); }
.fd-board { display: grid; gap: clamp(2rem, 4vw, 3.5rem); align-items: center; }
@media (min-width: 960px) { .fd-board { grid-template-columns: 0.85fr 1.15fr; } }
.fd--board .fd-lede { color: var(--fd-cream-soft); }
.fd-bd { --cg: 3px; position: relative; margin: 0; padding: clamp(16px, 3vw, 28px); border-radius: 22px; background: #0D0A08; box-shadow: 0 0 0 1px hsl(38 60% 80% / 0.08) inset, 0 40px 80px -40px #000; }
.fd-bd__in { container-type: inline-size; }
.fd-bd__top { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; padding-bottom: 14px; margin-bottom: 6px; border-bottom: 1px solid hsl(38 60% 80% / 0.1); }
.fd-bd__title { margin: 0; font-size: 12px; font-weight: 650; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fd-cream-soft); }
.fd-bd__title b { display: block; margin-top: 4px; font: 750 clamp(1.05rem, 0.9rem + 0.8cqi, 1.35rem) var(--fd-display); letter-spacing: -0.01em; text-transform: none; color: var(--fd-light); }
.fd-bd__count { display: flex; align-items: center; gap: 10px; }
.fd-bd__count > span:first-child { font-size: 12px; font-weight: 650; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fd-cream-soft); text-align: right; line-height: 1.25; }
.fd-bd__count .fd-flap { --cw: clamp(38px, 11cqi, 56px); }
.fd-bd__switch { display: inline-flex; gap: 4px; margin: 12px 0 2px; padding: 4px; border-radius: 999px; background: #1D1713; box-shadow: inset 0 0 0 1px hsl(38 60% 80% / 0.1); }
.fd-bd__switch button { min-height: 36px; padding: 0 18px; border: 0; border-radius: 999px; background: none; color: var(--fd-cream-soft); font: 650 14px var(--fd-text); cursor: pointer; transition: background 0.2s, color 0.2s; }
.fd-bd__switch button[aria-pressed="true"] { background: var(--fd-light); color: var(--fd-walnut); }
@media (hover: hover) and (pointer: fine) { .fd-bd__switch button[aria-pressed="false"]:hover { color: var(--fd-light); } }
.fd-bd__switch button:focus-visible { outline: 2px solid var(--fd-laser); outline-offset: 2px; }
.fd-bd__row { --cw: min(44px, calc((100cqi - 7.2rem - 6 * var(--cg)) / 7)); display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid hsl(38 60% 80% / 0.06); }
.fd-bd__row:last-of-type { border-bottom: 0; }
.fd-bd__job { min-width: 0; }
.fd-bd__job small { display: block; font-size: 12.5px; font-weight: 600; color: var(--fd-cream-soft); font-variant-numeric: tabular-nums; }
.fd-bd__job b { display: block; margin-top: 2px; font: 700 clamp(1rem, 0.85rem + 1.2cqi, 1.3rem)/1.15 var(--fd-text); font-stretch: 87%; letter-spacing: 0.04em; text-transform: uppercase; color: var(--fd-light); overflow-wrap: anywhere; }
.fd-bd__col { display: flex; gap: var(--cg); flex: none; }
.fd-flap { --ch: calc(var(--cw) * 1.38); position: relative; display: block; flex: none; width: var(--cw); height: var(--ch); border-radius: 4px; perspective: 300px; font: 700 calc(var(--cw) * 0.82) / var(--ch) var(--fd-text); font-stretch: 87%; color: var(--fd-light); text-align: center; }
.fd-flap > span { position: absolute; left: 0; right: 0; height: 50%; overflow: hidden; backface-visibility: hidden; }
.fd-flap b { position: absolute; left: 0; right: 0; height: var(--ch); font-weight: inherit; }
.fd-flap__t, .fd-flap__ft { top: 0; border-radius: 4px 4px 0 0; background: #2A2019; transform-origin: 50% 100%; }
.fd-flap__b, .fd-flap__fb { bottom: 0; border-radius: 0 0 4px 4px; background: #221A14; transform-origin: 50% 0; }
.fd-flap__b b, .fd-flap__fb b { top: calc(var(--ch) / -2); }
.fd-flap__ft, .fd-flap__fb { z-index: 1; visibility: hidden; }
.fd-flap::after { content: ""; position: absolute; z-index: 2; left: 0; right: 0; top: calc(50% - 0.5px); height: 1px; background: hsl(20 30% 3% / 0.4); }   /* the hinge: soft enough that letters stay whole */
.fd-flap.is-hot { color: var(--fd-laser); }
.fd-bd__end { display: grid; gap: 1rem; margin-top: 1.2rem; padding-top: 1.2rem; border-top: 1px solid hsl(38 60% 80% / 0.1); }
.fd-bd__note { margin: 0; font-size: 16px; line-height: 1.5; color: var(--fd-cream); opacity: 0.35; transition: opacity 0.6s ease; }   /* the button never waits: it is full strength from the start */
.fd-bd__end.on .fd-bd__note { opacity: 1; }
.fd-bd__acts { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1.2rem; }
.fd-bd__acts .fd-textlink { margin-top: 0; color: var(--fd-cream); }

/* ---------------------------------------------- the sample, as a folder -- */
.fd-sample__friend { display: grid; justify-items: start; gap: 0.6rem; margin-top: 1.8rem; padding-top: 1.2rem; border-top: 1px solid hsl(38 100% 92% / 0.12); }
.fd-sample__friend-t { margin: 0; font-size: 15px; color: #D8CCBE; }
.fd-sample__friend .fd-fine:empty { display: none; }
.fd-rep { --paper: #FFFBF5; --ink: #1D1712; --soft: #62554A; --rule: #DCCFBE; container-type: inline-size; width: min(100%, 460px); margin: 0; justify-self: center; }
.fd-rep__book { position: relative; aspect-ratio: 4 / 5; perspective: 1800px; }
.fd-rep__book::before { content: ""; position: absolute; inset: 0; border-radius: 6px 14px 14px 6px; background: #E8DDCE; transform: translate(7px, 7px); box-shadow: 0 30px 60px -30px #000; }
.fd-rep__page { position: absolute; inset: 0; overflow: hidden; display: flex; flex-direction: column; padding: clamp(16px, 6cqi, 30px); border-radius: 6px 14px 14px 6px; background: var(--paper); color: var(--ink); box-shadow: inset 3px 0 0 #EDE3D5, 0 1px 0 #fff inset; transform-origin: 0 50%; backface-visibility: hidden; transition: transform 0.85s cubic-bezier(.5,0,.25,1); }
.fd-rep__page.is-turned { transform: rotateY(-178deg); }
.fd-rep__k { margin: 0; font-size: clamp(10.5px, 2.7cqi, 12px); font-weight: 650; letter-spacing: 0.08em; text-transform: uppercase; color: var(--soft); }
.fd-rep__h { margin: 0.35rem 0 0; font: 750 clamp(1.15rem, 5.4cqi, 1.6rem)/1.1 var(--fd-display); letter-spacing: -0.02em; }
.fd-rep__fine { margin: auto 0 0; padding-top: 0.6rem; font-size: clamp(11px, 2.8cqi, 12.5px); line-height: 1.45; color: var(--soft); }
.fd-rep__no { position: absolute; right: clamp(16px, 6cqi, 30px); top: clamp(16px, 6cqi, 30px); font-size: 12px; color: var(--soft); font-variant-numeric: tabular-nums; }
.fd-rep__page--cover, .fd-rep__page--end { background: radial-gradient(120% 90% at 85% 0%, #3A2A1F, #1F1813 60%, #17120E); color: var(--fd-light); box-shadow: inset 4px 0 0 #0D0A08; }
.fd-rep__mark { display: flex; align-items: center; gap: 9px; margin: 0; font: 780 clamp(14px, 3.8cqi, 17px) var(--fd-display); letter-spacing: -0.02em; }
.fd-rep__mark svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; }
.fd-rep__mark circle { fill: var(--fd-laser); stroke: none; }
.fd-rep__cover-k { margin: auto 0 0; font-size: 12px; font-weight: 650; letter-spacing: 0.1em; text-transform: uppercase; color: var(--fd-cream-soft); }
.fd-rep__cover-h { margin: 0.5rem 0 0; font: 800 clamp(2rem, 11cqi, 3.2rem)/0.95 var(--fd-display); letter-spacing: -0.045em; }
.fd-rep__cover-s { margin: 0.8rem 0 0; font-size: clamp(13px, 3.4cqi, 15px); color: var(--fd-cream); }
.fd-rep__cover-line { height: 4px; margin: clamp(1rem, 6cqi, 1.8rem) 0 0; border-radius: 2px; background: var(--fd-laser); }
.fd-rep__cover-f { margin: 0.8rem 0 0; font-size: 12px; color: var(--fd-cream-soft); }
.fd-rep__page--cover { cursor: pointer; }
.fd-rep__openbtn { align-self: flex-start; display: inline-flex; align-items: center; gap: 0.4rem; min-height: 40px; margin-top: 1rem; padding: 0 16px; border: 0; border-radius: 999px; background: var(--fd-light); color: var(--fd-walnut); font: 650 14px var(--fd-text); cursor: pointer; }
.fd-rep__openbtn:focus-visible { outline: 2px solid var(--fd-laser); outline-offset: 3px; }
.fd-rep__plan { display: block; width: 100%; height: auto; max-height: 52%; margin: 0.6rem 0 0; }
.fd-rep__plan .room { fill: #FBF8F3; stroke: var(--ink); stroke-width: 2; }
.fd-rep__plan .wall { fill: none; stroke: var(--ink); stroke-width: 2.4; }
.fd-rep__plan .open { fill: none; stroke: var(--soft); stroke-width: 1.2; stroke-dasharray: 5 4; }
.fd-rep__plan .base, .fd-rep__plan .isl { fill: #E8DDCE; stroke: var(--ink); stroke-width: 1.4; }
.fd-rep__plan .upper { fill: none; stroke: var(--ink); stroke-width: 1.2; stroke-dasharray: 4 3; }
.fd-rep__plan .win { fill: #fff; stroke: var(--ink); stroke-width: 1.2; }
.fd-rep__plan .dim { stroke: var(--soft); stroke-width: 1; }
.fd-rep__plan text { font: 600 12px var(--fd-text); fill: var(--soft); }
.fd-rep__plan .lbl { font: 600 13px var(--fd-text); fill: var(--ink); }
.fd-rep__plan .draw { stroke-dasharray: 1200; stroke-dashoffset: 1200; }
.fd-rep__plan.is-drawing .draw { transition: stroke-dashoffset 1.3s cubic-bezier(.45,0,.2,1); stroke-dashoffset: 0; }
.fd-rep__plan .fillin { opacity: 0; transition: opacity 0.5s ease 0.9s; }
.fd-rep__plan.is-drawing .fillin { opacity: 1; }
.fd-rep__figs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; margin: 0.4rem 0 0; }
.fd-rep__figs div { display: flex; flex-direction: column-reverse; }
.fd-rep__figs dt { font-size: clamp(11px, 2.8cqi, 12.5px); color: var(--soft); }
.fd-rep__figs dd { margin: 0; font: 780 clamp(1.05rem, 5cqi, 1.45rem)/1.05 var(--fd-display); letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.fd-rep table { width: 100%; margin: 0.6rem 0 0; border-collapse: collapse; font-size: clamp(12px, 3.2cqi, 14.5px); }
.fd-rep td { padding: 0.36em 0; border-top: 1px solid var(--rule); vertical-align: top; }
.fd-rep td.n { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; font-weight: 600; }
.fd-rep td small { display: block; font-size: 0.85em; color: var(--soft); }
.fd-rep tfoot td { padding-top: 0.45em; border-top: 2px solid var(--ink); font: 800 clamp(1.05rem, 5cqi, 1.4rem) var(--fd-display); letter-spacing: -0.02em; }
.fd-rep__checks { list-style: none; margin: 0.9rem 0 0; padding: 0; display: grid; gap: 0.8rem; font-size: clamp(13px, 3.4cqi, 15px); line-height: 1.45; }
.fd-rep__checks li { display: grid; grid-template-columns: 1.4em 1fr; gap: 0.4rem; }
.fd-rep__checks li::before { content: ""; width: 1em; height: 1em; margin-top: 0.2em; border-radius: 4px; box-shadow: inset 0 0 0 2px var(--ink); }
.fd-rep__quote { margin: 1rem 0 0; padding: 0.8rem 0 0; border-top: 1px solid var(--rule); font: 650 clamp(14px, 3.8cqi, 16.5px)/1.4 var(--fd-text); }
.fd-rep__page--end { justify-content: center; gap: 1rem; }
.fd-rep__page--end .fd-rep__k { color: var(--fd-cream-soft); }
.fd-rep__page--end .fd-rep__h { color: var(--fd-light); font-size: clamp(1.4rem, 7cqi, 2rem); }
.fd-rep__page--end p { margin: 0; font-size: clamp(14px, 3.6cqi, 16px); line-height: 1.5; color: #D8CCBE; }
.fd-rep__page--end .fd-textlink { margin-top: 0; color: var(--fd-cream); font-size: 15px; }
.fd-rep__nav { display: flex; align-items: center; justify-content: space-between; gap: 0.6rem; margin-top: 1.2rem; }
.fd-rep__tabs { display: flex; flex-wrap: wrap; gap: 4px; }
.fd-rep__tabs button { min-height: 36px; padding: 0 12px; border: 0; border-radius: 999px; background: hsl(38 100% 92% / 0.08); color: var(--fd-cream-soft); font: 600 13px var(--fd-text); cursor: pointer; }
.fd-rep__tabs button[aria-current="true"] { background: var(--fd-light); color: var(--fd-walnut); }
.fd-rep__tabs button:focus-visible, .fd-rep__arrows button:focus-visible { outline: 2px solid var(--fd-laser); outline-offset: 2px; }
.fd-rep__arrows { display: flex; gap: 6px; }
.fd-rep__arrows button { display: grid; place-items: center; width: 40px; height: 40px; padding: 0 0 2px; border: 0; border-radius: 50%; background: hsl(38 100% 92% / 0.08); color: var(--fd-light); font: 600 20px/1 var(--fd-text); cursor: pointer; transition: background-color 0.2s; }
.fd-rep__arrows button:hover:not(:disabled) { background: hsl(38 100% 92% / 0.16); }
.fd-rep__arrows button:disabled { opacity: 0.3; cursor: default; }
@media (max-width: 400px) {   /* small phones: the three tabs and both arrows stay on one line */
  .fd-rep__tabs button { padding: 0 10px; font-size: 12.5px; }
  .fd-rep__arrows { gap: 4px; }
  .fd-rep__arrows button { width: 36px; height: 36px; }
}

/* -------------------------------------------- the client's reply, by text -- */
.fd-phone__scr--text { display: flex; flex-direction: column; }
.fd-phone__scr--text[hidden] { display: none; }
.fd-sms__who { flex: none; }
.fd-chat__vp { position: relative; flex: 1; min-height: 0; overflow: hidden; }
.fd-chat__vp.is-scrolled { -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 14px); mask-image: linear-gradient(to bottom, transparent 0, #000 14px); }
.fd-chat { display: flex; flex-direction: column; transition: transform 0.55s cubic-bezier(.2,.7,.2,1); }
.fd-sms__time { position: relative; }
.fd-sms__time span { transition: opacity 0.35s ease; }
.fd-sms__time span + span { position: absolute; left: 0; right: 0; opacity: 0; }
.fd-chat.is-later .fd-sms__time span:first-child { opacity: 0; }
.fd-chat.is-later .fd-sms__time span + span { opacity: 1; }
.fd-sms__bubble, .fd-sms__card { flex: none; }
.fd-sms__sep { margin: 14px 0 6px; text-align: center; font-size: 11px; color: #8A8A8E; }
.fd-sms__sep b { font-weight: 600; }
.fd-sms__out { align-self: flex-end; max-width: 78%; margin: 0; padding: 8px 12px; border-radius: 18px 18px 5px 18px; background: #34C759; color: #fff; font-size: 13.5px; line-height: 1.34; }
.fd-sms__in { align-self: flex-start; max-width: 82%; margin: 8px 0 0; padding: 8px 12px; border-radius: 18px 18px 18px 5px; background: #E9E9EB; font-size: 13.5px; line-height: 1.34; }
.fd-sms__typing { display: inline-flex; gap: 4px; padding: 4px 2px; }
.fd-sms__typing i { width: 7px; height: 7px; border-radius: 50%; background: #8E8E93; animation: fdType 1.1s infinite ease-in-out; }
.fd-sms__typing i:nth-child(2) { animation-delay: 0.15s; }
.fd-sms__typing i:nth-child(3) { animation-delay: 0.3s; }
@keyframes fdType { 0%, 60%, 100% { opacity: 0.35; transform: none; } 30% { opacity: 1; transform: translateY(-3px); } }
.fd-pop { animation: fdPop 0.32s cubic-bezier(.3,1.4,.5,1) both; }
.fd-sms__out.fd-pop { transform-origin: 100% 100%; }
.fd-sms__in.fd-pop { transform-origin: 0 100%; }
@keyframes fdPop { from { opacity: 0; transform: scale(0.6); } }

@media (prefers-reduced-motion: reduce) {
  .fd-jr__track, .fd-jr__line li i, .fd-jr__fill, .fd-jr__you, .fd-route__stop, .fd-route__mark, .fd-route__ends li,
  .fd-bd__note, .fd-rep__page, .fd-rep__plan .draw, .fd-rep__plan .fillin, .fd-chat, .fd-sms__time span { transition: none; }
  .fd-jr__you::after, .fd-route__pulse.go::before, .fd-rc__flash, .fd-pop, .fd-sms__typing i { animation: none; }
}

/* =================================================================== LEAN PROTOTYPE (12 Oct, round 2) */
/* the founder note, compact: one short quote under the requirement line */
.fd-founder--lean { margin-top: 1.6rem; padding-top: 1.1rem; }
.fd-founder--lean blockquote { font-size: 15px; line-height: 1.5; }
.fd-founder--lean blockquote::before { content: "\201C"; }
.fd-founder--lean blockquote::after { content: "\201D"; }
.fd-founder--lean figcaption { margin-top: 0.45rem; font-size: 13.5px; }

/* the softer ask, under the form: one field, one quiet button */
.fd-soft { margin-top: 1.3rem; padding-top: 1.1rem; border-top: 1px solid var(--fd-rule); }
.fd-form[data-step="2"] ~ .fd-soft, .fd-form[hidden] ~ .fd-soft { display: none; }
.fd-soft__t { margin: 0; font-size: 15px; color: #3A2F27; }
.fd-soft__t b { color: var(--fd-ink); font-weight: 650; }
.fd-soft__form { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 0.6rem; }
.fd-soft__form[hidden] { display: none; }
.fd-soft__form input {
  flex: 1 1 11rem; min-width: 0; min-height: 44px; padding: 0 0.9rem; border-radius: 12px;
  border: 1.5px solid var(--fd-rule); background: #fff; color: var(--fd-ink); font: 400 16px var(--fd-text);
}
.fd-soft__form input::placeholder { color: #9A8C7E; }
.fd-soft__form input:focus { outline: none; border-color: var(--fd-ink); box-shadow: 0 0 0 3px hsl(10 100% 58% / 0.25); }
.fd-soft__form input[aria-invalid="true"] { border-color: #C2361C; }
.fd-soft__form .fd-btn--ghost { color: var(--fd-ink); flex: none; }
.fd-soft .fd-err { margin: 0.5rem 0 0; }
.fd-soft .fd-fine { margin-top: 0.5rem; font-size: 13px; color: var(--fd-soft); opacity: 1; }
.fd-soft .fd-fine:empty { display: none; }
.fd-soft [role="status"] { color: var(--fd-ink); font-weight: 600; font-size: 14px; }
.fd-soft a { color: inherit; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: hsl(10 100% 58% / 0.7); }

/* the thank-you calendar: the real booking page once CONFIG.bookingUrl is set, a marked placeholder until then */
.fd-cal { margin-top: 0.8rem; }
.fd-cal__frame { display: block; width: 100%; height: 640px; border: 0; border-radius: 14px; background: #fff; box-shadow: 0 0 0 1px var(--fd-rule); }
.fd-cal__frame[hidden], .fd-cal__mock[hidden] { display: none; }
.fd-cal__mock { position: relative; padding: 0.9rem; border-radius: 14px; border: 1.5px dashed #C9B8A3; background: #fff; }
.fd-cal__tag { display: inline-flex; align-items: center; gap: 0.4rem; margin: 0 0 0.75rem; padding: 0.3rem 0.65rem; border-radius: 999px; background: #FFF0D6; color: #6B4A12; font-size: 12.5px; font-weight: 650; line-height: 1.2; }
.fd-cal__tag::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #D98A1C; flex: none; }
.fd-cal__days { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.fd-cal__days button, .fd-cal__times button {
  min-height: 44px; padding: 0.35rem 0.2rem; border-radius: 10px; border: 1.5px solid var(--fd-rule); background: #fff; color: var(--fd-ink);
  font: 600 13.5px/1.15 var(--fd-text); cursor: pointer; transition: background 0.12s, border-color 0.12s, color 0.12s;
}
.fd-cal__days button small { display: block; font-size: 11.5px; font-weight: 550; color: var(--fd-soft); text-transform: uppercase; letter-spacing: 0.05em; }
.fd-cal__days button[aria-pressed="true"], .fd-cal__times button[aria-pressed="true"] { background: var(--fd-walnut); border-color: var(--fd-walnut); color: var(--fd-light); }
.fd-cal__days button[aria-pressed="true"] small { color: var(--fd-cream-soft); }
.fd-cal__times { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-top: 6px; }
@media (hover: hover) and (pointer: fine) { .fd-cal__days button:hover, .fd-cal__times button:hover { border-color: var(--fd-ink); } }
.fd-cal button:focus-visible { outline: 2px solid var(--fd-laser); outline-offset: 2px; }
.fd-cal__note { margin: 0.6rem 0 0; font-size: 13.5px; line-height: 1.45; color: var(--fd-soft); }
.fd-cal__note:empty { display: none; }
.fd-cal__times button { white-space: nowrap; }
@media (max-width: 520px) { .fd-cal__times { grid-template-columns: repeat(2, 1fr); } }

/* walk-in (12 Oct): pieces that only walk-in shows for now (body data-tour="lean"); split keeps its own versions */
body:not([data-tour="lean"]) .fd-lean-only { display: none !important; }
body[data-tour="lean"] .fd-classic-only { display: none !important; }
/* the tour's short fade from the film to the form (walk-in full page) */
.fd-veil { position: fixed; inset: 0; z-index: 59; background: #14100D; opacity: 0; pointer-events: none; transition: opacity 0.32s ease; }
.fd-veil.on { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .fd-veil { transition: none; } }

/* The founding card, where the two step application used to be. One line with
   the live count, one button, and the small print under it. */
.fd-card__count{
  font-size:17px;
  line-height:1.4;
  font-weight:600;
  margin:0 0 14px;
}
.fd-sample__act{margin:18px 0 8px}
