/* Proposal revision: workshop brand system and longer consultative pages */
:root {
  --ink: var(--frl-deep);
  --muted: var(--frl-muted);
  --paper: var(--frl-ivory);
  --cream: var(--frl-white);
  --willow: var(--frl-gold);
  --willow-dark: var(--frl-green);
  --sage: var(--frl-soft-green);
  --red: var(--frl-green);
  --gold: var(--frl-gold);
  --line: var(--frl-line);
  --shadow: var(--frl-shadow);
  --sans: var(--frl-font-sans);
}

h1,
h2 { font-family: var(--sans); font-weight: 850; letter-spacing: -.035em; }
.frl-theme h1 { font-size: clamp(2.65rem, 4.5vw, 4rem); line-height: 1.04; }
.frl-theme h2 { font-size: clamp(2rem, 3vw, 2.8rem); line-height: 1.08; }

body { color: var(--muted); }
.topbar { background: rgba(247, 246, 241, .96); }
.brand-mark { display: none; }
.brand strong { color: var(--ink); }
.brand small { color: var(--muted); }
.topbar .text-button,
.topbar .icon-button {
  border: 1px solid var(--frl-green);
  border-radius: var(--frl-pill-radius);
  color: var(--frl-deep);
  font-weight: 700;
}
.eyebrow,
.kicker { color: var(--ink); }
.slide h1,
.slide h2,
.slide h3,
.slide strong { color: var(--ink); }
.slide { background: var(--paper); }
.hero-slide { background: var(--frl-deep); color: var(--frl-white); }
.hero-slide h1,
.hero-slide h2,
.hero-slide h3,
.hero-slide strong,
.hero-slide .eyebrow { color: white; }
.hero-slide .lede,
.hero-slide .prepared-by small { color: rgba(255,255,255,.86); }
.hero-slide .primary-button { background: var(--frl-gold); color: var(--frl-deep); border-color: var(--frl-gold); }
.hero-slide .hero-panel { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.22); box-shadow: none; }
.hero-slide .hero-panel p,
.hero-slide .hero-panel li { color: white; }
.hero-slide .big-stat { color: var(--gold); }
.portrait-monogram { background: var(--gold); color: var(--ink); }
.primary-button { background: var(--frl-green); border-color: var(--frl-green); }
.primary-button:hover { background: var(--frl-deep); }
.secondary-button { border-color: var(--frl-green); color: var(--frl-green); }
.secondary-button:hover { background: var(--frl-green); }
.info-card,
.process-grid article,
.service-card,
.hero-panel,
.price-card,
.calculator-card,
.value-result,
.summary-card,
.contact-card { border-radius: 7px; background: white; }
.number,
.roadmap article > span,
.system-stack article > span { color: var(--gold); }
.callout,
.offer-note { border-left: 4px solid var(--gold); border-radius: 0; }
.system-stack article { border-top-color: var(--gold); border-radius: 0 0 7px 7px; }
.stepper::before { content: ""; position: absolute; inset: 0 auto auto 0; width: 13%; height: 3px; background: var(--gold); }
.stepper button:last-child { background: var(--willow-dark); color: white; border-radius: 999px; }
.stepper button:first-child { border: 1px solid var(--willow-dark); border-radius: 999px; }
.annual-value { font-size: clamp(2.15rem, 3vw, 2.75rem); }

.hero-slide [data-go="decision"],
.select-service { display: none !important; }

.primary-button,
.secondary-button,
.text-button,
.icon-button,
.stepper button { text-transform: capitalize; }

.long-slide {
  height: 100vh;
  overflow-y: auto;
  align-items: flex-start !important;
  scrollbar-gutter: stable;
}

.long-slide > .slide-inner {
  padding-top: 8px;
  padding-bottom: 34px;
}

.merged-section {
  margin-top: 32px;
  padding-top: 32px;
  border-top: 1px solid var(--line);
}

.frl-theme a.primary-button,
.frl-theme a.primary-button:visited {
  color: var(--frl-white) !important;
}

.terms-strip,
.terms-strip strong,
.terms-strip span {
  color: var(--frl-white) !important;
}

.terms-strip strong {
  visibility: visible;
  opacity: 1;
}

.long-slide .agent-grid {
  max-height: none;
  overflow: visible;
}

.agent-counter { display: none; }
.agent-card { cursor: default; }
.agent-card > span { background: var(--cream); }
.agent-card > input:disabled + span { opacity: 1; cursor: default; }
.agent-card input[type="text"] { display: none; }
.frl-theme input[type="checkbox"] {
  width: auto;
  margin: 0;
  padding: 0;
}
.agent-card > input[type="checkbox"],
.service-selector input[type="checkbox"] {
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
}

.embed-shell {
  margin-top: 28px;
  border: 1px solid var(--line);
  border-radius: 22px;
  overflow: hidden;
  background: white;
  box-shadow: var(--shadow);
}

