/* Shared preview typography and layouts. Manrope and the selected hero stay in place. */
:root {
    --text-body: clamp(1.0625rem, .9rem + .35vw, 1.25rem);
    --text-lead: clamp(1.25rem, 1rem + .5vw, 1.5rem);
    --text-small: clamp(.875rem, .81rem + .15vw, 1rem);
    --space-section: clamp(64px, 7vw, 104px);
    --illustration-paper: #e4edce;
    --illustration-pale: #f2f6df;
    --illustration-mid: #b4cda5;
    --illustration-green: #5d936c;
    --illustration-dark: #315c41;
    --illustration-warm: #d8c598;
}
[data-theme='dark'] {
    --illustration-paper: #dcebbf;
    --illustration-pale: #eef6d3;
    --illustration-mid: #769879;
    --illustration-green: #8bb77e;
    --illustration-dark: #294a35;
    --illustration-warm: #a4956e;
}
body { font-size: var(--text-body); }
.section { padding-block: var(--space-section); }
.hero-description { font-size: var(--text-lead); line-height: 1.7; }
.reassurance, .fine-print, .journey-pricing-note { font-size: var(--text-small); }
.reassurance { flex-wrap: wrap; }
.button { font-size: 1rem; }
.text-link { font-size: 1rem; }
.outcomes .section-heading { max-width: 920px; margin-bottom: 48px; }
.outcomes .section-heading h2 { font-size: clamp(2.25rem, 3.8vw, 3.5rem); }
.outcomes-grid { gap: 12px 46px; }
.outcomes-grid li { gap: 18px; padding-block: 30px; }
.outcomes-grid h3 { font-size: clamp(1.2rem, 1rem + .35vw, 1.4rem); }
.outcomes-grid p { margin-top: 10px; font-size: var(--text-body); line-height: 1.65; }
.outcomes-grid .icon { width: 28px; height: 28px; flex-basis: 28px; margin-top: 6px; }
.outcomes-note { max-width: 85ch; }
.evidence-heading h2 { max-width: 24ch; }
.evidence-grid { gap: 50px; }
.evidence-copy > p:first-child { font-size: var(--text-body); }
.reported-label { font-size: var(--text-small); }
.client-results dd { font-size: var(--text-body); }
.client-results .customer-result dt { font-size: 1.45rem; }
.evidence-video figcaption, .evidence-caveat { font-size: var(--text-small); }
.evidence-copy .text-link, .more-evidence { font-size: 1rem; }
.journey-stage { padding-block: var(--space-section); }
.journey-grid { grid-template-columns: minmax(0, .75fr) minmax(0, 1.15fr); gap: clamp(44px, 7vw, 108px); }
.journey-number { margin-bottom: 12px; font-size: .95rem; }
.journey-price { font-size: clamp(1.25rem, 1rem + .5vw, 1.6rem); }
.journey-copy > p:first-child { font-size: var(--text-lead); line-height: 1.75; max-width: 50ch; }
.journey-details { margin-top: 28px; font-size: 1rem; }
.journey-details a { color: var(--green); font-weight: 700; text-decoration-thickness: 1px; }
.stage-illustration { display: block; width: 100%; height: auto; color: var(--green); }
.journey-intro .stage-illustration { width: 220px; max-width: 85%; margin-top: 24px; }
.journey-pricing-note { margin-top: 42px; max-width: 82ch; }
.ideas { background: var(--paper); }
.ideas h2 { max-width: 23ch; margin-bottom: 42px; }
.idea-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 38px; }
.idea-list li { display: flex; gap: 14px; padding-block: 22px; border-top: 1px solid var(--line); font-size: var(--text-body); line-height: 1.6; }
.idea-list li::before { content: '↗'; flex: 0 0 17px; color: var(--green); }
.ideas .fine-print { margin-top: 30px; max-width: 78ch; }
.proof { border-top: 1px solid var(--line); }
.proof h2 { margin-bottom: 42px; }
.testimonials { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 38px 50px; }
.testimonial { margin: 0; padding-top: 28px; border-top: 1px solid var(--line); }
.testimonial blockquote { margin: 0; color: var(--ink); font-size: var(--text-body); line-height: 1.75; }
.testimonial figcaption { display: grid; gap: 12px; margin-top: 22px; font-size: var(--text-small); }
.testimonial cite { color: var(--green); font-style: normal; font-weight: 700; }
.testimonial figcaption a { color: var(--green); }
.testimonial-featured { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-column: 1 / -1; gap: 42px; padding-top: 0; border: 0; align-items: center; }
.testimonial-featured blockquote { font-size: var(--text-lead); }
.testimonial-art img { width: 100%; height: auto; border-radius: 4px; }
.testimonial-art p { margin-top: 12px; font-size: var(--text-small); }
.proof-context { margin-top: 30px; font-size: var(--text-small); }
.faq { padding-block: var(--space-section); }
.faq-grid { gap: clamp(40px, 6vw, 90px); }
.faq h2 { font-size: clamp(2.25rem, 3.2vw, 3rem); max-width: 12ch; }
.faq-list summary { font-size: var(--text-body); line-height: 1.55; padding-block: 24px; }
.faq-list summary .icon { flex-shrink: 0; }
.faq-list p { font-size: var(--text-body); line-height: 1.75; padding: 0 28px 26px 0; }
.faq-contact { font-size: 1rem; }
.faq-list details[open] > summary { color: var(--green); }
.newsletter { background: var(--paper); border-top: 1px solid var(--line); }
.newsletter-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.newsletter-copy h2 { max-width: 19ch; }
.newsletter-copy > p { margin-top: 22px; max-width: 45ch; font-size: var(--text-body); }
.newsletter-form { min-width: 0; }
.newsletter-form > p { margin-top: 14px; font-size: var(--text-small); }
.newsletter-form a { color: var(--green); }
#main #newsletter .newsletter-form .ml-embedded { min-height: 110px; }
.newsletter-status { color: var(--green); }
#main #newsletter .newsletter-form .ml-form-embedWrapper { max-width: 100% !important; background: transparent !important; }
#main #newsletter .newsletter-form .ml-form-embedBody, #main #newsletter .newsletter-form .ml-form-successBody { padding: 0 !important; }
#main #newsletter .newsletter-form input[type='email'] { min-height: 54px !important; font-size: 18px !important; }
#main #newsletter .newsletter-form :is(input, button) { font-family: Manrope, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important; }
#main #newsletter .newsletter-form input[type='email'] { color: var(--ink) !important; background: var(--paper) !important; border: 1px solid var(--line) !important; }
#main #newsletter .newsletter-form input[type='email']::placeholder { color: var(--muted) !important; opacity: 1; }
#main #newsletter .newsletter-form button { min-height: 54px !important; font-size: 1rem !important; background: var(--forest) !important; color: #fff !important; border-radius: 3px !important; }
#main #newsletter .newsletter-form :is(input, button):focus-visible { outline: 3px solid var(--focus) !important; outline-offset: 4px; }
#main #newsletter .newsletter-form :is(.ml-form-embedContent p, .ml-form-successContent p) { color: var(--muted) !important; font: inherit !important; font-size: 18px !important; line-height: 1.65 !important; }
#main #newsletter .newsletter-form :is(.ml-form-embedContent h4, .ml-form-successContent h4) { color: var(--ink) !important; font-family: inherit !important; font-size: 1.5rem !important; }
#main #newsletter .newsletter-form .ml-form-embedContent { margin-bottom: 22px !important; }
.closing { background: var(--sage-strong); border-top: 1px solid var(--line); }
.closing-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr); gap: 64px; align-items: center; }
.closing h2 { font-size: clamp(2.8rem, 5vw, 4.4rem); max-width: 15ch; }
.closing-copy > p { max-width: 48ch; margin-top: 24px; font-size: var(--text-lead); line-height: 1.7; }
.closing .button { margin-top: 30px; }
.closing-art { width: 100%; max-width: 340px; justify-self: end; }
.footer-top nav, .footer-contact { font-size: 1rem; gap: 12px; }
.footer-location, .footer-bottom { font-size: var(--text-small); }
.footer-bottom { flex-wrap: wrap; }
.page-hero { padding-block: clamp(58px, 6vw, 94px); }
.page-hero-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); align-items: center; gap: 72px; }
.page-hero-grid > * { min-width: 0; }
.page-hero h1 { font-size: clamp(2.75rem, 4.3vw, 4.25rem); max-width: 19ch; }
.keep-together { white-space: nowrap; }
.page-hero .hero-description { max-width: 51ch; }
.page-hero .button { margin-top: 28px; }
.page-hero .stage-illustration { max-width: 380px; justify-self: end; }
.page-price { margin-top: 24px; color: var(--green); font-size: 1.5rem; font-weight: 700; }
.page-price span { font-size: var(--text-small); font-weight: 400; padding-left: 10px; }
.price-context { max-width: 62ch; margin-top: 12px; font-size: var(--text-small); }
.page-heading { max-width: 25ch; margin-bottom: 42px; }
.comparison-section { border-top: 1px solid var(--line); background: var(--sage); }
.comparison-section:nth-of-type(odd) { background: var(--paper); }
.comparison-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 60px; align-items: center; }
.comparison-copy h2 { max-width: 18ch; }
.comparison-copy p { margin-top: 22px; font-size: var(--text-body); line-height: 1.75; }
.comparison-copy strong { color: var(--ink); font-weight: 700; }
.work-comparison { margin: 0; min-width: 0; }
.comparison-panels { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.example-document { padding: 24px; background: var(--paper); border: 1px solid var(--line); border-radius: 4px; min-width: 0; }
.example-document h3 { margin-bottom: 20px; color: var(--green); font-size: 1.05rem; }
.example-document ul { display: grid; gap: 15px; }
.example-document li { padding-bottom: 14px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 1rem; line-height: 1.6; }
.example-document li:last-child { padding: 0; border: 0; }
.example-document li strong { display: block; color: var(--ink); font-size: 1rem; }
.example-document.after { background: var(--sage-strong); }
.work-comparison figcaption { margin-top: 14px; font-size: var(--text-small); }
.deliverables { border-top: 1px solid var(--line); }
.two-column { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; }
.two-column h2 { margin-bottom: 28px; }
.plain-list { display: grid; gap: 18px; }
.plain-list li { padding-left: 26px; position: relative; font-size: var(--text-body); line-height: 1.7; color: var(--muted); }
.plain-list li::before { content: '✓'; color: var(--green); position: absolute; left: 0; }
.method-list { display: grid; gap: 26px; }
.method-list h3 { font-size: 1.2rem; }
.method-list p { margin-top: 8px; font-size: var(--text-body); line-height: 1.75; }
.page-intro { background: var(--sage); border-block: 1px solid var(--line); }
.page-intro .two-column { align-items: start; }
.page-intro h2 { max-width: 19ch; }
.page-intro p { max-width: 57ch; font-size: var(--text-lead); line-height: 1.75; }
.foundation-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.foundation-grid article { padding: 30px 28px; border: 1px solid var(--line); border-radius: 8px; background: var(--sage); }
.foundation-grid article:nth-child(2) { background: color-mix(in srgb, var(--sage) 60%, var(--paper)); }
.foundation-grid article:nth-child(3) { background: var(--sage-strong); }
.foundation-art { display: block; width: min(100%, 180px); height: 140px; margin: 0 auto 26px; }
.foundation-grid h3 { font-size: 1.35rem; }
.foundation-grid p { margin-top: 18px; font-size: var(--text-body); }
.workflow-example { border-top: 1px solid var(--line); }
.workflow-example-heading { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 72px; margin-bottom: 44px; }
.workflow-example-heading h2 { max-width: 19ch; }
.workflow-example-heading p { font-size: var(--text-body); line-height: 1.75; }
.workflow-strip { margin: 0; }
.workflow-strip ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px; }
.workflow-strip li { position: relative; display: grid; justify-items: center; gap: 20px; padding: 26px 16px; border: 1px solid var(--line); border-radius: 6px; background: var(--sage); text-align: center; }
.workflow-step-art { display: block; width: 88px; height: 80px; }
.workflow-label { color: var(--ink); font-size: 1.125rem; font-weight: 700; }
.workflow-connector { position: absolute; top: 50%; right: -25px; color: var(--green); font-size: 1.5rem; line-height: 1; transform: translateY(-50%); }
.workflow-strip figcaption { margin-top: 20px; color: var(--muted); font-size: var(--text-small); }
.business-areas { border-block: 1px solid var(--line); background: var(--sage); }
.area-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 50px; }
.area-list > div { padding-block: 24px; border-top: 1px solid var(--line); }
.area-list dt { font-size: 1.2rem; color: var(--ink); font-weight: 700; }
.area-list dd { margin-top: 12px; font-size: var(--text-body); color: var(--muted); }
.section-note { max-width: 82ch; margin-top: 30px; font-size: var(--text-small); }
.support-block { border-top: 1px solid var(--line); }
.support-block h2 { max-width: 19ch; }
.support-block p { margin-top: 22px; font-size: var(--text-body); max-width: 58ch; }
.support-block .two-column { align-items: center; }
.support-art { max-width: 270px; justify-self: center; }
.partner-story p + p { margin-top: 22px; }
.partner-story p { font-size: var(--text-lead); }
.partner-application { border-top: 1px solid var(--line); background: var(--sage); }
.partner-application .two-column { grid-template-columns: .8fr 1.2fr; }
.application-intro p { margin-top: 22px; font-size: var(--text-body); }
.application-form { min-width: 0; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.form-field { display: grid; gap: 9px; }
.form-field.wide { grid-column: 1 / -1; }
.form-field label { color: var(--ink); font-size: 1rem; font-weight: 700; }
.form-field label span { font-weight: 400; color: var(--muted); }
.form-field :is(input, textarea) { display: block; width: 100%; min-width: 0; border: 1px solid var(--line); border-radius: 3px; padding: 14px 16px; background: var(--paper); color: var(--ink); font: inherit; font-size: 1rem; line-height: 1.5; }
.form-field input { min-height: 54px; }
.form-field textarea { min-height: 120px; resize: vertical; }
.form-help { font-size: var(--text-small); margin-top: 24px; }
.application-form .button { margin-top: 26px; }
.application-status { margin-top: 22px; font-size: 1rem; color: var(--ink); }
.email-fallback { margin-top: 24px; font-size: 1rem; }
.email-fallback summary { padding-block: 12px; text-decoration: underline; }
.email-fallback textarea { display: block; width: 100%; height: 230px; margin-top: 12px; padding: 14px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); font: inherit; font-size: 1rem; }
.email-fallback button { padding: 10px 16px; margin-top: 14px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); }
@media (max-width: 1100px) {
    .outcomes-grid { grid-template-columns: 1fr 1fr; gap: 8px 32px; }
    .idea-list { grid-template-columns: 1fr 1fr; }
    .comparison-grid { grid-template-columns: 1fr; gap: 36px; }
    .comparison-copy { max-width: 72ch; }
    .comparison-copy h2 { max-width: none; }
    .example-document { padding: 24px 28px; }
    .page-hero-grid { gap: 40px; }
    .page-hero h1 { font-size: clamp(2.75rem, 5vw, 3.8rem); }
}
@media (min-width: 720px) and (max-width: 1100px) {
    .foundation-grid { grid-template-columns: 1fr; }
    .foundation-grid article { display: grid; grid-template-columns: 180px minmax(0, 1fr); column-gap: 30px; }
    .foundation-art { grid-row: 1 / 3; align-self: center; margin: 0; }
    .foundation-grid h3 { align-self: end; }
    .foundation-grid p { align-self: start; margin-top: 12px; }
}
@media (max-width: 719px) {
    .hero-description { font-size: 1.2rem; }
    .reassurance { font-size: .9rem; line-height: 1.6; }
    .outcomes-grid { gap: 0 24px; }
    .outcomes-grid li { display: block; padding-block: 24px; }
    .outcomes-grid h3 { font-size: 1.2rem; }
    .outcomes-grid p { font-size: 1.0625rem; }
    .journey-grid, .newsletter-grid, .closing-grid, .page-hero-grid, .two-column,
    .partner-application .two-column, .foundation-grid, .area-list, .testimonials,
    .testimonial-featured { grid-template-columns: 1fr; gap: 32px; }
    .journey-intro { display: grid; grid-template-columns: 1fr 125px; gap: 0 14px; align-items: center; }
    .journey-number, .journey-intro h2, .journey-price { grid-column: 1; }
    .journey-number { margin: 0 0 8px; }
    .journey-intro h2 { font-size: 2.45rem; }
    .journey-price { margin-top: 10px; }
    .journey-intro .stage-illustration { grid-column: 2; grid-row: 1 / 4; width: 125px; max-width: none; margin: 0; }
    .journey-copy > p:first-child { font-size: 1.25rem; line-height: 1.75; }
    .journey-pricing-note { margin-top: 36px; }
    .idea-list { grid-template-columns: 1fr; }
    .idea-list li { font-size: 1.125rem; padding-block: 18px; }
    .testimonial-featured { grid-column: auto; }
    .testimonial { padding-top: 24px; }
    .testimonial-featured blockquote { font-size: 1.25rem; }
    .faq-list summary, .faq-list p { font-size: 1.0625rem; }
    .newsletter-form .ml-embedded { min-height: 100px; }
    .closing h2 { font-size: 3rem; }
    .closing-copy > p { font-size: 1.25rem; }
    .closing-art { width: 210px; justify-self: center; margin-block: -8px -20px; }
    .footer-top nav, .footer-contact { font-size: 1rem; }
    .footer-bottom { gap: 18px; font-size: .875rem; }
    .page-hero .stage-illustration { width: 240px; max-width: 100%; justify-self: center; }
    .page-hero h1 { font-size: clamp(2.65rem, 9vw, 3.5rem); }
    .comparison-panels { grid-template-columns: 1fr; }
    .example-document { padding: 24px; }
    .example-document h3 { font-size: 1.125rem; }
    .example-document li, .example-document li strong { font-size: 1.0625rem; }
    .page-intro p { font-size: 1.25rem; }
    .form-grid { grid-template-columns: 1fr; }
    .form-field.wide { grid-column: auto; }
    .support-art { width: 200px; }
    .foundation-grid { gap: 22px; }
    .foundation-grid article { padding: 28px 24px; }
    .workflow-example-heading { grid-template-columns: 1fr; gap: 24px; margin-bottom: 32px; }
    .workflow-strip ol { grid-template-columns: 1fr; gap: 32px; }
    .workflow-strip li { grid-template-columns: 80px minmax(0, 1fr); justify-items: start; align-items: center; padding: 20px 24px; gap: 20px; text-align: left; }
    .workflow-step-art { width: 80px; height: 72px; }
    .workflow-connector { top: auto; right: 50%; bottom: -29px; transform: translateX(50%) rotate(90deg); }
}
@media (max-width: 359px) {
    .page-hero h1 { font-size: 2.35rem; max-width: 100%; }
    .outcomes-grid { grid-template-columns: 1fr; }
    .outcomes-grid li { display: flex; }
    .journey-intro { grid-template-columns: 1fr 96px; }
    .journey-intro .stage-illustration { width: 96px; }
    .journey-intro h2 { font-size: 2.15rem; }
    .journey-price { font-size: 1.15rem; }
    .button { padding-inline: 17px; }
}