.embed-shell iframe {
  display: block;
  width: 100%;
  height: 960px;
  border: 0;
  background: white;
}

.willow-demo {
  width: min(720px, 100%);
  min-height: 610px;
  margin: 30px auto 0;
  padding: 24px 32px 34px;
  background: white;
  border: 1px solid #e8ddd0;
  border-radius: 12px;
  box-shadow: 0 18px 42px rgba(45, 58, 52, .14);
  color: #3b4a56;
}

.willow-progress {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  color: #394852;
  font-size: .72rem;
  letter-spacing: .04em;
}

.willow-progress-track {
  height: 8px;
  margin-top: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #edf0ed;
}

.willow-progress-track i {
  display: block;
  width: 25%;
  height: 100%;
  border-radius: inherit;
  background: #86a596;
  transition: width .25s ease;
}

.willow-step { display: none; position: relative; text-align: center; padding: 30px 48px 0; }
.willow-step.is-current { display: block; }
.willow-step h3 { font-family: Georgia, serif; font-size: clamp(1.8rem, 3vw, 2.5rem); font-weight: 500; margin: 12px 0; color: #343c39; }
.willow-step > p { max-width: 520px; margin: 0 auto 24px; color: #65707f; line-height: 1.5; }
.willow-icon { display: grid; place-items: center; width: 48px; height: 48px; margin: 0 auto; border-radius: 50%; background: #e7eeea; color: #557568; font-size: 1.5rem; }
.willow-options { display: grid; gap: 10px; }
.willow-options button {
  width: 100%;
  padding: 15px 18px;
  border: 1px solid #e8ddd0;
  border-radius: 12px;
  background: #fffdfa;
  color: #3c4a52;
  cursor: pointer;
  text-align: left;
  font-weight: 700;
}
.willow-options button:hover { border-color: #86a596; background: #f4f8f5; }
.willow-back { position: absolute; right: 0; top: 0; border: 0; background: transparent; color: #8a98a4; cursor: pointer; }
.willow-final { text-align: left; }
.willow-final .willow-icon,
.willow-final h3,
.willow-final > p,
.willow-final > small { text-align: center; }
.willow-final h3 { display: block; }
.willow-final label { display: flex; flex-direction: column; gap: 7px; margin: 17px 0; font-size: .72rem; letter-spacing: .04em; font-weight: 700; }
.willow-final input[type="text"],
.willow-final input[type="email"] { border: 1px solid #eadbc8; border-radius: 13px; padding: 15px 18px; color: #3b4a56; }
.willow-final .willow-consent { display: grid; grid-template-columns: auto 1fr; gap: 9px; align-items: start; font-weight: 400; letter-spacing: 0; color: #667282; }
.willow-submit { width: 100%; border: 0; border-radius: 12px; padding: 16px 20px; background: #86a596; color: white; font-weight: 800; cursor: pointer; }
.willow-final > small { display: block; margin-top: 16px; color: #92a0ad; }
.willow-demo-result { margin-top: 18px; padding: 16px; border-radius: 10px; background: #edf3ef; border-left: 4px solid #86a596; }
.willow-demo-result p { margin: 5px 0 0; line-height: 1.45; }

.pdf-only { display: none; }

.final-contact {
  grid-column: 1 / -1;
  margin-top: 12px;
  box-shadow: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 28px;
}

.final-contact hr { grid-column: 1 / -1; width: 100%; }
.final-contact .small { grid-column: 1 / -1; }
.final-validity { grid-column: 1 / -1; margin: 0; }
.decision-layout { align-items: start; }

@media (max-width: 900px) {
  .long-slide { height: auto; overflow: visible; }
  .merged-section { margin-top: 28px; padding-top: 28px; }
  .embed-shell iframe { height: 980px; }
  .willow-demo { padding: 20px 18px 28px; }
  .willow-step { padding: 28px 0 0; }
  .final-contact { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .topbar { height: 68px; }
  .brand strong { font-size: .68rem; }
  .brand small { font-size: .56rem; }
  .topbar .text-button,
  .topbar .icon-button { padding: 8px 10px; }
  .slide { padding: 90px 16px 50px; }
  .frl-theme h1 { font-size: clamp(2.2rem, 12vw, 3rem); }
  .frl-theme h2 { font-size: clamp(1.8rem, 9vw, 2.35rem); }
  .lede,
  .lede-small { font-size: 1rem; }
  .hero-grid,
  .split-layout,
  .decision-layout,
  .closing-layout,
  .three-up,
  .system-stack,
  .process-grid,
  .service-grid,
  .service-selector,
  .agent-grid,
  .field-grid,
  .result-panel,
  .result-pairs,
  .terms-strip { grid-template-columns: 1fr; }
  .info-card,
  .process-grid article,
  .service-card,
  .calculator-card,
  .value-result,
  .summary-card,
  .contact-card { padding: 20px; }
  .terms-strip div { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.18); }
  .terms-strip div:last-child { border-bottom: 0; }
  .willow-demo { min-height: 560px; border-radius: 7px; }
  .willow-step h3 { font-size: 1.65rem; }
  .willow-progress { font-size: .64rem; }
  .annual-value { font-size: 2.25rem; }
}

@media print {
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  body { background: white; }
  .skip-link { display: none !important; }
  h1 { font-size: 38pt; }
  h2 { font-size: 28pt; }
  .slide,
  .long-slide {
    display: block !important;
    height: auto !important;
    overflow: visible !important;
    padding: 36px 28px !important;
  }
  .merged-section {
    break-before: page;
    margin-top: 0;
    padding-top: 36px;
    border-top: 0;
  }
  .merged-section[data-source="blueprint"] {
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .embed-shell,
  .mockup-note { display: none !important; }
  .pdf-only { display: block !important; }
  .willow-demo {
    display: block !important;
    width: 88%;
    min-height: auto;
    margin: 18px auto 0;
    padding: 15px 22px 18px;
    border-radius: 7px;
    box-shadow: none;
    break-inside: avoid;
  }
  .willow-demo .willow-progress,
  .willow-demo .willow-progress-track { display: none !important; }
  .willow-demo::before {
    display: block;
    margin-bottom: 6px;
    color: #394852;
    font-size: 9pt;
    letter-spacing: .08em;
    content: "STEP 1 OF 4  ·  25% COMPLETE";
  }
  .willow-demo .willow-step { display: none !important; }
  .willow-demo .willow-step[data-willow-step="1"] {
    display: block !important;
    padding-top: 10px;
  }
  .willow-demo .willow-step h3 { font-size: 19pt; margin: 7px 0; }
  .willow-demo .willow-step > p { margin-bottom: 10px; font-size: 9.5pt; }
  .willow-demo .willow-icon { width: 34px; height: 34px; font-size: 1rem; }
  .willow-demo .willow-options { gap: 5px; }
  .willow-demo .willow-options button { padding: 8px 12px; font-size: 9.5pt; }
  .willow-demo .willow-back,
  .willow-demo .willow-demo-result { display: none !important; }
  .interactive-page-link {
    margin: 10px auto 0;
    width: 88%;
    padding: 10px 14px;
    border-left: 4px solid var(--frl-gold);
    background: var(--frl-soft-green);
    break-before: avoid;
    break-inside: avoid;
    page-break-before: avoid;
    page-break-inside: avoid;
  }
  .interactive-page-link a { color: var(--frl-green); font-weight: 800; text-decoration: underline; }
  #voiceCalculator .field-grid,
  [data-source="value"] .calculator-fields { display: none !important; }
  .result-panel,
  .result-pairs { break-inside: avoid; }
  .agent-grid { grid-template-columns: repeat(2, 1fr); }
  .agent-card > span { break-inside: avoid; }
  .merged-section[data-source="investment"] {
    break-inside: avoid;
    page-break-inside: avoid;
    padding-top: 22px;
  }
  [data-source="investment"] h2,
  #additional h2 {
    font-size: 23pt;
    margin-bottom: 10px;
  }
  [data-source="investment"] .process-grid {
    gap: 9px;
    margin-top: 14px;
  }
  [data-source="investment"] .process-grid article {
    padding: 14px;
    font-size: 8.5pt;
  }
  [data-source="investment"] .process-grid article h3 {
    margin: 4px 0;
    font-size: 13pt;
  }
  [data-source="investment"] .process-grid article p {
    margin: 4px 0;
    line-height: 1.35;
  }
  [data-source="investment"] .terms-strip {
    margin: 10px 0;
  }
  [data-source="investment"] .terms-strip div {
    padding: 10px 12px;
  }
  [data-source="investment"] .terms-strip strong {
    font-size: 15pt;
  }
  [data-source="investment"] .disclaimer {
    margin: 6px 0;
    font-size: 7.5pt;
    line-height: 1.35;
  }
  #additional {
    break-inside: avoid;
    page-break-inside: avoid;
  }
  #additional .service-grid {
    gap: 9px;
    margin-top: 14px;
  }
  #additional .service-card {
    padding: 14px;
    font-size: 8.25pt;
  }
  #additional .service-card h3 {
    margin: 5px 0;
    font-size: 13pt;
  }
  #additional .service-card p {
    margin: 5px 0;
    line-height: 1.35;
  }
  #additional .service-price {
    margin-top: 8px;
    padding-top: 9px;
  }
  #additional .offer-note {
    padding: 8px;
    font-size: 7.5pt;
  }
  .service-selector,
  .question-field,
  .button-stack { display: none !important; }
  .summary-card { min-height: 180px; }
  .final-contact { display: block; }
}
